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タイプのまとめ

推薦する

Oracle の開閉の 4 つのモード

>1 データベースを起動するcmd コマンド ウィンドウで、「sqlplus」を直接入力して ...

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

Web 開発の面接と筆記試験に必須の知識(必読)

HTML のインライン要素とブロックレベル要素の違い:標準的なドキュメント フローでは、ブロック ...

Vue+elementuiはドロップダウンテーブルの複数選択と検索機能を実現します

この記事では、ドロップダウンテーブルの複数選択と検索を実現するためのvue+elementuiの具体...

JS配列ループ方式と効率分析の比較

配列メソッドJavaScript には多くの配列メソッドが用意されています。次の図は、ほとんどの配列...

docker で php+nginx+swoole+mysql+redis 環境を構築する方法

オペレーティングシステム: Alibaba Cloud ESC インスタンス centos7.4ソフ...

MySQLのSeconds_Behind_Masterの詳細な説明

目次マスターの後ろの秒数オリジナルの実装最終マスタータイムスタンプマスターとのクロック差他の実行時間...

「さらに表示」ボタンによる複数行テキストの切り捨てに関する考察

最近、たまたまこの小さな要件に遭遇しました。昔、JS を使用してこれを処理したことを覚えていますが、...

デザイナーが再びハマーの公式サイトに不満を述べる

昨年、この公開書簡は大ヒットし、羅永浩氏を驚かせた。今日、著者が新しい章を発表するとは思ってもみなか...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...

MySQLの行ロックとテーブルロックの意味と違いの詳細な説明

1. はじめに行ロックとテーブルロックの違いは面接で頻繁に出てくるはずです。MySQL のロックにつ...

Tomcat をアンインストールして再インストールする方法 (画像とテキスト付き)

tomcat9をアンインストールする1. Tomcatのインストールはディレクトリに解凍するだけで...

Vue の大容量ファイルアップロードとブレークポイント再開アップロードの実装

目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...

MySQLの誤操作後にbinlog2sqlを使用して素早くロールバックする方法の詳細な説明

序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...

WeChatアプレットはキャンバスを使用して時計を描画します

この記事では、キャンバスを使用してWeChatアプレットに時計を描く具体的なコードを参考までに共有し...