目次
情形一:div限高,内容长度限一行
情形二:div限高,内容不限
情形三:div高度不定,内容高度一定
情形四:div高度不定,内容高度不定
ホームページ ウェブフロントエンド htmlチュートリアル 还记得我们折腾过的居中么? - jerrylsxu

还记得我们折腾过的居中么? - jerrylsxu

May 20, 2016 pm 01:46 PM

虽然div中内容上下居中的问题已经是一个比较古老的话题,但是最近发现还是有很多前端开发者在询问如何实现。其实网络上已经有很多资料和案例了,我这里再总结一下几个比较常见的处理方式。

情形一:div限高,内容长度限一行

复制代码
<span style="color: #008080;">1</span> <span style="color: #800000;">.v-align </span>{
<span style="color: #008080;">2</span> <span style="color: #ff0000;">    margin</span>:<span style="color: #0000ff;"> 0 auto</span>;
<span style="color: #008080;">3</span> <span style="color: #ff0000;">    width</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;">4</span> <span style="color: #ff0000;">    height</span>:<span style="color: #0000ff;"> 80px</span>;
<span style="color: #008080;">5</span> <span style="color: #ff0000;">    text-align</span>:<span style="color: #0000ff;"> center</span>;
<span style="color: #008080;">6</span> <span style="color: #ff0000;">    line-height</span>:<span style="color: #0000ff;"> 80px</span>;
<span style="color: #008080;">7</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px solid #ddd</span>;
<span style="color: #008080;">8</span> }
ログイン後にコピー
复制代码
<span style="color: #008080;">1</span> <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="v-align"</span><span style="color: #0000ff;">></span>我的内容只能有一行。<span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span>
ログイン後にコピー

情形二:div限高,内容不限

复制代码
<span style="color: #008080;"> 1</span> <span style="color: #800000;">.v-mult </span>{
<span style="color: #008080;"> 2</span> <span style="color: #ff0000;">    margin</span>:<span style="color: #0000ff;"> 0 auto</span>;
<span style="color: #008080;"> 3</span> <span style="color: #ff0000;">    width</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;"> 4</span> <span style="color: #ff0000;">    height</span>:<span style="color: #0000ff;"> 100px</span>;
<span style="color: #008080;"> 5</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px solid #ddd</span>;
<span style="color: #008080;"> 6</span> <span style="color: #ff0000;">    overflow</span>:<span style="color: #0000ff;"> hidden</span>;
<span style="color: #008080;"> 7</span> }
<span style="color: #008080;"> 8</span> <span style="color: #800000;">.v-mult .empty,
</span><span style="color: #008080;"> 9</span> <span style="color: #800000;">.v-mult .text </span>{
<span style="color: #008080;">10</span> <span style="color: #ff0000;">    display</span>:<span style="color: #0000ff;"> inline-block</span>;
<span style="color: #008080;">11</span> <span style="color: #ff0000;">    *display</span>:<span style="color: #0000ff;"> inline</span>;
<span style="color: #008080;">12</span> <span style="color: #ff0000;">    *zoom</span>:<span style="color: #0000ff;"> 1</span>;
<span style="color: #008080;">13</span> <span style="color: #ff0000;">    vertical-align</span>:<span style="color: #0000ff;"> middle</span>;
<span style="color: #008080;">14</span> }
<span style="color: #008080;">15</span> <span style="color: #800000;">.v-mult .empty </span>{
<span style="color: #008080;">16</span> <span style="color: #ff0000;">    height</span>:<span style="color: #0000ff;"> 100%</span>;
<span style="color: #008080;">17</span> }
ログイン後にコピー
复制代码
<span style="color: #008080;">1</span> <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="v-mult"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">2</span>     <span style="color: #0000ff;"><span style="color: #800000;">span </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="empty"</span><span style="color: #0000ff;">></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">3</span>     <span style="color: #0000ff;"><span style="color: #800000;">span </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="text"</span><span style="color: #0000ff;">></span>我的内容不限,多高都行<span style="color: #0000ff;"><span style="color: #800000;">br</span><span style="color: #0000ff;">></span>换行照常<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">4</span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span>
ログイン後にコピー

情形三:div高度不定,内容高度一定

复制代码
<span style="color: #008080;"> 1</span> <span style="color: #800000;">.v-auto </span>{
<span style="color: #008080;"> 2</span> <span style="color: #ff0000;">    position</span>:<span style="color: #0000ff;"> relative</span>;
<span style="color: #008080;"> 3</span> <span style="color: #ff0000;">    margin</span>:<span style="color: #0000ff;"> 0 auto</span>;
<span style="color: #008080;"> 4</span> <span style="color: #ff0000;">    width</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;"> 5</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px solid #ddd</span>;
<span style="color: #008080;"> 6</span> }
<span style="color: #008080;"> 7</span> <span style="color: #800000;">.v-auto .text </span>{
<span style="color: #008080;"> 8</span> <span style="color: #ff0000;">    position</span>:<span style="color: #0000ff;"> absolute</span>;
<span style="color: #008080;"> 9</span> <span style="color: #ff0000;">    top</span>:<span style="color: #0000ff;"> 50%</span>;
<span style="color: #008080;">10</span> <span style="color: #ff0000;">    margin-top</span>:<span style="color: #0000ff;"> -50px</span>;
<span style="color: #008080;">11</span> <span style="color: #ff0000;">    height</span>:<span style="color: #0000ff;"> 100px</span>;
<span style="color: #008080;">12</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px dashed #ddd</span>;
<span style="color: #008080;">13</span> }
ログイン後にコピー
复制代码
<span style="color: #008080;">1</span> <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="v-auto"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">2</span>     <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="text"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">3</span> <span style="color: #000000;">        我的高度是固定的,只有100px高,但是我的父及高度不定,我怎么垂直居中呢?
</span><span style="color: #008080;">4</span>     <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">5</span>     <span style="color: #0000ff;"><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">6</span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span>
ログイン後にコピー

情形四:div高度不定,内容高度不定

复制代码
<span style="color: #008080;"> 1</span> <span style="color: #800000;">.v-auto-out </span>{
<span style="color: #008080;"> 2</span> <span style="color: #ff0000;">    position</span>:<span style="color: #0000ff;"> relative</span>;
<span style="color: #008080;"> 3</span> <span style="color: #ff0000;">    margin</span>:<span style="color: #0000ff;"> 0 auto</span>;
<span style="color: #008080;"> 4</span> <span style="color: #ff0000;">    width</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;"> 5</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px solid #ddd</span>;
<span style="color: #008080;"> 6</span> }
<span style="color: #008080;"> 7</span> <span style="color: #800000;">.v-auto-out .auto-in </span>{
<span style="color: #008080;"> 8</span> <span style="color: #ff0000;">    position</span>:<span style="color: #0000ff;"> absolute</span>;
<span style="color: #008080;"> 9</span> <span style="color: #ff0000;">    top</span>:<span style="color: #0000ff;"> 50%</span>;
<span style="color: #008080;">10</span> <span style="color: #ff0000;">    border</span>:<span style="color: #0000ff;"> 1px dashed #ddd</span>;
<span style="color: #008080;">11</span>     <span style="color: #008000;">/*</span><span style="color: #008000;"> 这里有兼容性问题 </span><span style="color: #008000;">*/</span>
<span style="color: #008080;">12</span> <span style="color: #ff0000;">    -webkit-transform</span>:<span style="color: #0000ff;"> translateY(-50%)</span>;
<span style="color: #008080;">13</span> <span style="color: #ff0000;">    -ms-transform</span>:<span style="color: #0000ff;"> translateY(-50%)</span>;
<span style="color: #008080;">14</span> <span style="color: #ff0000;">    -o-transform</span>:<span style="color: #0000ff;"> translateY(-50%)</span>;
<span style="color: #008080;">15</span> <span style="color: #ff0000;">    transform</span>:<span style="color: #0000ff;"> translateY(-50%)</span>;
<span style="color: #008080;">16</span> }
ログイン後にコピー
复制代码
<span style="color: #008080;">1</span> <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="v-auto-out"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">2</span>     <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="auto-in"</span><span style="color: #0000ff;">></span>我的高度不定,我的父及高度也不定,这下要上下居中,该如何是好?我们一起来瞧瞧吧。<span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">3</span>     <span style="color: #0000ff;"><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">><span style="color: #800000;">br</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">4</span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span></span>
ログイン後にコピー

好了,知道这四种方式,我相信足以应对日常工作中的各种垂直居中问题。代码很简单,不再做多余阐述。总之一句话,CSS的各个属性样式,就好像人肢体的各个器官,了解了各个器官的功能,才能相互配合完成各种任务。相反,个体的能力是有限的。

作者博客:http://www.seejs.com

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

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

&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の場合

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

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

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

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

&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

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

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

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

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

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

See all articles