検索

The Power of em Units in CSS

CSSのEMユニットの力

キーテイクアウト

    CSSでは、EMユニットは、EMが適用される要素の計算されたフォントサイズに等しくなります。 EMユニットがフォントサイズの定義がない子要素で宣言されると、親からフォントサイズ、または別の先祖要素から継承します。
  • EMユニットは、コンポーネントレベルのスタイリングやコードのカプセル化セクションなどのモジュラーCSS手法でうまく機能します。コンポーネントの要素がすべて互いに比較的サイズであることを保証し、簡単にサイズを変更できるようにすることができます。
  • CSSのREMユニットは、計算されたフォントサイズに関係なく、ドキュメントのルート要素上のベースフォントサイズ設定から常にその値を継承します。そのため、REMを使用できますが、これは、その要素のフォントサイズを使用して、ページ上のすべてのコンポーネントを制御する必要があることを意味します。
  • emユニットは、ピクセルにわたっていくつかの利点を提供します。それらはスケーラブルです。つまり、ユーザーのデフォルトのブラウザ設定またはデバイスの設定に基づいて調整します。これにより、フォントサイズを増やす必要がある視覚障害のあるユーザーがウェブサイトをよりアクセスしやすくします。 EMユニットは、親要素のフォントサイズに基づいて調整されるため、より柔軟で応答性の高いデザインも可能です。
CSSのすべての複雑な機能を使用すると、機能がどれほど強力であるかを見ると、常にそのターニングポイントがあります。そして、信じられないかもしれませんが、EMSとの私の個人的なターニングポイントは、私が主題のしゃれに満ちた紹介を書いた後もずっと来ました。 その時点ではEMSをかなりよく理解していましたが、サイジング(Web)コンポーネントと呼ばれる媒体に関するSimuraiの投稿を読んだとき、彼らがどれほど強力であるかを本当に見始めました。 だから私はこの投稿で彼のコートセールに乗るつもりです。ここでは、EMユニットの簡単な紹介があり、彼が説明するテクニックのライブデモンストレーションが続きます。

CSSのEMSは何ですか?

CSSでは、EMユニットは、EMが適用される要素の計算されたフォントサイズに等しくなります。 EMユニットがフォントサイズの定義がない子要素で宣言されると、親からフォントサイズ、または別の先祖要素から継承され、おそらくドキュメントのルート要素に戻ることができます。 次のCSSを見てください。
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>}</span>
この場合、この要素またはその子要素(他のフォントサイズの定義がないと仮定)の1EMは、20pxに等しくなります。したがって、行を追加した場合:
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>border-radius: .5em;
</span><span>}</span>
このボーダーラジウス値は.5EMです 10pxに計算します(つまり、20*.5)。同様に:
<span><span>.example</span> {
</span><span>font-size: 20px;
</span><span>border-radius: .5em;
</span><span>padding: 2em;
</span><span>}</span>
2EMのパディング値は40px(20*2)に相当します。前述のように、このタイプの計算は、任意の子要素にも適用されます。これらの子要素のいずれかが明示的に定義されたフォントサイズ値を持っていない限り、その場合、EM値はそれに基づいて計算されます。 CSSのどこにもフォントサイズが定義されていない場合、EMユニットはドキュメントのブラウザのデフォルトフォントサイズ(通常16px)に等しくなります。 EMSがどのように機能するかを明確にするはずだと思います。ここで、この手法を使用して、Simuraiが元のメディア記事で説明したように、簡単に再構成可能なWebコンポーネントを作成する方法を見てみましょう。これを実行するデモを提供することにより、彼のアイデアをさらに一歩進めます。 いつcss

でEMを使用するか EMユニットは、コンポーネントレベルのスタイリングや一般的なコードのカプセル化セクションなどのモジュラーCSS手法でうまく機能します。たとえば、コンポーネント(カードなど)の要素がすべて互いにサイズがすべてサイズになり、簡単にサイズを変更できるようにするために使用できます。 この手法は基本的に次のように機能します。Simuraiが「Trojan Horse」と呼び、コンポーネントまたはモジュール内のさまざまな要素のベースユニットを作成するように、フォントサイズのプロパティが使用されます。上記のように、EMユニットは親要素のルート定義のフォントサイズに基づいて計算されるため、これにより、親要素のフォントサイズを変更するだけでコンポーネント全体が簡単に再配置できます。 Codepenデモで動作しているこれを見てみましょう:
  • コンポーネント内のすべてはEMSのサイズがありますが、外側の境界(常に2pxのままにしたい)と画像を除きます。
  • 右上隅にある涙のようなものは擬似要素であり、同様に親のベースフォントサイズから恩恵を受けます。
  • CSSには、親のフォントサイズを調整する2つのメディアクエリも含まれています。繰り返しますが、これはメディアクエリのすべてのさまざまなサイズを変更する必要がないが、フォントサイズのみを変更する必要がないため、この手法の有用性を示しています。

    いくつかのメモ、欠陥など

    デモでレンジスライダーを使用することからわかるように、このタイプの柔軟なサイズ変更は、必ずしも使用したいものではありません。やや制限される可能性があります。 EM値の一部を微調整して、それらを好きな方法を取得する必要がある場合があります。デモの親ボーダーの場合のように、すべての要素にサイズの能力を適用したくない場合があります。除外したい要素のEMSを単に避けることで、これを簡単に克服できます。 Simuraiの元の記事に関する議論で説明されているように、Root Font-Sizeを設定するためにPXユニットを使用する必要はありません。そのためにもEMSを使用できますが、これは親から同じ方法で継承されることを覚えておいてください。

    レムとサスはどうですか?

    CSSのREMユニットは、計算されたフォントサイズに関係なく、ドキュメントのルート要素のベースフォントサイズ設定から常にその値を継承します。 HTMLでは、ルート要素は常にHTML要素です。したがって、REMSを使用できますが、これは、その要素のフォントサイズを使用して、ページ上のすべてのコンポーネントを制御する必要があることを意味します。特定のプロジェクトでは機能する可能性がありますが、この手法は、ドキュメント全体ではなく、孤立したコンポーネントに再サイズ性を集中させるときに最適に機能すると思います。 SASSのようなプリプロセッサを使用することに関しては、それが副点だと思います。最終的に、コンパイルされたStyleSheetは、SASSコードで使用しているユニットを使用し、継承は同じように機能します。

    結論

    すでに述べたように、Simuraiは、このテクニックをより広く知られていることの功績に値します。もちろん、彼が言及しているように、これは新しいものではなく、基本的な概念は長年にわたって多くの経験豊富な開発者によって使用されてきましたが、Webコンポーネントやモジュールのコンテキストではそれほどではないかもしれません。 Simuraiが言うように、これはCSSフレームワークまたはコンポーネントのライブラリを構築するときに使用するのに最適な方法だと思います。 もちろん、利用可能なCSSユニットはEMだけではありません。 CSSサイジングユニットの概要をご覧ください。

    CSSのEMユニットに関するよくある質問(FAQ)

    CSSのEMユニットとREMユニットの違いは何ですか?

    EMとREMの両方はCSSの相対単位ですが、値を計算する方法が異なります。 EMは、最も近い親のフォントサイズ、または現在の要素に関連しています。これは、要素のフォントサイズを1.2EMに設定すると、親のフォントサイズのサイズの1.2倍になることを意味します。一方、REMはルートまたはHTML要素に対して相対的です。そのため、要素のフォントサイズを1.2レムに設定すると、ルート要素のフォントサイズのサイズの1.2倍になります。これにより、remはemよりも予測可能で制御しやすくなります。

    ピクセルをCSSのEMユニットに変換するにはどうすればよいですか?

    ピクセルをEMユニットに変換するには、ドキュメントのベースフォントサイズを知る必要があります。ほとんどのブラウザのデフォルトのベースフォントサイズは16pxです。したがって、ピクセル値をEMに変換する場合は、ピクセル値をベースフォントサイズで除算します。たとえば、18pxをEMに変換する場合、18/16 = 1.125EMを実行します。それらはスケーラブルです。つまり、ユーザーのデフォルトのブラウザ設定またはデバイスの設定に基づいて調整します。これにより、フォントサイズを増やす必要がある視覚障害のあるユーザーがウェブサイトをよりアクセスしやすくします。 EMユニットは、親要素のフォントサイズに基づいて調整されるため、より柔軟で応答性の高い設計も可能になります。

    CSSのフォントサイズ以外のプロパティにEMユニットを使用できますか?これには、幅、高さ、パディング、マージン、ラインハイトなどのプロパティが含まれます。これらのプロパティにEMユニットを使用すると、設計の比例関係を維持するのに役立ちます。

    CSSのEMユニットのベースフォントサイズを設定するにはどうすればよいですか。たとえば、ベースフォントサイズを18pxにしたい場合は、次のように書きます。html{font-size:18px; }。 CSS内のすべてのEMユニットは、このベースフォントサイズに関連します。これは、子要素のサイズが予想よりも大きくなったり小さくなったりする複利効果につながる可能性があります。これを回避するために、remユニットを使用することができます。これは常にルート要素のサイズに関連しています。

    CSSでEMユニットを使用することに不利な点はありますか?

    EMユニットは多くの利点を提供しますが、ピクセルのような絶対ユニットよりも管理が困難になる可能性があります。 EMユニットは相対的であるため、実際のサイズはコンテキストに基づいて変更できます。これにより、特にネストされた要素を備えた複雑なレイアウトでは、要素のサイズを予測するのが難しくなります。 CSSのメディアクエリでEMユニットを使用できますか?

    はい、メディアクエリでEMユニットを使用できます。実際、メディアクエリでEMユニットを使用すると、設計の応答性が向上します。 EMユニットは相対的であるため、ユーザーのデフォルトのブラウザ設定またはデバイスの設定に基づいて調整します。これは、メディアクエリがビューポートのサイズだけでなく、ユーザーの設定に適応することを意味します。

    cssのEMユニットを持つネストされた要素のサイズを計算するにはどうすればよいですか?

    ネストされた要素のサイズをEMユニットで計算するには、親要素のサイズにサイズを掛けます。たとえば、親要素のサイズが1.5EMで、子要素のサイズが2EMの場合、子要素の実際のサイズは1.5 * 2 = 3EMです。これは、子要素のサイズが親要素のサイズに関連しているためです。

  • 以上がCSSのEMユニットの力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    軌道力学(またはCSSキーフレームアニメーションの最適化方法)軌道力学(またはCSSキーフレームアニメーションの最適化方法)May 09, 2025 am 09:57 AM

    独自のコードをリファクタリングするのはどのように見えますか?ジョン・レアは、彼が書いた古いCSSアニメーションを選び、それを最適化するという思考プロセスを歩きます。

    CSSアニメーション:それらを作成するのは難しいですか?CSSアニメーション:それらを作成するのは難しいですか?May 09, 2025 am 12:03 AM

    cssanimationsArenotintinlentyhardbutrepracticeanderstanding ofcsspropertiesandtimingfunctions.1)

    @KeyFrames CSS:最も使用されているトリック@KeyFrames CSS:最も使用されているトリックMay 08, 2025 am 12:13 AM

    @keyframesispopularduetoitsversitility andpowerincreatingsmoothcssanimations.keytricksinclude:1)defingsmoothtransitionsbetweenstates、2)AnimatingMultipleProperiessimally、3)3)bendorprefixesforbrows -compativity、4)組み合わせwithjavasfo

    CSSカウンター:自動番号の包括的なガイドCSSカウンター:自動番号の包括的なガイドMay 07, 2025 pm 03:45 PM

    csScounterSareSareusedTomageautomaticinginginwebdesigns.1)それらは、コンテンツ、リスト、および積極的なものを使用することができます

    スクロール駆動型のアニメーションを使用したモダンなスクロールシャドウスクロール駆動型のアニメーションを使用したモダンなスクロールシャドウMay 07, 2025 am 10:34 AM

    特にモバイルデバイスでは、スクロールシャドウを使用することは、Chrisが以前にカバーした微妙なUXです。 Geoffは、アニメーションタイムラインプロパティを使用する新しいアプローチをカバーしました。これがさらに別の方法です。

    画像マップを再検討します画像マップを再検討しますMay 07, 2025 am 09:40 AM

    簡単に復習してみましょう。画像マップはHTML 3.2に戻ります。ここで、最初にサーバー側マップを使用してから、マップとエリア要素を使用して画像上でクリック可能な領域を定義したクライアント側マップをマップしました。

    開発者:すべての開発者の調査開発者:すべての開発者の調査May 07, 2025 am 09:30 AM

    State of Devsの調査は現在、参加に対して開かれており、以前の調査とは異なり、コードを除くすべてをカバーしています:キャリア、職場だけでなく、健康、趣味などもあります。 

    CSSグリッドとは何ですか?CSSグリッドとは何ですか?Apr 30, 2025 pm 03:21 PM

    CSSグリッドは、複雑で応答性の高いWebレイアウトを作成するための強力なツールです。設計を簡素化し、アクセシビリティを向上させ、古い方法よりも多くの制御を提供します。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    AtomエディタMac版ダウンロード

    AtomエディタMac版ダウンロード

    最も人気のあるオープンソースエディター

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

    PhpStorm Mac バージョン

    PhpStorm Mac バージョン

    最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン