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 のインストールと、仮想マシンへのインストールで遭遇する落とし穴 (問題のまとめ)
以下では、よく使われるヘッド構造と、各タグや要素の意味や使用シーンを紹介します(この記事は、Yisi...
この記事では、参考までにMySQL 5.7.18 MSIインストールチュートリアルを紹介します。具体...
目次序文複数の言語を切り替えるにはどうすればいいですか? 1. vue-i18nパッケージをインスト...
目次Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました1. mysq...
MySQLとMariaDBの関係MariaDB データベース管理システムは MySQL のブランチで...
何ですかまず、Docker の概念を見てみましょう。アプリケーションと実行環境をコンテナにパッケージ...
CentOS7 64でのMySQL5.6.40のインストール手順1) 以前にインストールしたMySQ...
1. コントロールパネルで、MySQLのすべてのコンポーネントをアンインストールします。コントロール...
サイト全体のフォントを設定することは、常にシンプルでありながら難しい作業です。深く掘り下げていくと、...
序文MySQL インデックスで最も重要なデータ構造は B+ ツリーなので、まずは B+ ツリーの原理...
以下のように表示されます。昨日: UNIX_TIMESTAMP(CAST(SYSDATE() AS ...
1. Dockerのホスト間通信Docker クロスホスト ネットワーク ソリューションには以下が含...
mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...
CentOS 7にPostgreSQL 11をインストールする PostgreSQL: 世界で最も先...
目次1. --skip-grant-tables 経由で取得する1.1 my.conf を変更し、新...