キャッシング、マークアップとデザインの分離、概要の改善などを利用するために、すべてのスタイル設定を外部 CSS ファイルに含めることをお勧めします。
ただし、通常、要素は同じように見える、つまり同じクラスを持っているが、位置が異なる必要があるという問題に遭遇しました。たとえば、構成の違いにより異なるマージンまたはパディングが必要です。
次の 3 つのオプションを考えました。
オプション 1 : 位置スタイル (マージン/パディング) から外観スタイルを分割し、それらを別々のクラスに入れ、必要に応じてそれらを組み合わせます。
.myClass { ...; }
.myClass.top { margin-top: 20px; }
.myClass.inside { margin: 10px 0px; }
.myClass.bottom { margin-bottom: 20px; }
オプション 2 : クラスを複製し、それに応じて名前を変更し、すべての違いを独自のクラスに保持します。
.myClassTop { ...; margin-top: 20px; }
.myClass { ...; margin: 10px 0px; }
.myClassBottom { ...; margin-bottom: 20px; }
オプション 3 : インライン スタイルを使用して、異なるマージン/パディングを宣言します。
<div class="myClass" style="margin-top: 20px;">
<div class="myClass">
<div class="myClass" style="margin-bottom: 20px;">
持つ
.myClass { ...; margin: 10px 0px; }
私の常識では、オプション 1 を使用し、親子構造に応じて違いをカスケードします。しかし、これは通常、特に CSS を読んでいる他の開発者にとって、かなり混乱を招きます。そこで、オプション 3 (外部マージン/パディングを少しだけ使用) を試してみましたが、それはかなりうまくいくようです。
今でも変な意味で気持ち悪いです。インライン スタイルを使用しないと言っている人が非常に多いです。通常は「最適なものは何でも」と言いますが、最近、インラインのマージン/パディングが Web サイトのレンダリング プロセスに影響を与え、「ダンシング ブロック」を引き起こす可能性があることに気付きました。この効果が本当にスタイルの処理順序によるものなのか、それとも他の厄介なことが原因なのかはわかりません。
何かアドバイスはありますか?