CSSを使用してアダプティブスクエアを実装する方法の例

CSSを使用してアダプティブスクエアを実装する方法の例

伝統的な方法は、正方形を固定形式で書くことです。長さ=幅を直接書き、次のように固定値を書きます。

。箱{
		幅: 200ピクセル;
		高さ: 200px;
		背景: ピンク;
		色: #666;
	} 

しかし、多くの場合、モバイルデザインでは、画像の幅はモバイルデバイスによって変わります。このとき、適応型スクエアが必要になります。

比較的単純な実装方法を 2 つ紹介します。

方法 1: CSS3 vw 単位、vw はビューポートの幅に相対的です。ビューポートは 100 単位の vw 単位に分割されます。 1vw = 1% ビューポート幅

。箱{
		width: 20%; //width:20vw でも OK height: 20vw;
		背景: ピンク;
	}

方法 2:ボックスの padding-bottom スタイルを、ボックスの padding-bottom がボックスの幅と同じになるように設定し、height = 0px に設定します。

<!DOCTYPE html>
<html>
	<ヘッド>
		<メタ文字セット="utf-8">
		<meta http-equiv="X-UA-compatible" content="IE=edge">
		<タイトル></タイトル>
		<link rel="スタイルシート" href="">
	</head>
	<スタイル>
                *{
            	    マージン: 0;
	            パディング: 0;
                }
		。箱{
			幅: 20%;
			/* コンテンツによってボックスの高さが過度に伸びるのを防ぐため、高さを 0 に設定します */
			高さ: 0px;
			/* ボックスの高さを拡大します。
			   幅と同じ固定幅またはパーセンテージを設定します。
			   パーセンテージは親要素ボックスの幅に対する相対値です*/
			パディング下部: 20%;
			背景: ピンク;
			色: #666;
		}
	</スタイル>
	<本文>
		<div class="box">	
	            <p>これは自己適応型正方形です</p>
		</div>	
	</本文>
</html> 

ここでheight: 0pxと書かれていない場合、ボックス内にコンテンツがある場合、ボックスはコンテンツによって拡張されることに注意してください。

padding-bottom を padding-top に変更すると何が起こりますか?

四角の中にコンテンツがある場合、そのコンテンツは四角の外側に表示されることがわかります。これは、デフォルトのテキストが左から右、上から下に配置されているため、padding-top の後にはテキストが四角の外側に表示されてしまうためです。そのため、ここでの padding-bottom と padding-top は混在できません。

また、ボックスは height : 0px; に設定されているため、要素内に子要素がある場合、高さを正常に設定できません。したがってposition: absolute;使當前內容脫離文檔流,那么內容的高度百分比參照的就是父級的寬度

*{
	マージン: 0;
	パディング: 0;
}
。箱{
	幅: 20%;
	/* コンテンツによってボックスの高さが過度に伸びるのを防ぐため、高さを 0 に設定します */
	高さ: 0px;
	/* ボックスの高さを拡大します。
	   幅と同じ固定幅またはパーセンテージを設定します。
	   パーセンテージは親要素ボックスの幅に対する相対値です*/
	パディング下部: 20%;
	背景: ピンク;
	色: #666;
	位置: 相対的;
	オーバーフロー: 非表示;
}
p{
	位置: 絶対;
	幅: 100%;
	高さ: 100%;
	背景: 黄色;
}

こうすることで、ボックスの内容が正方形を埋め尽くします。

CSS でアダプティブ スクエアを実装する方法についての記事はこれで終わりです。CSS アダプティブ スクエアの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Nodejs-cluster モジュールの知識ポイントの概要と使用例

>>:  7つのMySQL JOINタイプのまとめ

推薦する

WIN10 システムと Docker 内部コンテナ IP 間の通信方法

1. Windows 版の Docker をインストールしたら、Docker クイックスタート ター...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

vue3を使用して人間と猫のコミュニケーションアプレットを実装する

目次序文プロジェクトを初期化するデザインコードの実装オンデマンドロードオーディオを再生録音長押しイベ...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

HTML レイヤード ボックス シャドウ効果のサンプル コード

まず、画像を見てみましょう。今日はこのエフェクトを作成します。 実は、何でもないんです。Web ペー...

mysqlにコメント情報を追加する実装

序文最近、MySQL に関するメモをいくつか尋ねる人がいたので、ブログ記事を書かなければなりません。...

ウェブページ上の写真プレビューナビゲーションを設計するためのヒント

<br />ナビゲーションとは、ウェブサイトの上部にあることが多いナビゲーション バーの...

Tomcat のメモリ構成の正しい姿勢についての簡単な説明

1. 背景多くのブログや記事を読みましたが、JVM のメモリ割り当て方法に関する包括的な記事は見つか...

ローカル画像サーバーのNginx構成の実装

目次1. Nginx の紹介2. 画像サーバーの構築1. Nginx の紹介Nginx はリバース ...

MySQL 5.7 インストール不要の設定グラフィックチュートリアル

Mysql は人気があり、使いやすいデータベース ソフトウェアです。以下は、mysql の無料インス...

Jenkins+tomcat の自動ホットデプロイメント/再起動と発生した問題の解決策 (推奨)

1. 背景同社のプロジェクトは、これまでは手動で Maven でパッケージ化し、サーバーにアップロ...

シンプルな時計を実装するJavaScript

この記事では、JavaScriptでシンプルな時計を実装するための具体的なコードを参考までに紹介しま...

JavaScript の setTimeout と setTimeinterval の使用例の説明

どちらの方法も、一定時間後に JavaScript コードを実行するために使用できますが、それぞれに...

inline-blockプロパティとの互換性

<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...

Linux で大きなファイルの指定された内容を見つける方法

大きなことも小さなことも考えて、方向転換しましょう。 Linux では非常に大きなファイルに遭遇する...