ホームページ > 記事 > ウェブフロントエンド > CSSの高度なレイアウトテクニック
空の要素を区別するには:emptyを使用してください
互換性: IE8はサポートされていません
上記のリストがある場合:
<div class="item">a</div> <div class="item">b</div> <div class="item"></div>
空の要素と空ではない要素を別々に扱いたいと考えている場合、解決策は2つあります。
:empty を使用して空の要素を選択します:
.item:empty { display: none; }
または、:not(:empty) を使用して空でない要素を選択します:
.item:not(:empty) { border: 1px solid #ccc; /* ... */ }
:*-Of-Type を使用して要素を選択します
互換性: IE8 はサポートされていません
一例です。
最初の p 段落を太字にする:
p:first-of-type { font-weight: bold; }
最後の img に境界線を追加する:
img:last-of-type { border: 10px solid #ccc; }
接続されていない blockquote にスタイルを追加する:
blockquote:only-of-type { border-left: 5px solid #ccc; padding-left: 2em; }
奇数列の p 段落を最初に赤色で消す:
p:nth-of-type(even) { color: red; }
さらに、 :nth-of-type には他のタイプのパラメータも含めることができます:
/* 偶数*/
:nth-of-type(even)
/* 3 番目のみ*/
:nth-of-type( 3)
/* 3 回ごと */
:nth-of-type(3n)
/* 4 回ごとに 3 を加えた値、つまり 3、7、11、... */
:nth-of -type (4n+3)
流動的なレイアウトには calc を使用してください
互換性: IE8 はサポートされていません
左-中央-右の流動的なレイアウト:
nav { position: fixed; left: 0; top: 0; width: 5rem; height: 100%; } aside { position: fixed; right: 0; top: 0; width: 20rem; height: 100%; } main { margin-left: 5rem; width: calc(100% - 25rem); }
全画面スクロール効果には vw と vh を使用してください
互換性: IE8はサポートされていません
vw と vh はビューポートを基準としているため、コンテンツやレイアウトが変更されても変わりません。
section { width: 100vw; height: 100vh; display: flex; align-items: center; justify-content: center; text-align: center; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; } section:nth-of-type(1) { background-image: url('https://unsplash.it/1024/683?image=1068'); } section:nth-of-type(2) { background-image: url('https://unsplash.it/1024/683?image=1073'); } section:nth-of-type(3) { background-image: url('https://unsplash.it/1024/683?image=1047'); } section:nth-of-type(4) { background-image: url('https://unsplash.it/1024/683?image=1032'); } body { margin: 0; } p { color: #fff; font-size: 100px; font-family: monospace; }
CSS リセットを行うには unset を使用してください
互換性: IE はサポートされていません
body { color: red; } button { color: white; border: 1px solid #ccc; } /* 取消 section 中 button 的 color 设置 */ section button { color: unset; }
レスポンシブな列レイアウトを行うには列を使用してください
互換性: IE9 はサポートされていません
nav { column-count: 4; column-width: 150px; column-gap: 3rem; column-rule: 1px dashed #ccc; column-fill: auto; } h2 { column-span: all; }
CSS の高度なレイアウト テクニックに関連するその他の記事については、 PHP 中国語 Web サイトをフォローしてください。