divやimgの画像の高さを幅に合わせる方法
2022-01-14 18:16:33
この方法は主にサイトの適応性を高めるために使用されますが、画像を読み込んだ後にコンテンツの高さを保持し、ページのスクロールを回避するためにも実装することが可能です。
I. 画像の幅をjsで決定して特定の値を取得し、jsで画像の高さを設定することができます(ここでは詳しく説明しません)。
jsを使うデメリットとしては、画像の高さを調整できるのはページ更新時のみで、ブラウザのウィンドウサイズが変わると適応できないことが挙げられます。
次に、画像の高さ適応の問題ですが、今回は主にcssを使用して実装しました。
以下は必要なコードです。
(これは、テキストを画像の上に垂直に中央揃えで表示する方法なので、必要なければ、下のほうのすっきりしたコードを選んでください)
<div class="box">
<span>Vertical centering of in-line elements</span>
<div class="img-box">
<img src="123.jpg"/>
</div>
</div>
.box{
width: 50%;
margin: 50px auto;
}
.img-box{
width: 100%;
position:relative;
z-index:1;
}
.img-box img{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
width:100%;
margin:auto;
z-index: -1;
*zoom:1;
}
.img-box:before {
content: "";
display: inline-block;
padding-bottom: 100%;
width: 0.1px; /* must have value, otherwise it won't hold the height up */
vertical-align: middle;
}
1. ここでの主な説明は、padding-bottomプロパティは、その値がパーセンテージである場合、要素の幅によって計算されるということです。つまり、100%に設定すると、その高さは幅と同じになり、正方形が形成されます。もちろん、この値は実際の状況に応じて調整することができます。
2. 2つ目の注意点は、参照した画像は絶対位置指定によってレイアウトされているため、親要素のサイズに追従して適応を実現できることです。
もうひとつのきれいな方法は、imgの親要素に直接padding-bottomを追加することです。
<div class="img-box">
<img src="123.jpg"/>
</div>
.img-box{
padding-bottom:100%;
}
.img-box img{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
width:100%;
margin:auto;
}
以上、本記事の全内容をご紹介しましたが、皆様の学習のお役に立てれば幸いです。また、Script Houseをより一層応援していただければ幸いです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
HTML5のlocalStorageにオブジェクトを格納するサンプルコード
-
HTML5+ API plusreadyの互換性問題について
-
boostrapのモーダルフラッシュ問題の解決法
-
キャンバス描画の解像度が拡大され、ぼやけた状態になる
-
動画下の自動再生プロパティが無効な場合の解決方法(ミュートプロパティを追加する)。
-
HTML5 のタッチ イベント(touchstart、touchmove、touchend)の実装
-
ホームページのダイナミックな動画背景を実現するHTML5サンプルコード
-
円形のプログレスバーを生成する html svg
-
html5 コロンセパレータのアライメント実装
-
モバイルウェブの画像プリロード方式について簡単に紹介します。