知ってると便利なCSSのテクニックのまとめ -CSS Protips

リスト要素で実装したナビゲーションの右端のボーダーを取り除くシンプルな方法、flexboxで実装したカラム間の溝の最後の溝を取り除く方法、天地の中央に配置など、知ってると便利なCSSのテクニックを紹介します。

CSS Protips

CSS Protips -GitHub

CSS Protipsのバージョンアップ版の紹介記事はこちら。

CSS ProtipsのライセンスはMIT Licenseで、個人でも商用でも無料で利用できます。
下記のスタイルシートの対応ブラウザはChrome, Firefox, Safari, Edge, IE11です。

リスト要素の最後だけボーダーを適用・削除

「:not()」を使用して、リスト要素で実装したナビゲーションの最後のアイテムだけにボーダーを適用・削除します。
まずは、今までの書き方。

[css]
/* まずは各アイテムの右にボーダーを... */
.nav li {
border-right: 1px solid #666;
}

/* ...続いて、最後だけ削除... */
.nav li:last-child {
border-right: 0;
}
[/css]

「:not()」を使用するとシンプルなコードで指定できます。

[css]
/* ...最後のアイテム以外全てにボーダーを適用 */
.nav li:not(:last-child) {
border-right: 1px solid #666;
}
[/css]

:not()など、疑似クラスの更にくわしい使い方は下記ページを参考に。

body要素に「line-height」を加える

body要素でline-heightを指定することでp, hnなどにその値が継承されるため、それぞれにline-heightを指定する必要がなくなります。

[css]
body {
line-height: 1;
}
[/css]

天地の中央に配置

ページの天地の中央に要素を配置するシンプルなコードです。
※IE11ではflexboxのバグがあります(バグ情報)。

[css]
html, body {
height: 100%;
margin: 0;
}

body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
[/css]

高さ不明の要素に対して天地中央に配置する場合は下記ページを参考に。

ネガティブなnth-childを使用してアイテムを選択

nth-childにはネガティブな値も指定できます。

[css]
li {
display: none;
}

/* 最初から3つ目までのアイテムを表示 */
li:nth-child(-n+3) {
display: block;
}
[/css]

SVGファイルの指定

アイコンを使用する時に、SVGを使わない理由はありません。SVGはIE9以降のすべてのブラウザでサポートされています。

[css]
.logo {
background: url("logo.svg");
}
[/css]

SVGスプライトなど、更にくわしい設置方法は下記ページを参考に。

box-sizingの継承

box-sizingはhtml要素で指定し、継承して利用すると、コンポーネントで変える時に簡単です。

[css]
html {
box-sizing: border-box;
}

*, *:before, *:after {
box-sizing: inherit;
}
[/css]

flexboxのマージンハックを取り除く

flexboxでカラムの溝をつくる時、nth-, first-, last-childなどのハックで最後の溝を取り除くことができますが、それはflexboxのspace-betweenプロパティを使うだけで解決します。

[css]
.list-of-people {
display: flex;
justify-content: space-between;
}

.list-of-people .person {
flex-basis: 23%;
}
[/css]

flexboxの実装については、下記ページを参考に。

sponsors

top of page

©2026 coliss