Reactは感情を使ってCSSコードを書く

Reactは感情を使ってCSSコードを書く

導入:

emotion は JavaScript ライブラリです。emotion を使用すると、JS を書くのと同じように CSS コードを記述できます。 React に emotion をインストールすると、CSS を簡単にカプセル化して再利用できるようになります。 Emotionを使用すると、ブラウザによってレンダリングされるタグに、CSSで始まるロゴが追加されます。次のように: スクリーンショット内の css- で始まるタグは、emotion ライブラリを使用してレンダリングされます。

導入から運用まで、エンジニアリングにおける感情の応用について紹介します。

感情のインストール:

糸を追加 @emotion/react
糸を追加 @emotion/styled

一般的な CSS コンポーネントを追加します。

1. コンポーネントと同じ名前を大文字で始める
2. スタイルの後にはhtmlタグが続きます

//感情を導入する
「@emotion/styled」からstyledをインポートします。
// 感情を使って CSS コンポーネントを作成する const Container = styled.div`
ディスプレイ: フレックス;
flex-direction: 列;
アイテムの位置を中央揃えにします。
最小高さ: 100vh;
`;
//HTML コードで CSS コンポーネントを使用します:
<コンテナ>
//HTML コード</コンテナ>

既存のコンポーネントにスタイルを追加するには:

1. 変数名の最初の文字を大文字にする
2. 既存のコンポーネントをstyledにパラメータとして渡す
3. スタイルコードでパラメータを追加できる

// Card は antd の既存のコンポーネントです const ShadowCard = styled(Card)`
    幅: 40rem;
    最小高さ: 56rem;
    パディング: 3.2rem 4rem;
    境界線の半径: 0.3rem;
    ボックスのサイズ: 境界線ボックス;
    ボックスシャドウ: rgba(0, 0, 0, 0.1) 0 0 10px;
    テキスト配置: 中央;
`;
// インポートされた画像。パラメーターとして直接使用されます。import logo from "assets/logo.svg";

// バックティックはパラメータで渡されたマジック文字列を参照できます const Header = styled.header`
背景: url(${logo}) 繰り返しなし 中央;
パディング: 5rem 0;
背景サイズ: 8rem;
幅: 100%;
`;

共通CSSコンポーネントの抽出

1. バッククォートの前に、汎用パラメータを受け取るために使用できるすべてのパラメータをリストする必要があります。
2. 渡されたパラメータを取得し、props.betweenなどのpropsを使用して取得します。関数の戻り値を使用してCSS属性を割り当てることができます。CSS属性はレンダリングされず、戻り値は未定義になります。

コンテンツの配置: ${(props) => (props.between ? "space-between" : undefined)};

3. CSSセレクターを使用できる
4. 呼び出すときは、通常のjsコンポーネントと同じように使用し、同じパラメータを渡します。

//行コンポーネントを呼び出す <HeaderLeft gap={1}> 
//HTML コード</HeaderLeft>
const HeaderLeft = styled(Row)``;


// Row コンポーネントを定義します export const Row = styled.div<{
  ギャップ?: 数値 | ブール値;
  between?: ブール値;
  marginBottom?: 数値;
}>`
ディスプレイ: フレックス;
アイテムの位置を中央揃えにします。
コンテンツの配置: ${(props) => (props.between ? "space-between" : undefined)};

マージン下部: ${(props) =>

props.marginBottom ? props.marginBottom + "px" : 未定義};

> * {
上マージン: 0 !重要;
マージン下部: 0 !重要;
右マージン: ${(props) =>

typeof props.gap === "number"
    ? props.gap + "rem"
    : プロップギャップ
    ?「2レム」
    : 未定義};
}
`;

感情をインラインスタイルで書く

1. コンポーネントの先頭に次のコードを記述して、現在のコンポーネントに感情インラインスタイルを使用するように通知します。

/* @jsxImportSource @emotion/react */

2. インライン スタイルの形式: css={ /* インライン スタイル コード*/ }

<フォーム css={{ marginBottom: "2rem" }} layout={"inline"}>
// HTML コード</Form>

以上が感情の紹介と活用です。 (#^.^#)

上記は、React が感情を利用して CSS コードを記述する方法の詳細です。React が感情を利用して CSS コードを記述する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • ReactでCSSスタイルを動的に変更する2つの方法の詳細な説明
  • Reactプロジェクトのパッケージ化に基づくCSS参照パスエラーの解決策
  • React は CSS を使用して React アニメーション関数の例を実装します。
  • React で CSS を使用する 7 つの方法 (最も完全な要約)
  • Create React App で CSS モジュールを使用する方法の例
  • create-react-app で CSS モジュールを使用するためのサンプル コード
  • create-react-app を使用して CSS モジュール、SASS、および ANTD を追加する詳細な説明
  • ReactJs の CSS スタイル設定方法
  • ReactでCSSをエレガントに書く方法

<<:  Dockerコンテナの自動終了を停止する方法の詳細な説明

>>:  CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

推薦する

MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較

この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...

MySQL 結合クエリ構文と例

接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

MySQL の null 制約のケースの説明

目次テーブルを作成するときにNOT NULL制約を設定するテーブルを変更するときに非NULL制約を追...

Docker可視化ツールPortainerの導入と中国語翻訳

#docker 検索#docker プルポーター1. イメージを取得した後、中国語パッケージをダウン...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

Win2008 R2 mysql 5.5 zip 形式 mysql のインストールと設定

Win2008 R2 zip形式のMySQLのインストールと設定1. Baidu MySQL 5.6...

CentOS7.3 での MySQL 8.0.13 のインストールと設定のチュートリアル

1. 基本環境1. オペレーティングシステム: CentOS 7.3 2. MySQL: 8.0.1...

docker で Apollo をデプロイする詳細なチュートリアル

1. はじめにここでは apollo について詳しく説明しません。公式サイト https://git...

フィールドの文字セットの違いによる MySQL のインデックス失敗の解決策

インデックスとは何ですか?なぜインデックスを作成するのですか?インデックスは、列に特定の値を持つ行を...

さまざまなマウスの形状を表現する方法

<a href = "http://" style = "cur...

mysql ビュー関数の分析と使用例

この記事では、例を使用して MySQL ビューの機能と使用方法を説明します。ご参考までに、詳細は以下...

スタイルを書く際の背景色宣言の重要性

タイトルの通り、ページを修正すると以下のような状況が発生する可能性があります。現在、古いページを改修...

Reactの原理の説明

目次1. setState() の説明1.1 データの更新1.2 推奨構文1.3 2番目のパラメータ...

MySQLはOracleシーケンスに似たソリューションを実装しています

MySQLはOracleのようなシーケンスを実装しているOracle は通常、主キー フィールドを処...