2016-11-19 3 views
1

私はここで気に入っています。私はModalダイアログにCSSを適用しようとしています。ModalダイアログにカスタムCSSを適用するにはどうすればいいですか - React-bootstrap

私はCSSファイルを作成しました:ルートレベル

/css/mycss.css

.test { 
    width: 90%; 
    color: red; 
} 

/css/mycss.css、私は私のモーダルダイアログJSXファイルを持っています:

MyModal.jsx

//more code above 
<Modal 
    {...this.props} 
    show={this.state.show} 
    onHide={this.hideModal} 
    dialogClassName="test" 
> 
//more code below 

私が理解しているように、私はdialogClassName小道具を使ってCSSをモーダルダイアログに適用することになっています。私は私のCSSファイルのクラスセレクタにアクセスしようとしていると、図のように小道具に渡そうとしています。

CSSをインポートする必要がありますか?

import test from '/css/mycss.css'; 

これは機能しませんでした。 CSSを表示するにはどうすればよいですか?

編集:

私はそれの

import styles from './css/mycss.css'; // dialogClassName='styles.test'; 
import { test } from './css/mycss.css'; // dialogClassName='test'; 
import .test from './css/mycss.css'; // dialogClassName='test'; 
import {.test} from './css/mycss.css'; // dialogClassName='.test'; 
import './css/mycss.css'; // dialogClassName='test'; 

なしCSSを適用しません試みました。

編集2:

私は再びimport styles from './css/mycss.css'を試してみましたが、その後、dialogClassName = {styles.test};をしました。それは実際に働いた...しかし、一種。テキストの色は赤色に変わりましたが、モーダルダイアログの幅はまだまだかなり停滞しています。 width属性を何に変更しても、画面の90%または画面の10%ではありません。だから最初に、チュートリアルはなぜ私はdialogClassNameに文字列を渡すように私に従っていたのですか?そして、モーダルダイアログの幅を変更するにはどうしたらいいですか?

+0

はい、そのcssファイルをインポートする必要があります;) – Mardzis

+0

@Mardzis正しく行う方法がわかりません。私は自分の投稿に書いたことを試しました。私は '/ css/mycss.css 'から' import {test}'を、 '/ css/mycss.css 'から' import .test'を、 '/ css/mycss.css 'から' import {。 。それらのどれも働かない。 – noblerare

+0

Re:あなたの*編集2 *、cssへのインポートはwebpack css-loaderによって行われ、 'dialogClassName'で変数を使用する必要がある理由のためにCSSをオブジェクトに保存します – jpdelatorre

答えて

1

あなたはwebpackを使用していると言いました。 css loaderがインストールされていない場合。

npm install css-loader --save-dev 

これで、部分的なCSSファイルをReactコンポーネントにインポートできます。この例は、CSSファイルがjsファイルと同じ方向にある場合です。

import componentStyle from './componentStyle.scss'; 

さらに多くの方法でcssファイルをインポートできます。これは、あなたがこのようなファイルの中に入ることができるので私が使用します:className={componentStyle.classInside}

WebPACKの例:

module.exports = { 
    module: { 
    loaders: [ 
     { test: /\.css$/, loader: "style-loader!css-loader" } 
    ] 
    } 
}; 

また、あなたは同じようになどSASS、LESSを使用することができます。

+1

私はwebpackを持っていて、私は明らかに 'css-loader'をインストールしていました。ありがとうございました! – noblerare

0

import './css/mycss.css';

パスがファイルへの相対でなければなりません試してみてください。

+0

それは動作しませんでした。 'dialogClassName'では、私が適用したいクラスの名前を入れます(私の場合は' test'です)。パスは正しいです。 – noblerare

+0

webpackのようなバンドルを使用していますか?もう一つの方法は、 'index.html'ファイルにcssファイルをインポートすることです。 – jpdelatorre

+0

私は 'webpack'を使用しています。さて、私は何か新しいことを試してみました。元の投稿を編集しました。 – noblerare

関連する問題