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 のインストールと設定方法のグラフィックチュートリアル

推薦する

スクロールバーを非表示にしてコンテンツをスクロールする CSS サンプルコード

序文ページの HTML 構造にネストされたボックスが多数含まれている場合、ページに複数の垂直スクロー...

Docker-compose は Docker プライベート ウェアハウスのステップを迅速に構築します

docker-compose.ymlを作成し、次の内容を入力します。 バージョン: '3&#...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

フォーム送信ページの更新がジャンプしない

1. ソースコードの設計コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

MySQL データベース接続例外の概要 (収集する価値あり)

Centos にプロジェクトをデプロイするときに奇妙な問題が見つかりました。データベース接続で例外...

ブルートフォース攻撃を防ぐためのシェルスクリプト設定

シェルスクリプトはアクセス制御を設定し、複数回のログイン失敗後にIPをブロックしてSSHのブルートフ...

MySQLパスワードを変更するいくつかの方法

序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...

MySQL PHP 構文の簡単な分析

まずcharAt関数の基本的な構文を見てみましょう文字 = str.charAt(インデックス) c...

mysql-joinsの具体的な使用方法

目次結合構文: 1. InnerJOIN: (内部結合) 2. LeftJOIN: (左結合) 3....

React onClickにパラメータを渡す問題について話しましょう

背景下のようなリストでは、削除ボタンをクリックすると削除操作を実行する必要があります。 リスト生成:...

MySQL 5.7.13 のインストールと設定方法のグラフィック チュートリアル (win10 64 ビット)

この記事では、参考までにMySQL 5.7.13 winx64のインストールと設定方法のグラフィック...

Docker 起動時の ES メモリ オーバーフローの解決方法

jvm.options ファイルを elasticsearch 構成に追加し、スタック サイズを変更...

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する テーブル `testsign` を作成します ( `userid`...

MySQLメモリストレージエンジンに関する知識

メモリストレージエンジンに関する知識ポイントメモリ ストレージ エンジンは日常業務ではほとんど使用さ...

MySQLで数千万のテストデータを素早く作成する方法

述べる:この記事で扱うデータ量は 100 万です。数千万のデータが必要な場合は、量を増やすだけで済み...