検索
ホームページウェブフロントエンドCSSチュートリアル高さが不明な画像を垂直方向の中央に配置する方法

高さが不明な画像を垂直方向の中央に配置する方法

Jun 26, 2018 pm 02:33 PM
写真垂直方向に中央揃え

この記事では主に、高さが不明な画像の垂直方向の中央揃えを設定する詳細な方法を紹介します。練習するときは、IE ブラウザーでの表示状況に特に注意してください。必要な場合は、それを参照してください。

標準ブラウザーは引き続き外部コンテナー #box を使用します。 IE6/IE7では表示モードをdisplay:table-cellに設定しています
201585174249665.jpg (500×400)

の為、実際の効果はimgタグの前に空タグを挿入します。ブラウザごとに解析が異なるため、ブラウザごとに 1px ~ 3px の誤差が生じます。
方法1:

この方法は、外部コンテナの表示モードをdisplay:tableに設定し、imgタグの外側にspanタグをネストし、spanの表示モードをdisplay:table-cellに設定します。もちろん、これは標準ブラウザ上でのみであり、IE6/IE7 では位置決めを使用する必要があります。
HTML コード

<p id="box">
<span><img src="/static/imghwm/default1.png"  data-src="images/demo.jpg"  class="lazy"   alt="" /></span>
</p>

CSS コード

<style type="text/css">   
#box{   
    width:500px;height:400px;   
    display:table;   
    text-align:center;   
    border:1px solid #d3d3d3;background:#fff;   
}   
#box span{   
    display:table-cell;   
    vertical-align:middle;   
}   
#box img{   
    border:1px solid #ccc;   
}   
</style>   
<!--[if lte IE 7]>   
<style type="text/css">   
#box{   
    position:relative;   
    overflow:hidden;   
}   
#box span{   
    position:absolute;   
    left:50%;top:50%;   
}   
#box img{   
    position:relative;   
    left:-50%;top:-50%;   
}   
</style>   
<![endif]-->

方法 2:

方法 2 と方法 1 の実装原則は似ており、方法 1 は条件付きコメントを使用し、方法 2 は CSS を使用します。ハック。
CSSコード

#box{   
    width:500px;height:400px;   
    overflow:hidden;   
    position:relative;   
    display:table-cell;   
    text-align:center;   
    vertical-align:middle;   
    border:1px solid #d3d3d3;background:#fff;   
}   
#box span{   
    position:static;   
    *position:absolute; /*针对IE6/7的Hack*/
    top:50%; /*针对IE6/7的Hack*/
}   
#box img {   
    position:static;   
    *position:relative; /*针对IE6/7的Hack*/
    top:-50%;left:-50%; /*针对IE6/7的Hack*/
    border:1px solid #ccc;   
}

この方法には欠点があります。標準ブラウザでは、外部コンテナ#boxの表示モードがdisplay:table-cellであるため、#boxはmargin属性を使用できず、IE8では枠線の設定も無効です。 。
方法 3:

IE6/IE7 では、引き続き、外部コンテナー #box の表示モードを、img タグの前に空のタグのペアを挿入する方法を使用します。

HTML コード

<p id="box">
    <i></i><img src="/static/imghwm/default1.png"  data-src="images/demo.jpg"  class="lazy"   alt="" />
</p>

CSS コード

<style type="text/css">   
#box{   
width:500px;height:400px;   
display:table-cell;   
text-align:center;   
vertical-align:middle;   
border:1px solid #d3d3d3;background:#fff;   
}   
#box img{   
border:1px solid #ccc;   
}   
</style>   
<!--[if IE]>   
<style type="text/css">   
#box i {   
    display:inline-block;   
    height:100%;   
    vertical-align:middle
    }   
#box img {   
    vertical-align:middle
    }   
</style>   
<![endif]-->

方法 4:

p タグを img タグの外側でラップします。標準ブラウザでは、これを実現するために、p タグの疑似クラス属性が使用されます。互換性を実現するための CSS 式。
HTML コード

<p id="box">
    <p><img src="/static/imghwm/default1.png"  data-src="images/demo.jpg"  class="lazy"   alt="" /></p>
</p>

CSS コード

#box{   
    width:500px;height:400px;   
    text-align:center;   
    border:1px solid #d3d3d3;background:#fff;   
}   
#box p{   
    width:500px;height:400px;   
    line-height:400px; /* 行高等于高度 */
}   
/* 兼容标准浏览器 */
#box p:before{   
    content:"."; /* <a href="http://casinogreece.gr/">????????????</a> 具体的值与垂直居中无关,尽可能的节省字符 */
    margin-left:-5px; font-size:10px; /* 修复居中的小BUG */
    visibility:hidden; /*设置成隐藏元素*/
}   
#box p img{   
    *margin-top:expression((400 - this.height )/2); /* CSS表达式用来兼容IE6/IE7 */
    vertical-align:middle;   
    border:1px solid #ccc;   
}

使用: beforr このメソッドは、標準ブラウザではより強力で副作用はありませんが、IE6/IE7 では、パフォーマンス要件がより高い場合、CSS 表現メソッドの使用には注意してください。
方法 5:

この方法は、IE6/IE7 用です。標準ブラウザでは、互換性を確保するために、画像の外部コンテナのフォント サイズを高さの 0.873 倍に設定します。構造も比較的似ています。
HTMLコード

<p id="box">
    <img src="/static/imghwm/default1.png"  data-src="images/demo.jpg"  class="lazy"   alt="" />
</p>

CSSコード

#box{   
    width:500px;height:400px;   
    text-align:center;   
    border:1px solid #d3d3d3;background:#fff;   
    /* 兼容标准浏览器 */
    display: table-cell;   
 vertical-align:middle;   
    /* 兼容IE6/IE7 */
    *display:block;   
    *font-size:349px; /* 字体大小约为容器高度的0.873倍 400*0.873 = 349 */
    *font-family:Arial; /* 防止非utf-8引起的hack失效问题,如gbk编码 */
}   
#box img{   
    vertical-align:middle;   
}

フォントサイズの設定方法が奇妙に感じられ、合理的な説明を見たことがありませんが、picture要素には他の要素とは異なるいくつかの特徴があることだけがわかります。 IE6/IE7 、この方法は非常に強力です。
考察: 多くのメソッドは、垂直方向のセンタリングを実現するために、外部コンテナの表示モードを table に設定することに依存しています。つまり、テーブルをシミュレートするための属性が CSS にあれば素晴らしいでしょう。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

CSS で負のマージン値を使用して中心位置を調整する方法

position:fixed 属性を使用して DIV を中心に配置する方法

以上が高さが不明な画像を垂直方向の中央に配置する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Google Fontsをタグ付けし、Goofonts.comを作成する方法Google Fontsをタグ付けし、Goofonts.comを作成する方法Apr 12, 2025 pm 12:02 PM

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

時代を超越したWeb開発記事時代を超越したWeb開発記事Apr 12, 2025 am 11:44 AM

Pavithra Kodmadは、彼らが変化したWeb開発に関する最も時代を超越した記事のいくつかであると考えていることについて、人々に推奨事項を求めました

セクション要素との取引セクション要素との取引Apr 12, 2025 am 11:39 AM

2つの記事がまったく同じ日に公開されました。

graphQlの練習JavaScript APIでクエリをクエリしますgraphQlの練習JavaScript APIでクエリをクエリしますApr 12, 2025 am 11:33 AM

GraphQL APIの構築方法を学ぶことは非常に挑戦的です。ただし、10分でGraphQL APIを使用する方法を学ぶことができます!そして、それは私が完璧になったことがあります

コンポーネントレベルのCMSコンポーネントレベルのCMSApr 12, 2025 am 11:09 AM

コンポーネントがデータが近くに住んでいる環境に住んでいる場合、視覚コンポーネントと

円にタイプを設定します...オフセットパス付き円にタイプを設定します...オフセットパス付きApr 12, 2025 am 11:00 AM

ここでは、Yuanchuanからの合法的なCSSの策略があります。このCSSプロパティオフセットパスがあります。むかしむかし、それはモーションパスと呼ばれ、その後改名されました。私

CSSで「戻る」ことは何をしますか?CSSで「戻る」ことは何をしますか?Apr 12, 2025 am 10:59 AM

Miriam Suzanneは、このテーマに関するMozilla開発者のビデオで説明しています。

現代の恋人現代の恋人Apr 12, 2025 am 10:58 AM

私はこのようなものが大好きです。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター