検索
ホームページウェブフロントエンドCSSチュートリアルCSSを使用して複数行および複数列のレイアウトを実装する方法

この記事では主に、複数行と複数列のレイアウトを実装するための CSS のサンプル コードを紹介します。必要な方は参考にしてください。

1. HTML:

<p class="box1">
    box1:实现两列多行布局
    <ul>
        <li>111</li>
        <li>222</li>
        <li>333</li>
    </ul>
</p>
CSS:

.box1 {
  width: 500px;
  background: #EEEEEE;
}
.box1 ul {
  clear: both;
  overflow: hidden;
}
.box1 ul li {
  width: 48%;
  height: 100px;
  margin-bottom: 10px;
  background: skyblue;
  float: left;
}
.box1 ul li:nth-child(even) {
  margin-left: 4%;
}

これは、ie9 以降のブラウザと互換性のある nth-child() を使用します。 真ん中のギャップは次のとおりです。 2 つの並んだ p の幅の合計、100% を引いた残りの幅

nth-child() について言及しているため、nth について説明する必要があります。 -of-type() も ie9 以降のブラウザとのみ互換性があります。これと nth-child の違いは次のとおりです。

<p class="box">
    <h1></h1>
    <h1></h1>
    <p></p>
    <p></p>
    <p></p>
</p>

2 番目の p タグの背景を赤にしたい場合は、p:nth-child(4) で実現できます。効果; そして p:nth-of-type(2) を実現できます。したがって、nth-of-type は、p タグの前にコンテンツがどれだけあるかに関係なく、p の 2 番目の要素のみを認識します。ただし、nth-child はその親の最初の要素を見つけることです。この場合、nth-of-type の利点が反映されます。

nth-child(),兼容ie9及以上的浏览器,中间的空隙就是两个并排p宽度之和,100%减去后剩下的宽度;

既然提到了nth-child(),那么就要说一下nth-of-type(),也是只兼容ie9及以上的浏览器。它与nth-child的区别是:

<p class="box2">
    box2:多行多列
    <ul>
        <li>
            <p class="com">
                111
            </p>
        </li>
        <li>
            <p class="com">
                222
            </p>
        </li>
        <li>
            <p class="com">
                333
            </p>
        </li>
        <li>
            <p class="com">
                444
            </p>
        </li>
    </ul>
</p>

如果要让第二个p标签背景为红色,那么,p:nth-child(4)这个能实现效果;而p:nth-of-type(2),就能实现。所以nth-of-type不管p标签前面有多少内容,都只认p的第二个元素。而nth-child却是找它父级的第几个元素。在这种情况下nth-of-type的优点就体现出来了。

2.多行多列

 

HTML:

.box2 {
  background: #EEEEEE;
  margin-top: 20px;
  width: 500px;
}
.box2 ul {
  overflow: hidden;
  margin-left: -10px;
  background: #EEEEEE;
}
.box2 ul li {
  width: 33.3333%;
  height: 50px;
  float: left;
  padding-left: 10px;
  box-sizing: border-box;
  margin-bottom: 10px;
}
.box2 ul li .com {
  height: inherit;
  background: skyblue;
}

CSS:

<p class="box3">
    <p class="header">圣杯布局(使用浮动)顶部</p>
    <p class="container">
        <p class="center">
            中间自适应宽度,注意这个center是在left的p前面
        </p>
        <p class="left">
            左部固定宽度
        </p>
        <p class="right">
            右部固定宽度
        </p>
    </p>
    <p class="footer">圣杯布局底部</p>
</p>

这里实现的原理是:子级使用padding-left(元素间的间隙)和box-sizing:border-box,父级使用margin-left负值,这个值和子级padding-left是一样的。li里面加p只是为了让效果明显,不然给li加上背景,由于box-sizing:border-box

2. 複数の行と複数の列

CSSを使用して複数行および複数列のレイアウトを実装する方法

HTML:

.box3 {
  background: #EEEEEE;
  color: white;
  margin-top: 20px;
}
.box3 .header {
  width: 100%;
  background: #008000;
  height: 50px;
}
.box3 .container {
  clear: both;
  overflow: hidden;
  padding: 0 130px 0 100px;
}
.box3 .container .left {
  width: 100px;
  float: left;
  background: #008B8B;
  height: 100px;
  margin-left: -100%;
  position: relative;
  left: -100px;
}
.box3 .container .center {
  background: #00BFFF;
  height: 100px;
  float: left;
  width: 100%;
}
.box3 .container .right {
  width: 130px;
  float: left;
  background: #FA8072;
  height: 100px;
  margin-left: -130px;
  position: relative;
  right: -130px;
}
.box3 .footer {
  width: 100%;
  background: #222222;
  height: 30px;
}

CSS:

<p class="box4">
    <p class="header">圣杯布局2(使用定位)顶部</p>
    <p class="container">
        <p class="left">
            左部固定宽度
        </p>
        <p class="center">
            中间自适应宽度,无需考虑顺序
        </p>
        <p class="right">
            右部固定宽度
        </p>
    </p>
    <p class="footer">圣杯布局2底部</p>
</p>

ここで実装される原則は次のとおりです: 子は、padding-left (要素間のギャップ) と box-sizing を使用します。 border-box の場合、親は負の margin-left 値を使用します。これは子の padding-left と同じです。 li に p を追加するのは、効果を明確にするためだけです。それ以外の場合、li に背景を追加すると、box-sizing: border-box の存在により、li は何の効果も持たないように見えます。すべては一緒につながっています。

2列、4列、5列などを実装したい場合は、liの幅を変更するだけです(均等に分配する)。

この方法はIE8以降のブラウザと互換性があります。IE7では、各liの幅は3列など、通常よりも約2%小さくなりますが、IE7では各liの幅が33.333%になります。基本的に正常に表示するには 31.333% に設定する必要があります。 。 。この具体的な理由については、後で説明します

rreee

聖杯のレイアウトで最も重要なのは、中央に並べられた 3 つの P です。上下の 2 つの p は数字を埋めるために使用しました。 。 。

実装プロセスは大まかに次のとおりです: 1. これら 3 つの p の HTML の配置順序は特別で、中央に表示される p が HTML の最初、次に左、最後に右になります。

2. コンテナーにパディングが設定されていない前は、左の p と右の p にマージンと相対位置が設定されておらず、3 つの ps はすべて float: left です。このとき、ページ上に表示されるのは、中央が排他行を占め、次に左のp、そして右のp

3となり、左のpはmargin-left: -100%となります。このようにして、左は 2 列目から 1 列目の左端にジャンプして中央の p をカバーできます。

4. 右側の p は margin-left: -130px を設定します。この値は独自の幅のサイズです。次に、右の p も 1 列目の右端にジャンプして、中央の p をカバーします。

5. このとき、コンテナはパディングのサイズを2つのpの左右の幅に設定し、2つのpの左右の幅をそれぞれ移動させます。その後、正常に表示されます。

このレイアウト方法はie7と互換性がありますが、ie6ではテストされていません。 。 。

4. 模倣聖杯レイアウト

HTML:

RREEE

CSS:

RREE

このメソッドの背後にある考え方は次のとおりです。左側と右側にパディングを設定し、中央の p にパディングを設定しても、同じ効果を得ることができます。真ん中の3つのPの並び順は気にせず、私はいつもこの方法を使っています。

ie7とも互換性がありますが、ie6はテストされていません

5. ダブルフライングウィングレイアウト

HTML:

.box4 {
  background: #EEEEEE;
  color: white;
  margin-top: 20px;
}
.box4 .header {
  width: 100%;
  background: #008000;
  height: 50px;
}
.box4 .container {
  clear: both;
  overflow: hidden;
  padding: 0 130px 0 100px;
  position: relative;
}
.box4 .container .left {
  width: 100px;
  background: #008B8B;
  height: 100px;
  position: absolute;
  top: 0px;
  left: 0px;
}
.box4 .container .center {
  background: #00BFFF;
  height: 100px;
  width: 100%;
}
.box4 .container .right {
  width: 130px;
  background: #FA8072;
  height: 100px;
  position: absolute;
  top: 0px;
  right: 0px;
}
.box4 .footer {
  width: 100%;
  background: #222222;
  height: 30px;
}

CSS:

🎜りー🎜🎜

双飛翼レイアウトと聖杯レイアウトは似ていますが、最大の違いは、双飛翼レイアウトでは、中央の中央の p の中に p があり、レイアウトの目的は主にマージンによって達成されます。この p の値。そうすれば、2 つの p の左右の相対的な位置を設定する必要はありません。その他は基本的に同じです

ie7と互換性がありますが、ie6はテストされていません。

CSS3 flex、inline-block など、複数行および複数列のレイアウト方法も多数あります。 。アイデアさえあれば、どんなに難しいレイアウトでも実現できます。

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

関連する推奨事項:

css3 での行列の使用方法について

CSS を使用してマウスを上に動かしてアイコンの回転効果を実現する方法

以上がCSSを使用して複数行および複数列のレイアウトを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
2つの画像とAPI:製品のリクロッキングに必要なすべて2つの画像とAPI:製品のリクロッキングに必要なすべてApr 15, 2025 am 11:27 AM

最近、製品画像の色を動的に更新するソリューションを見つけました。したがって、製品の1つだけで、私たちはそれをさまざまな方法で色付けすることができます

毎週のプラットフォームニュース:サードパーティのコード、パッシブ混合コンテンツ、最も遅い接続のある国の影響毎週のプラットフォームニュース:サードパーティのコード、パッシブ混合コンテンツ、最も遅い接続のある国の影響Apr 15, 2025 am 11:19 AM

今週のラウンドアップでは、灯台はサードパーティのスクリプトに光を当て、安全なリソースが安全なサイトでブロックされ、多くの国の接続速度がブロックされます

独自の非JavaScriptベースの分析をホストするためのオプション独自の非JavaScriptベースの分析をホストするためのオプションApr 15, 2025 am 11:09 AM

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています

それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理するそれはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理するApr 15, 2025 am 11:01 AM

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です

JavaScriptのsuper()とは何ですか?JavaScriptのsuper()とは何ですか?Apr 15, 2025 am 10:59 AM

子のクラスでsuper()?を呼び出すJavaScriptを見たときに何が起こっているのか、Super()を使用して親のコンストラクターとSuperを呼び出します。そのアクセス

さまざまな種類のネイティブJavaScriptポップアップを比較しますさまざまな種類のネイティブJavaScriptポップアップを比較しますApr 15, 2025 am 10:48 AM

JavaScriptには、ユーザーインタラクション用の特別なUIを表示するさまざまな内蔵ポップアップAPIがあります。有名:

アクセス可能なWebサイトが構築が難しいのはなぜですか?アクセス可能なWebサイトが構築が難しいのはなぜですか?Apr 15, 2025 am 10:45 AM

先日、私は多くの企業がアクセス可能なウェブサイトを作るのに苦労している理由について、フロントエンドの人々とおしゃべりをしていました。アクセス可能なWebサイトがとても難しいのはなぜですか

「隠された」属性は目に見えて弱いです「隠された」属性は目に見えて弱いですApr 15, 2025 am 10:43 AM

あなたがそれがすべきだと思うことを正確に行うHTML属性があります:

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。