目次
問題を解決するには?? 画像を水平方向と垂直方向に中央揃えにします
jQuery コード
ホームページ ウェブフロントエンド htmlチュートリアル 画像を水平方向と垂直方向に中央揃えにする CSS_html/css_WEB-ITnose

画像を水平方向と垂直方向に中央揃えにする CSS_html/css_WEB-ITnose

Jun 24, 2016 am 11:51 AM

いわゆる画像の水平方向および垂直方向のセンタリングとは、画像をコンテナ要素 (画像サイズよりも大きいコンテナ、または指定されたサイズのコンテナ) に配置することを意味し、画像は中央に配置されます。コンテナ (中央はコンテナ要素の中央を指します) であり、画像は背景画像の形式ではなく、 要素の形式で表示されます。下の図に示すように:

問題を解決するには?? 画像を水平方向と垂直方向に中央揃えにします

画像が左に浮いていて「display:inline」の場合、水平方向の中央揃えを解決するのは非常に簡単です。画像の「text-align」を設定する必要があります。 :center」属性により、水平方向の中央揃えの問題が正常に解決されます。

最新のブラウザでは、垂直方向の中央揃えに最適なソリューションとして、画像コンテナーに「dipslay:table-cell;vertical-align:middle」を設定できます。このメソッドは画像を垂直方向にスムーズに中央揃えにできますが、実行できるのは でのみです。最新のブラウザでは、IE6 ~ 7 では正しく動作しません。これは達成不可能でしょうか?心配しないでください、皆さん、次のメソッドを見てみましょう:

1. table-cell と display:inline

このメソッドは素晴らしいと前に言いました。最新のブラウザでは、画像を中央に配置するのが最善の方法ですが、IE6 ~ 7 では、display:table-cell をサポートしていません。実際には、IE6 ~ 7 では、別の方法で記述するだけで十分です。実際、原理をマスターすれば、IE で実装するのは難しくありません。まずこのアイデアを見てみましょう:

  1. まず、コンテナ要素に "display:table-cell;vertical-align:middle;" を設定します。これで、ブラウザーが垂直方向に中央揃えになりました
  2. IE6 ~ 7 の場合は、画像コンテナーと同じ高さのワイヤー ボックスを作成し、このワイヤー ボックスに "vertical-align:middle" を設定するのが良い方法です。

次のキーは、IE6 ~ 7 用のライン ボックスを作成することです。幸いなことに、IE6 ~ 7 は「dipslay:inline-block」を部分的にサポートしています。このようにして、画像コンテナ内に空の要素 (span など) を作成し、span の「display:inline-block;height:100%;vertical-align:middle」を設定できます。

ラインボックスを作成する際に注意が必要な点があります。IE6-7 では空のラインブロック要素の幅は「0」ですが、現時点では IE6-7 では影響がありません。 「width:」をspan: 1pxに追加する必要があります。これにより、水平方向のセンタリングで1pxのエラーが発生しますが、このバグは許容できます。

そして、最終的な解決策は display:table-cell を使用し、display:inline-block の行幅を設定することです。 もちろん、IE 用の特別なコードを記述する必要があります。次にコードを見てみましょう:

<ul class="imgWrap clearfix">                <li><a href="#" class="imgBox"><span></span><img src="images/img1.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img2.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img3.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img4.jpg" alt="" /></a></li>            </ul>        
ログイン後にコピー

2.の画像

span inline 要素をインライン ブロック要素として設定します。つまり、表示を「inline-block」に設定し、幅を 1px、高さをコンテナの 100% に設定します。コンテナの高さと同じにし、「vertical-align:middle」を渡すと、目的の効果が得られるように垂直方向の配置が設定されます。この方法は上記の方法よりも優れていると感じます。最も重要なことは、IE 単独でエフェクトを記述しないことです。このメソッドの構造は少し複雑ですが、IE6 ~ 7 ではそれが必要です。ハックと組み合わせて生成します。この方法は、テーブルの形状をシミュレートして、画像の垂直方向の中央揃えの効果を実現します。

テーブルには行 (テーブル行) とセル (テーブルセル) があることは誰もが知っています。テーブルのセルの "vertical-align: middle" は要素を垂直方向に中央揃えにすることができるため、次の例ではこれに基づいて Made を使用しています。原理、コードを見てみましょう

<style type="text/css">                .imgWrap li {                    float: left;                    border: solid 1px #666;                    margin: 10px 10px 0 0;                    list-style: none;                    border-collapse: collapse;                 }                .imgWrap a {                    background: #ffa url(images/gridBg.gif) repeat center;                    width: 219px;                    height: 219px;                    display: table-cell;/*图片容器以表格的单元格形式显示*/                    text-align: center; /* 实现水平居中 */                    vertical-align: middle; /*实现垂直居中*/                                    }                .imgWrap a:hover {                    background-color: #dfd;                }                .imgWrap img {                    border: solid 1px #66f;                    vertical-align: middle; /*图片垂直居中*/                }                </style>                <!--下面是解决IE6-7的正常显示的代码-->                <!--[if lt IE 8]>                    <style type="text/css">                    .imgWrap a {                        display: block;                    }                    .imgWrap span {                        display: inline-block;                        vertical-align: middle;                        height: 100%;                    }                    .imgWrap {                        _height: 0;                        zoom: 1;                    }                    </style>                <![endif]-->
ログイン後にコピー

<ul class="imgWrap clearfix">                <li><a href="#" class="imgBox"><span></span><img src="images/img1.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img2.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img3.jpg" alt="" /></a></li>                <li><a href="#" class="imgBox"><span></span><img src="images/img4.jpg" alt="" /></a></li>            </ul>
ログイン後にコピー

4. 画像を中央に配置する jQuery メソッド

このメソッドは非常に簡単です。つまり、変換するには jQuery メソッドを使用する必要があります。画像を親要素 Picture の背景に配置し、親要素の中央に背景画像を表示し、自身の透明度を「0」に設定します。これにより、画像を中央に配置する効果も得られます。

HTML マークアップ

rree

CSS コード

<style type="text/css">                .imgWrap li{                     width: 219px;                    height: 219px;                    float: left;                    border: solid 1px #666;                    margin: 10px 10px 0 0;                    list-style: none;                    text-align: center;                    font-size: 0;                }                .imgWrap a {                    display: block;                    height: 100%;                    background: #ffa url(images/gridBg.gif) repeat center;                }                .imgWrap a:hover {                    background-color: green;                }                .imgWrap span {                    display: inline-block;/*将行内元素改变为行内块元素显示*/                    width: 1px;/*实现IE下可读效果*/                    height: 100%;/*使用元素高度和图片容器高度一样*/                    vertical-align: middle;/*垂直对齐*/                }                .imgWrap img {                    vertical-align: middle;                }            </style>
ログイン後にコピー

jQuery コード

<ul class="imgWrap clearfix">                <li>                    <div class="table">                        <div class="tableCell">                            <a href="#" class="imgBox"><img src="images/img1.jpg" alt="" /></a>                        </div>                    </div>                    </li>                <li>                    <div class="table">                        <div class="tableCell">                            <a href="#" class="imgBox"><img src="images/img2.jpg" alt="" /></a>                        </div>                    </div>                    </li>                <li>                    <div class="table">                        <div class="tableCell">                            <a href="#" class="imgBox"><img src="images/img3.jpg" alt="" /></a>                        </div>                    </div>                    </li>                <li>                    <div class="table">                        <div class="tableCell">                            <a href="#" class="imgBox"><img src="images/img4.jpg" alt="" /></a>                        </div>                    </div>                    </li>            </ul>    
ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

See all articles