BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独立したブロックに分割し、複雑な UI インターフェイスをより簡単かつ迅速に開発し、コピー アンド ペーストせずに既存のコードを再利用できるようにするというアイデアです。 BEM は、ブロック、要素、および修飾子で構成されます。セレクターでは、関係を拡張するために次のコネクタが使用されます。
例: ブロック名_修飾子名 ブロック名__要素名--修飾子名 ブロック名_修飾子名--修飾子値 ブロック名__要素名--修飾子名--修飾子値 基本概念 ブロック コード スニペットは再利用でき、このコードは他のコンポーネントに依存しません。つまり、ブロックを使用できます。ブロックは任意の深さまで相互にネストできます。
要素 要素はブロックの一部であり、独立して存在しません。任意の要素は意味的にブロックにバインドされます。 特徴:
修飾子 修飾子は、ブロックまたは要素上のタグです。これらを使用して、スタイル、動作、または状態を変更します。ブロックまたは要素のコネクタは '--' です。 応用 ブロックを他のブロックに対して相対的に配置 最善のアプローチは、ブロックと要素を組み合わせて使用することです。ブロック上で余白と位置を設定できない問題を解決します。 例: <body class="page"> <!-- ヘッダーとナビゲーション--> <header class="header page__header">...</header> <!-- フッター --> <footer class="footer page__footer">...</footer> </本文> .page__header { パディング: 20px; } .page__footer { パディング: 50px; } ブロック内の要素の配置 ネスト化は、ブロックの追加の子要素を作成することによって実現されます。 例: <body class="page"> <div class="page__inner"> <!-- ヘッダーとナビゲーション--> <header class="header">...</header> <!-- フッター --> <footer class="footer">...</footer> </div> </本文> .page__inner { 右マージン: 自動; 左マージン: 自動; 幅: 960ピクセル; } 命名について セレクター名は、それが表す BEM エンティティを完全に正確に記述する必要があります。 例: 。ボタン {} .ボタン__アイコン {} .ボタン__テキスト {} .button_theme_islands {} ブロック要素を扱っていることを直接指示できます。 html では次のように使用します: <button class="button button_theme_islands"> <span class="button__icon"></span> <span class="button__text">...</span> </ボタン> 次の CSS では、同じ判断を下すのが困難になります。 。ボタン {} .アイコン {} 。文章 {} .theme_islands {} 私は自分の git プロジェクト miniui で BEM 仕様を採用し、sass を使用して BEM を実装しました。ご興味がございましたら、こちらをご覧ください: https://github.com/banyaner/miniui 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: Docker を使用した Alibaba Cloud Server のインストールと、仮想マシンへのインストールで遭遇する落とし穴 (問題のまとめ)
ボリュームラベル、プロパティ名、説明002 <! - - ... - -> コメント00...
翻訳Kool Desktop Environment の略称。 Linux、Unix、FreeBSD...
序文: MySQL マスター/スレーブ アーキテクチャは、最も一般的に使用されるアーキテクチャ セッ...
SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...
序文ますます便利になった今日のインターネット社会では、さまざまなインターネット ランサムウェア ウイ...
データとコンピューターに対してできる最善のことは、それらを安全に保つことです。アップデートを有効にす...
目次1. テスト環境1.1 CentOS 7をインストールする1.2 Docker CE 19.03...
最近、Rich Harris の <Rethinking Reactivity> ビデオ...
Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...
いつから始まったのかはわかりませんが、コンピュータの電源を入れてインターネットに接続するたびに、デー...
ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...
1.マスクレイヤーのHTMLコードと画像をdivに配置する.img_div に入れました。 <...
このドキュメントを作成した当時は2019年12月頃で、er2.200が最新バージョンでした。 1.画...
JSON 形式のフィールドは、MySQL 5.7 で追加された新しい属性ですが、基本的には文字列とし...
mysql のインストール情報を表示します。 #ps -ef | grep mysql usr/bi...