CSS3 の新技術
メディア クエリには、メディア タイプと、幅、高さ、色などのメディア プロパティを使用してスタイル シートの範囲を制限する少なくとも 1 つの式が含まれます。 CSS3 に追加されたメディア クエリにより、コンテンツを変更せずに、さまざまなサイズの特定のデバイスにスタイルを適用できるようになります。それがレスポンシブレイアウトです。
メディア クエリが true の場合、関連するスタイル シートまたはスタイル ルールが通常のカスケード ルールに従って適用されます。メディア クエリが false を返した場合でも、 タグにメディア クエリを含むスタイルシートはダウンロードされます (適用されないだけです)。
メディア タイプはオプションであり、not または Only 演算子が使用されない場合はデフォルトで all になります。
メディアクエリでは大文字と小文字が区別されません。不明なメディア タイプを含むクエリは通常 false を返します。
演算子 not と and のみは、複雑なメディア クエリを構築するために使用できます。
not または Only 演算子を使用する場合は、メディア タイプを明示的に指定する必要があります。
複数のメディア クエリをカンマで区切ってまとめることもできます。そのうちの 1 つが true である限り、メディア ステートメント全体が true を返します。 or 演算子と同等です。
ほとんどのメディア プロパティには、「以下」と「以上」を表すために使用される「min-」と「max-」という接頭辞が付いています。これにより、HTML および XML と競合する「<」および「>」文字の使用が回避されます。メディア プロパティの値を指定せず、プロパティの実際の値がゼロ以外の場合、式は true に解決されます。
<!-- link元素中的CSS媒体查询 --><link rel="stylesheet" media="(max-width: 800px)" href="example.css" /><!-- 样式表中的CSS媒体查询 --><style>@media (max-width: 600px) { .facet_sidebar { display: none; }}</style>
本質的に、CSSカウンターはCSSによって維持される変数であり、使用状況を追跡するために追加されたCSSルールに基づいている可能性があります。これにより、ドキュメントの位置に基づいてコンテンツの表示を調整できます。 CSSカウンターはCSS2.1における自動カウント数部分の実装です。
カウンタの値は、カウンタ リセットおよびカウンタ インクリメント操作を使用してコンテンツに counter() または columns() 関数を適用することによってページに表示されます。
CSS カウンターを使用する前に、値にリセットする必要があります。デフォルトは 0 です。要素のカウンターをインクリメントするには、counter() 関数を使用します。
body { counter-reset: section; /* 重置计数器成0 */}h3:before { counter-increment: section; /* 增加计数器值 */ content: "Section " counter(section) ": "; /* 显示计数器 */}
counters() 関数を使用すると、さまざまなレベルでネストされたカウンターの間に文字列を挿入できます。
ol { counter-reset: section; /* 为每个ol元素创建新的计数器实例 */ list-style-type: none;}li:before { counter-increment: section; /* 只增加计数器的当前实例 */ content: counters(section, ".") " "; /* 为所有计数器实例增加以“.”分隔的值 */}
CSS 変換の定義に使用される 2 つの主要なプロパティ:transform とtransform-origin
ページがさまざまな画面サイズやデバイスの種類に適応する必要がある場合に、要素が適切に動作するようにするレイアウト方法。多くのアプリケーションでは、フレックスボックスは、浮動小数点数を使用したり、フレックスボックス コンテナーとそのコンテンツの間のマージンをマージしたりしないことにより、ブロック モデルを改善します。
多くのデザイナーは、フレックス ボックスを使い始めるのが簡単だと感じるでしょう。フレキシブルボックス内の子要素は、全方向に配置することで親要素の表示領域に柔軟に適応できます。子要素の表示順序はコード内の順序とは独立しているため、フレックスボックスを使用すると、子要素の配置が簡単になり、より明確なコードを使用して複雑なレイアウトをより簡単に実装できます。独立した表示は、コード宣言やナビゲーション順序に基づくのではなく、表示される要素に対してのみ設定されます。
フレキシブル ボックス レイアウトの定義では、子要素の高さと幅を自動的に調整して表示デバイスの利用可能な表示スペースを満たすことができ、コンテンツがオーバーフローするのを防ぐためにコンテンツを縮小することができます。
垂直方向にレイアウトされるブロックレベル要素や水平方向にレイアウトされるインライン要素とは異なり、フレックスボックス レイアウト アルゴリズムは方向に依存しません。
ブロックレベルの要素レイアウトはページ内で適切に機能しますが、ユーザー エージェントが垂直から水平に切り替えるなどの変更に基づいて、方向の切り替え、サイズ変更、伸縮、縮小を必要とする参照コンポーネントをサポートするには十分に定義されていません。
大規模レイアウトを対象とした今後のグリッド レイアウトとは異なり、Flexbox レイアウトはアプリケーション コンポーネントや小規模レイアウトに適しています。どちらも、さまざまなユーザー エージェント、さまざまな書き込みモード、その他の柔軟性のニーズに対応するための CSS ワーキング グループによる取り組みです。
コンセプト隣接する flex サブ要素はマージンとマージされません。 auto を使用したマージンにより、垂直方向と水平方向に余分なスペースがもたらされ、隣接する flex の子を整列または分離するために使用できます。
Elastic 子要素が適切なデフォルトの最小サイズを持つようにするには、min-width:auto と min-height:auto を使用します。 Elastic 子要素の場合、auto 属性はその最小幅と高さがコンテンツのサイズ以上であることを計算し、そのサイズがレンダリング中にコンテンツを収容するのに十分であることを保証します。
CSS の他の中央揃え方法とは異なり、フレキシブル ボックスの配置は正確に中央揃えになります。これは、フレックス コンテナーがオーバーフローしても、子要素は中央に配置されたままであることを意味します。これは問題になる場合がありますが、ページの上端または左端 (英語などの左から右に記述する言語の場合は、この問題は右から左に記述する言語の右端で発生します) からはみ出しても問題が発生します。アラビア語など)、そこにコンテンツがあっても、そこにスクロールすることはできないからです。
そういえば、要素の表示順序はソースコード内の順序とは関係ありませんが、この独立性は表示効果にのみ有効であり、音声順序とソースコードベースのナビゲーションを除きます。たとえ順序であっても、言語やナビゲーションの順序には影響しません。したがって、開発者は、ドキュメントのアクセシビリティを損なうことを避けるために、ソース コード内の要素を慎重に配置する必要があります。
フレックスボックスは異なるレイアウトロジックを使用するため、一部のプロパティはフレックスコンテナでは無効になります。
すべてのブラウザがプレフィックスのない属性名をサポートしているわけではないことに注意してください。この機能を最新のブラウザーで動作させるには、各プロパティを 3 回記述する必要があります。1 回目は -moz プレフィックス付き、1 回目は -webkit プレフィックス付き、そして 1 回目はプレフィックスなしです。
@Rule@ルールは、'@' (U+0040 COMMERCIAL AT) 記号で始まり、その後に識別子、または最初のセミコロン ';' (U +003B SEMICOLON) が続く CSS ステートメントです。それ以外の場合は、次で終わります。最初の宣言ブロック。
ここでは、識別子によって指定される @ ルールをいくつか示します。各ルールは異なる構文を持っています:
それらはすべて次のことを表します: それらが参照する条件 (さまざまなタイプ) は常に true または false と同等であり、それが true の場合、それらのステートメントは有効になります。
条件付きルール グループは、CSS 条件レベル 3:
@media,
MDN