最近のCSS動向
あまり触っていなかったCSSについて調べました。 業務でも使えそうなものをピックアップしてます。
CSSの公式のロゴが制定されたようです。
https://github.com/CSS-Next/logo.css/tree/main
命名規則
FLOCSSと言う物があるので採用しています。
FLOCSSを採用している大きな理由は無く、CSSの命名規則を考えるのが面倒なのが一番です、、
少々クラス名が長ったらしくなり、HTML, CSSの見栄えが悪くなるのが難点です。
Container Queries(コンテナクエリ)
ビューポート全体ではなく、「親要素」のサイズをもとにレスポンシブ対応できる仕組み。
<style>
.card {
container-type: inline-size;
width: 100%;
max-width: 500px;
border: 1px solid #ccc;
padding: 1rem;
}
@container (min-width: 400px) {
.card h2 {
color: green;
font-size: 2rem;
}
}
</style>
<div class="card">
<h2>ここだけレスポンシブなタイトル</h2>
</div>
:has() 擬似クラス(親セレクタ)
<style>
// img要素を子孫に持つcardクラスのみ適用されるCSS
.card:has(img) {
border: 2px solid green;
}
.card {
padding: 1rem;
}
</style>
<div class="card">
<img src="https://placehold.co/100x100" alt="sample">
<p>画像付きのカード</p>
</div>
CSSネスト
直感的にネスト構造でスタイルを整理しやすく書けます
<style>
// 過去の書き方
.card {
padding: 1rem;
border: 1px solid #ccc;
}
.card h2 {
color: navy;
font-size: 1.5rem;
}
.card p {
font-size: 1rem;
color: #666;
}
// ネスト記法での書き方
.card {
border: 1px solid #aaa;
padding: 1rem;
h2 {
color: navy;
font-size: 1.5rem;
}
p {
font-size: 1rem;
}
}
</style>
<div class="card">
<h2>ネストされた見出し</h2>
<p>これはネストされた段落です。</p>
</div>
新関数・Mixin・Anchor Positioningなど
サンプルは割愛しますが、続々と新しい関数がリリースされています。
JavaScriptでやっていたことをCSSでできるようになってきているので活用しましょう。

牧野
RPCブログ管理者