コハム

Webクリエイターのコハムが提供する、Web制作に役立つ情報をまとめたブログです。

2024年のCSSの進化を振り返る!来年から使いたい新プロパティ16選

2024年に使用可能な新しいCSSプロパティについては、特にCSSの仕様や仕様に対する進展に基づいて、いくつかの注目すべき新しいプロパティがあります。2024年に使用可能となったCSSプロパティをご紹介します。

1. :has()擬似クラス

has()は、親要素が特定の条件を満たす場合にスタイルを適用するための擬似クラスです。これにより、親要素に特定の子要素が存在する場合にスタイルを変更することができます。これまでのCSSでは、子要素に基づいて親要素をスタイル変更することはできませんでしたが、:has()を使用することでその逆のことが可能になります。

例:

/* 親要素に.buttonがある場合に色を変更 */
div:has(.button) {
  background-color: lightblue;
}
  • 対応ブラウザ: Chrome、Safari、Edge(2024年にはほとんどの主要ブラウザが対応予定)

2. container queries

container queriesは、コンテナ(親要素)のサイズに基づいてスタイルを変更するための新しい方法です。従来、CSSのメディアクエリはビューport(画面サイズ)に基づいてスタイルを変更するものでしたが、コンテナクエリを使うことで、親要素のサイズに応じたレスポンシブデザインが可能になります。

例:

/* 親要素の幅が500px以上の場合にスタイルを変更 */
.container {
  container-type: inline-size;
}

.container:has(.item) {
  display: grid;
}
  • 対応ブラウザ: Chrome、Firefox、Safariなど、2024年にはほとんどのブラウザが対応する予定です。

3. aspect-ratioプロパティ

aspect-ratioは、要素の縦横比を指定するためのプロパティです。特に画像や動画など、アスペクト比を保ったままレイアウトを調整するために使用されます。このプロパティはすでに多くのブラウザでサポートされており、2024年にはより広く利用されるでしょう。

例:

img {
  aspect-ratio: 16 / 9; /* 横16対縦9の比率を保持 */
  width: 100%;
}
  • 対応ブラウザ: ほぼ全ての主要ブラウザが対応。

4. clamp()関数

clamp()は、値を最小値と最大値の間で制約するCSS関数です。この関数を使うことで、例えばフォントサイズや幅などのプロパティに対して柔軟に制約をかけることができます。

例:

/* フォントサイズを最小12px、最大24px、基準値16pxに制約 */
p {
  font-size: clamp(12px, 4vw, 24px);
}
  • 対応ブラウザ: 最新のブラウザでは広くサポートされており、2024年には標準的に使用されるでしょう。

5. @property(CSSカスタムプロパティの宣言)

@propertyは、カスタムプロパティ(CSS変数)に対してデフォルト値や関連するトランジションの設定などを定義するための新しい規格です。これを使うことで、カスタムプロパティをより柔軟に制御できます。

例:

@property --main-color {
  syntax: '<color>';
  initial-value: #000;
  inherits: true;
}
  • 対応ブラウザ: Chrome、Edge、Safari(順次対応)

6. :focus-visible擬似クラス

:focus-visibleは、キーボードでフォーカスを当てたときにのみスタイルを適用するための擬似クラスです。これにより、視覚的に重要なフォーカスリングをユーザーに提供し、マウス操作時には不要なフォーカスリングを非表示にできます。

例:

button:focus-visible {
  outline: 2px solid blue;
}
  • 対応ブラウザ: 多くのモダンブラウザがサポートしています。

7. scroll-snap-typeの強化

scroll-snap-typeプロパティは、スクロール時のスナッピング(要素を一定の位置にぴったり合わせる動作)を制御します。これに関連する新しい設定や機能が強化され、より柔軟にスクロールエフェクトをデザインできます。

例:

.scroll-container {
  scroll-snap-type: x mandatory;
}
  • 対応ブラウザ: ほぼ全ての主要ブラウザでサポートされています。

8. @layer でのスタイルのレイヤリング

@layerは、CSSでスタイルを「レイヤー」としてグループ化するための新しいディレクティブです。これにより、スタイルの優先順位を簡単に制御できるようになります。特に、CSSファイルをモジュール化して使いたい場合や、複数のスタイルを適切な順番で適用したい場合に役立ちます。

例:

@layer reset {
  /* リセットスタイル */
}

@layer base {
  /* ベーススタイル */
}

@layer components {
  /* コンポーネントスタイル */
}
  • 対応ブラウザ: Chrome、Safari、Edge(順次対応)

9. grid-template-areas の強化

CSS Gridのgrid-template-areasが強化され、さらに柔軟に複雑なレイアウトを作成できるようになります。特に、テンプレートエリアの定義において、より細かな制御ができるようになり、従来よりも簡潔にデザインを組むことが可能です。

例:

.container {
  display: grid;
  grid-template-areas:
    "header header header"
    "sidebar content content"
    "footer footer footer";
}
  • 対応ブラウザ: 最新ブラウザでサポート

10. resize プロパティの強化

resizeプロパティは、要素のサイズ変更可能エリアを制御するものです。特に、入力フィールドやコンテナをユーザーが動かせるようにするために使います。これが強化され、より直感的にインタラクションを作成できるようになります。

例:

textarea {
  resize: both; /* ユーザーが縦横にサイズを変更できる */
}
  • 対応ブラウザ: 一部ブラウザではすでにサポート、2024年にはさらに強化

11. will-changeプロパティの最適化

will-changeプロパティは、ブラウザに「この要素が変化する予定がある」と伝えるためのもので、パフォーマンスを最適化するために使用されます。2024年には、より広範なプロパティに対応し、パフォーマンスが改善されることが期待されています。

例:

div {
  will-change: transform, opacity; /* この要素はtransformやopacityが変わる予定 */
}
  • 対応ブラウザ: 一部ブラウザでサポート、2024年にはさらなる最適化

12. subgrid(CSS Grid)

subgridは、CSS Gridの新しい機能で、親グリッドの定義を子グリッドに継承できる機能です。これにより、より複雑で整然としたレイアウトを作成することができます。特に、グリッド内でサブグリッドを使って整列させるときに便利です。

例:

.parent {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.child {
  display: subgrid; /* 親のグリッド設定を継承 */
}
  • 対応ブラウザ: Chrome、Firefox、Safariなど(2024年には完全サポート)

13. object-fit の強化

object-fitは、画像やビデオが親要素に収まる方法を指定するプロパティです。2024年には、さらに多くの選択肢が提供され、より細かく制御できるようになります。

例:

img {
  object-fit: cover; /* 画像が要素の領域を覆うように */
}
  • 対応ブラウザ: ほとんどのモダンブラウザでサポート

14. text-decoration の強化

text-decorationプロパティは、リンクやテキストの装飾を制御しますが、2024年にはさらなる細かな制御が可能になります。特に、リンクの下線の色やスタイルを柔軟に設定できるようになるなど、視覚的なカスタマイズが簡単に行えるようになります。

例:

a {
  text-decoration: underline solid red; /* 赤い下線 */
}
  • 対応ブラウザ: 多くのブラウザでサポート

15. container-query の新しい機能

container-query(コンテナクエリ)の機能がさらに強化され、より複雑なレスポンシブデザインを構築するために活用されます。これにより、要素のサイズや状態に基づいてスタイルを変更することが容易になります。

例:

.container {
  container-type: inline-size;
}

.container:container-query(min-width: 600px) {
  background-color: lightgreen;
}
  • 対応ブラウザ: 2024年には全面的にサポートされる予定

16. prefers-reduced-motionの強化

prefers-reduced-motionは、アニメーションや動きのあるインターフェースを使用しないことをユーザーが指定できるCSSメディアクエリです。これが強化され、より多くのアニメーションの制御が可能になり、アクセシビリティが向上します。

例:

@media (prefers-reduced-motion: reduce) {
  .animation {
    animation: none;
  }
}
  • 対応ブラウザ: 最新のブラウザでサポート

まとめ

これらのCSSプロパティや機能は、2024年に使いやすさやパフォーマンス、デザインの柔軟性を大きく向上させるものです。特に、container queriessubgrid@layerなどの新機能は、今後のウェブデザインにおいて重要な役割を果たすことが予想されます。ブラウザのサポート状況を確認しながら、実際のプロジェクトに取り入れていくと良いでしょう。

©コハム