クイズ: モダンCSS知ってますか?(2025年向け)
フロントエンドに堪えますか?
クイズ: CSSマスターですか?
- 現代CSS?🤔
- **CSSはあなたのスキルに含まれますか?**🚀
- 複数選択問題です。🤖 … そんなに難しくないでしょう?
親要素/コンテナの幅が400pxの場合、以下の要素の計算済み幅はどのようになりますか?
div { width: min(250px, 50%);}min()関数は、250pxと親要素の幅の50%のうち小さい方の値を選びます。
計算値を理解するには、相対単位をピクセルに変換する必要があります:
- 400pxの50%は200px
- 250pxはすでにピクセル単位です
/* This gets computed to */width: min(250px, 200px);/* -> 200px wins */min()関数は特にレスポンシブデザインで役立ち、コンポーネント(またはフォントサイズ)が特定の上限を超えないように保証できます。
コンテナの幅が200pxの場合、<div>の計算幅はどれになるか?
div { width: max(50px, 10%, 6rem);}max()関数は2つ以上の入力を受け取り、自動的に最大値を適用する。ルートフォントサイズがブラウザのデフォルト値16pxと仮定すると、幅は96pxとなる。
計算値を理解するには、相対単位をピクセルに変換する必要がある:
50pxはすでにピクセル単位200pxの10%は20px6remは6 * 16px(デフォルトフォントサイズ)となり96px
/* This gets computed to */width: max(50px, 20px, 96px);/* -> 96px wins */CSSグリッドトラックでminmax(100px, 200px)を使用した場合の効果は?
grid-template-columns: minmax(100px, 200px);minmax(100px, 200px)を使用すると、グリッドトラックは100pxから200pxの範囲でリサイズ可能になります。利用可能なスペースに応じて自動調整されますが、100px以下や200px以上にはなりません。
repeat()やauto-fill/auto-fitと組み合わせると、制約内でできるだけ多くのトラックを生成する自動調整レイアウトが作れます。この柔軟性がCSS Gridの強みです。
clamp()はどのような動作をするか?
.card { width: clamp(200px, 50vw, 500px);}clamp()関数は50vwを基準に幅をスケーリングしつつ、200px〜500pxの範囲内で固定します。
つまり50vwが200px未満の場合は200px、500pxを超える場合は500px、その間は線形に変化します。
これにより自動的にリスポンシブデザインが実現できます!clampの特徴は固定単位とリスポンシブ/計算単位を組み合わせることです。
通常はビューポート単位をフォントサイズに使いたくないですが、clamp()を使えばフォントサイズが小さすぎる/大きすぎるのを防げます。
.containerの直接の子要素であるdivに適用される背景色は?
.container { background-color: red; > div { background-color: white; } background-color: blue !important;}ネストルール内の>セレクターは、.container内の直接の子要素であるdivにのみbackground-color: whiteを適用します。
最後のbackground-color: blue !important;はちょっとした罠です。これはネストルールの外にあり、すべての.container要素に適用されます。