CSS3 @mediaの基本的な使い方のまとめ

CSS3 @mediaの基本的な使い方のまとめ
//文法:
@media mediatype and | not | only (メディア機能) { css-code; }
//メディアごとに異なるスタイルシートを使用することもできます: 
<link rel="stylesheet" media="mediatype and|not|only (メディア機能)" href="mystylesheet.css">

1. まず<meta>タグ

<meta name="viewport" content="width=デバイス幅、初期スケール=1.0、最大スケール=1.0、ユーザースケーラブル=いいえ">

このコードのいくつかのパラメータについて説明します。

  • 幅 = デバイス幅: 幅は現在のデバイスの幅に等しい
  • initial-scale: 初期スケール(デフォルト設定は 1.0)
  • minimum-scale: ユーザーがズームできる最小スケール(デフォルト設定は 1.0)
  • 最大スケール: ユーザーがズームできる最大スケール (デフォルト設定は 1.0)
  • user-scalable: ユーザーが手動でズームインおよびズームアウトできるかどうか (ユーザーがページをズームインおよびズームアウトできないようにするため、デフォルト設定は「いいえ」です)

2. <head> タグで導入 (CSS2 メディア)

実際、メディアの使用をサポートしているのは CSS3 だけではありません。CSS2 はすでにメディアをサポートしています。具体的な使用方法は、HTML ページの head タグに次のコードを挿入することです。

たとえば、現在のモバイル デバイスに縦型ディスプレイがあるかどうかを知りたい場合は、次のように記述できます。

<link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" ;href="style.css">

ページ幅が 960 未満の場合、指定されたスタイル ファイルが実行されます。

<link rel="stylesheet" type="text/css" media="screen and (max-width:960px)" href="style.css">

CSS2 は CSS のこの効果を実現できるので、なぜこの方法を使用しないのですか? と疑問に思う人も多いかもしれませんが、上記の方法の最大の欠点は、ページに対する http リクエストの数が増え、ページの負荷が大きくなることです。 CSS3 を使用してすべてのスタイルを 1 つのファイルに記述するのが最善の方法です。

競合は次のように発生します。

<link rel="stylesheet" href="styleA.css" media="screen and (min-width: 800px)">  
<link rel="stylesheet" href="styleB.css" media="screen and (min-width: 600px) and (max-width: 800px)">  
<link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">

上記は、デバイスを3つのタイプに分類します。幅が800pxより大きい場合はstyleAが適用され、幅が600px〜800pxの場合はstyleBが適用され、幅が600px未満の場合はstyleCが適用されます。では、幅がちょうど 800 ピクセルの場合、どのようなスタイルを適用すればよいでしょうか?最初の 2 つの式は両方とも true であり、CSS のデフォルトの優先ルールに従って後者が前者を上書きするため、styleB になります。

したがって、競合を避けるために、この例は通常次のように記述する必要があります。

<link rel="スタイルシート" href="styleA.css" media="screen">  
<link rel="stylesheet" href="styleB.css" media="screen and (max-width: 800px)">  
<link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">

3. CSS3 @mediaに戻る

上記では、CSS2 メディア クエリの使用について簡単に説明しました。次に、CSS3 メディア クエリに戻りましょう。最初のコードでは、960 ピクセル未満のサイズ用の書き込み方法を使用しました。次に、960 ピクセルに等しいコードを実装します。次のコードをスタイル タグまたは CSS ファイルに記述する必要があります。

@media スクリーンと (max-device-width:960px) {
    本文{背景:赤;}
}

次に、ブラウザのサイズが 960 ピクセルより大きい場合のコードを示します。

@media スクリーンと (min-width:960px) { 
    本文{背景:オレンジ;}
}

上記の用法を組み合わせることもできます。

@media スクリーンと (最小幅:960px) と (最大幅:1200px) {
    本文{背景:黄色;}
}

上記のコードは、ページの幅が 960px より大きく 1200px 未満の場合に次の CSS が実行されることを意味します。

4. すべてのメディアパラメータの概要

上記は、メディアクエリで最も頻繁に使用する必要がある 3 つの機能、「より大きい」、「等しい」、「より小さい」です。メディア クエリ ツールの完全な機能は、間違いなくこれら 3 つの機能だけではありません。以下に、そのパラメータの使用法の概要を示します。

  • width: ブラウザの表示幅。
  • height: ブラウザに表示される高さ。
  • device-width: デバイス画面の幅。
  • device-height: デバイス画面の高さ。
  • orientation: デバイスが現在横向きか縦向きかを検出します。
  • アスペクト比: ブラウザの表示幅と高さの比率を検出します。 (例: アスペクト比:16/9)
  • device-aspect-ratio: デバイスの幅と高さの比率を検出します。
  • color: 色を検出するビット数。 (例えば、min-color:32 はデバイスが 32 ビットカラーを持っているかどうかを検出します)
  • color-index: デバイスのカラー インデックス テーブル内の色をチェックします。その値は負にできません。
  • モノクロ: モノクロ フレーム バッファー内のピクセルあたりのビット数をチェックします。 (これは高度すぎるので、めったに使用されないと思います)
  • 解像度: 画面またはプリンターの解像度を検出します。 (例: min-resolution:300dpi または min-resolution:118dpcm)。
  • grid: 出力デバイスがグリッドデバイスかビットマップデバイスかを検出します。
(最大幅:599ピクセル) 
(最小幅:600ピクセル) 
(orientation:portrait) 縦画面 (orientation:landscape) 横画面 (-webkit-min-device-pixel-ratio: 2) ピクセル比

5. メディアタイプ

1.すべてのメディア

2. 点字触覚装置

3. エンボス点字プリンター

4.ハンドヘルドデバイスで印刷

5.投影印刷プレビュー

6.スクリーンカラースクリーン装置

7.音声「聴覚」類似メディアタイプ

8.ttyはピクセルデバイスには適していません

9. テレビ

6. キーワード

1.そして

2.not not キーワードは、特定の種類のメディアを除外するために使用されます。

3. 特定のメディアタイプを定義するためにのみ使用される

- メディア機能をサポートしていないがメディアタイプをサポートしているデバイスでよく使用されます

7. ブラウザのサポート

IE8-

IE9以上

Chrome 5以上

オペラ10+

Firefox 3.6以降<

サファリ4+

8. よく使われる画面幅の設定:

@media スクリーンと (最小幅: 1200px) {
        CSSコード;
}
@media screen かつ (最小幅: 960px) かつ (最大幅: 1199px) {
        CSSコード;
}
@media screen および (最小幅: 768px) および (最大幅: 959px) {
        CSSコード;
}
@media screen および (最小幅: 480px) および (最大幅: 767px) {
        CSSコード;
}
@media スクリーンと (最大幅: 479px) {
        CSSコード;
}

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

<<:  IE6では画像要素imgに余分な空白スペースがある

>>:  アイデアを通じてプロジェクトをDockerにパッケージ化する方法

推薦する

HTMLベースの複数画像アップロードのプレビュー機能を実装

最近、Web ページに複数の画像をアップロードするためのスクリプトを作成しました。これは非常に実用的...

Ubuntu 18.04 でソースコードから Odoo14 をインストールするチュートリアル

目次このシリーズの背景概要PostgreSQL データベースの準備ソースからインストール仮想環境の作...

MySQL Community Server 8.0.11 のインストールと設定方法のグラフィックチュートリアル

最近、MySQL を始めとしてデータベースの知識を勉強し始めました。以下では、皆さんの参考になるよう...

Ubuntu 16.04 で FTP サーバーを構築するチュートリアル

Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...

角丸四角形の HTML+CSS 実装コード

退屈していたので、突然角丸四角形の実装を思いつきました。しかし、私たちはこの話題についてあまりにも長...

CentOs でノード バージョンを手動でアップグレードする方法

1. 対応するNode.jsパッケージを見つけます。https://nodejs.org/downl...

設定ファイルを変更した後、操作を再開します

余計なことは言わないで、コードだけ見てみましょう〜 # docker-compose をダウン # ...

uni-app で scss を使用するサンプル コード

遭遇した落とし穴私は午後中ずっと、uni-app で scss を使用する際の落とし穴を解決すること...

Linux ncコマンドの概要

NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit &a...

JSはリクエストディスパッチャーを実装する

目次抽象化と再利用シリアルセグメントシリアル、セグメントパラレル要約するはじめに: JS は当然並列...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

MySQL 8.0.22 解凍版インストールチュートリアル(初心者向け)

目次1. リソースのダウンロード2. ソフトウェアを解凍する2.1 場所を選択する2.2 名前を変更...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

MySQLのバッファプールの詳細な説明

MySQL のデータはディスクに書き込む必要があることは誰もが知っています。ディスクの読み取りと書き...

IDEA は Docker プラグインを使用します (初心者向けチュートリアル)

目次例示する1. Dockerリモートアクセスを有効にする2. Dockerに接続する3. イメージ...