CSSのコメントにある5つの方法、3列レイアウト:エントリに対処するためのフロントエンド開発

タイトル:高さが知られていると仮定し、それぞれが中間適応を左の列、右列幅300ピクセル、3列のレイアウトを、書いてください。

3列レイアウトスキーム5種類

これは古典的な顔の質問で、次の5つの方法のCSSレイアウトを記録します。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>三栏布局</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
  </style>
</head>
<body>
<!--5种解决方案-->
</body>

1.フローティングソリューション

  <!-- 1\. 浮动解决方案 -->
  <scetion class="layout float">
    <!-- 样式 -->
    <style media="screen">
      .layout.float article div {
        min-height: 80px;
      }

      .layout.float .left {
        width: 300px;
        background-color: red;
        float: left;
      }

      .layout.float .center {
        background-color: yellow;
      }

      .layout.float .right {
        width: 300px;
        background-color: blue;
        float: right;
      }
    </style>

    <!-- 结构 -->
    <!-- 注意:结构中 右浮动的div一定要写在 center 的前面,否则无效. -->
    <h2>三栏布局</h2>
    <article class="left-ritgh-center">
      <div class="left"></div>
      <div class="right"></div>
      <div class="center">
        <h2>浮动解决方案</h2>
        1.这是三栏布局的浮动解决方案;
        2.这是三栏布局的浮动解决方案;
        3.这是三栏布局的浮动解决方案;
        4.这是三栏布局的浮动解决方案;
        5.这是三栏布局的浮动解决方案;
        6.这是三栏布局的浮动解决方案;
      </div>
    </article>
  </scetion>

2.絶対測位解

  <!-- 2\. 绝对定位解决方案 -->
  <section class="layout absolute">
    <!-- 样式 -->
    <style>
      .layout.absolute article div {
        min-height: 80px;
        position: absolute;
      }

      .layout.absolute .left {
        width: 300px;
        background-color: red;
        left: 0;
      }

      .layout.absolute .center {
        background-color: yellow;
        left: 300px;
        right: 300px;
      }

      .layout.absolute .right {
        width: 300px;
        background-color: blue;
        right: 0;
      }
    </style>

    <!-- 结构 -->
    <h1>三栏布局</h1>
    <article class="left-center-right">
      <div class="left"></div>
      <div class="center">
        <h2>绝对定位解决方案</h2>
        1.这是三栏布局的绝对定位解决方案;
        2.这是三栏布局的绝对定位解决方案;
        3.这是三栏布局的绝对定位解决方案;
        4.这是三栏布局的绝对定位解决方案;
        5.这是三栏布局的绝对定位解决方案;
        6.这是三栏布局的绝对定位解决方案;
      </div>
      <div class="right"></div>
    </article>
  </section>

3.フレキシボックスソリューション

  <!-- 3\. flexbox解决方案 -->
  <section class="layout flexbox">
    <!-- 样式 -->
    <style>
      /* flexbox解决方案在浏览器中显示时被上面的绝对定位解决方案挡住了,设置一个margin-top */
      .layout.flexbox {
        margin-top: 110px;
      }

      /* 设置最低高度 */
      .layout.flexbox article div {
        min-height: 80px;
      }

      .layout.flexbox article {
        display: flex;
      }

      .layout.flexbox .left {
        width: 300px;
        background-color: red;
      }

      .layout.flexbox .center {
        /*center部分增长 使整行填充*/
        flex: 1;
        background-color: yellow;
      }

      .layout.flexbox .right {
        width: 300px;
        background-color: blue;
      }
    </style>

    <!-- 结构 -->
    <h1>三栏布局</h1>
    <article class="left-center-right">
      <div class="left"></div>
      <div class="center">
        <h2>flexbox解决方案</h2>
        1.这是三栏布局的flexbox解决方案;
        2.这是三栏布局的flexbox解决方案;
        3.这是三栏布局的flexbox解决方案;
        4.这是三栏布局的flexbox解决方案;
        5.这是三栏布局的flexbox解决方案;
        6.这是三栏布局的flexbox解决方案;
      </div>
      <div class="right"></div>
    </article>
  </section>

4.テーブルレイアウト・ソリューション

  <!-- 4\. 表格布局解决方案 -->
  <section class="layout table">
    <!-- 样式 -->
    <style>
      .layout.table .left-center-right {
        width: 100%;
        min-height: 80px;
        display: table;
      }

      .layout.table .left-center-right>div {
        display: table-cell;
      }

      .layout.table .left {
        width: 300px;
        background-color: red;
      }

      .layout.table .center {
        background-color: yellow;
      }

      .layout.table .right {
        width: 300px;
        background-color: blue;
      }
    </style>

    <!-- 结构 -->
    <h1>三栏布局</h1>
    <article class="left-center-right">
      <div class="left"></div>
      <div class="center">
        <h2>表格布局解决方案</h2>
        1.这是三栏布局的表格布局解决方案;
        2.这是三栏布局的表格布局解决方案;
        3.这是三栏布局的表格布局解决方案;
        4.这是三栏布局的表格布局解决方案;
        5.这是三栏布局的表格布局解决方案;
        6.这是三栏布局的表格布局解决方案;
      </div>
      <div class="right"></div>
    </article>
  </section>

グリッドレイアウト・ソリューション

  <!-- 5\. 网格布局解决方案 -->
  <section class="layout grid">
    <!-- 样式 -->
    <style>
      .layout.grid .left-center-right {
        width: 100%;
        display: grid;
        /* 网格行高 */
        grid-template-rows: 100px;
        /* 网格列宽 */
        grid-template-columns: 300px auto 300px;
      }

      .layout.grid .left {
        background-color: red;
      }

      .layout.grid .center {
        background-color: yellow;
      }

      .layout.grid .right {
        background-color: blue;
      }
    </style>

    <!-- 结构 -->
    <h1>三栏布局</h1>
    <article class="left-center-right">
      <div class="left"></div>
      <div class="center">
        <h2>网格布局解决方案</h2>
        1.这是三栏布局的网格布局解决方案;
        2.这是三栏布局的网格布局解决方案;
        3.这是三栏布局的网格布局解决方案;
        4.这是三栏布局的网格布局解决方案;
        5.这是三栏布局的网格布局解决方案;
        6.这是三栏布局的网格布局解决方案;
      </div>
      <div class="right"></div>
    </article>
  </section>

ブラウザのウィンドウを狭く、あなたは変化を見ることができます。上記のコードの高さはかなり一定の高さの幅を設定するよりも、最小幅設けられているので、非常に固定参照されています。

高さが固定されていない場合で異なる効果を示す分析プログラムのレイアウト

  • フローティングソリューション:中央部が高いコンテンツを保持するために、両側に展開されます、箱の側面の大きさは影響を受けません。
  • 絶対測位解:サポートの中央部が両側に展開されていない、コンテンツ高くなり、ボックスサイズの両側には影響しません。
  • フレキシボックス溶液:コンテンツの中央支持部が高く、箱の中央の高さの両側は常に一貫しています。

またはALIGN-項目は、中心:開始、またはALIGN-アイテム:ALIGN-商品:フレックスレイアウト、ALIGN-itemsプロパティのデフォルト値を延伸するために設定されている場合、これは、あるエンド、または他の値を、それが自動的に保管しないであろう高いです。

  • テーブルレイアウト溶液:中心部は、コンテンツ高い滞在、及びボックスの両側になり、中心の高さは常に一貫しています。
  • グリッド・レイアウト・ソリューション:直接テキストの中央部を超えボックスのサイズに変化はありません。

誰もがあなたが乱雑フルスタックエンジニアによるフロントエンドエンジニア、さらには道になるため大量のリソースを共有するために、簡単で効率的かつ無料の学習に役立つために。私たちは、フロントエンドのフルスタック学習バックルqunをお勧めするためにここにいる:784783012は、交流と共通の進捗状況を学習し、×××議論に流入へようこそ。
学習の本当の始まりは、必然的に開始する場所がわからないだろう場合は、非効率につながる学習を継続する自信に影響を与えます。
しかし、最も重要なことは、私がキーテクノロジーを習得する必要があるかわからないで、頻繁に、ピット学習を強化多くの時間を無駄に終わる、それが効果的か、必要な資源です。

おすすめ

転載: blog.51cto.com/14284898/2404833