zoukankan      html  css  js  c++  java
  • 三栏布局(一)-------左右宽高固定,中间自适应

    常见的页面布局有

    1、左右宽度固定,中间自适应;

    2、上下高度固定,中间自适应;

    3、左宽度固定,右自适应;

    4、上高度固定,下自适应,

    下边是我看过网上的视频后写出来的三栏布局-左右宽高固定,中间自适应

    有5种布局方式:float;    position;   flex;    table;   grid;

      1 <!DOCTYPE html><!-- html 5 -->
      2 <html>
      3 <head>
      4     <title>左中右三栏布局</title>
      5     <style type="text/css">
      6         html * {
      7             padding: 0;
      8             margin: 0;
      9         }
     10         .layout{
     11             width: 100%;
     12             margin-top: 15px;
     13         }
     14         .layout .three_columns > div{
     15             min-height: 150px;
     16             text-align: center;
     17         }
     18         .layout .three_columns > div.center > p{
     19             margin-top: 15px;
     20         }
     21     </style>
     22 </head>
     23 <body>
     24     <!-- 第一种三栏布局:float方式 -->
     25     <section class="layout float">
     26         <style type="text/css">
     27             .layout.float .left{
     28                 float: left;
     29                 width: 300px;
     30                 background: #90D9F7;
     31             }
     32             .layout.float .right{
     33                 float: right;
     34                 width: 300px;
     35                 background: #F5DE25;
     36             }
     37             .layout.float .center{
     38                 background: pink;
     39             }
     40         </style>
     41         <article class="three_columns">
     42             <div class="left"></div>
     43             <div class="right"></div>
     44             <div class="center">
     45                 <h1>三栏布局float布局</h1>
     46                 <p>优点:兼容性比较好
     47                    缺点:脱离文档流,清除浮动,处理与周边元素布局
     48                 </p>
     49                 <p>去掉高度后,内容会超出容器</p>
     50             </div>
     51         </article>
     52     </section>
     53 
     54     <!-- 第二种三栏布局:position方式 -->
     55     <section class="layout position">
     56         <style type="text/css">
     57             .layout.position .left{
     58                 position: absolute;
     59                 left: 0;
     60                 width: 300px;
     61                 background: #90D9F7;
     62             }
     63             .layout.position .center{
     64                 position: absolute;
     65                 left: 300px;
     66                 right: 300px;
     67                 background: pink;
     68             }
     69             .layout.position .right{
     70                 position: absolute;
     71                 right: 0;
     72                 width: 300px;
     73                 background: #F5DE25;
     74             }
     75         </style>
     76         <srticle class="three_columns">
     77             <div class="left"></div>
     78             <div class="center">
     79                 <h1>三栏布局position布局</h1>
     80                 <p>优点:快速布局
     81                    缺点:脱离文档流,可使用性差
     82                 </p>
     83                 <p>去掉高度后,内容会超出容器</p>
     84             </div>
     85             <div class="right"></div>
     86         </srticle>
     87     </section>
     88 
     89     <!-- 第三种三栏布局:flex方式 -->
     90     <section class="layout flexbox">
     91         <style type="text/css">
     92             .layout.flexbox{
     93                 margin-top: 180px;
     94             }
     95             .layout.flexbox .three_columns{
     96                 display: flex;
     97             }
     98             .layout.flexbox .left{
     99                 width:300px;
    100                 background: #90D9F7;
    101             }
    102             .layout.flexbox .center{
    103                 flex: 1;
    104                 background: pink;
    105             }
    106             .layout.flexbox .right{
    107                 width: 300px;
    108                 background: #F5DE25;
    109             }
    110         </style>
    111         <article class="three_columns">
    112             <div class="left"></div>
    113             <div class="center">
    114                 <h1>三栏布局flex布局</h1>
    115                 <p>解决上两种方案的缺陷,最好用的布局
    116                 </p>
    117                 <p>去掉高度后,容器会被内容撑开,还可以使用</p>
    118             </div>
    119             <div class="right"></div>
    120         </article>
    121     </section>
    122 
    123     <!-- 第四种三栏布局:table -->
    124     <section class="layout table">
    125         <style type="text/css">
    126             .layout.table .three_columns{
    127                 display: table;
    128                 width: 100%;
    129                 height: 150px;
    130             }
    131             .layout.table .three_columns>div{
    132                 display: table-cell;
    133             }
    134             .layout.table .left{
    135                 width: 300px;
    136                 background: #90D9F7;
    137             }
    138             .layout.table .center{
    139                 background: pink;
    140             }
    141             .layout.table .right{
    142                 width: 300px;
    143                 background: #F5DE25;
    144             }
    145         </style>
    146         <article class="three_columns">
    147             <div class="left"></div>
    148             <div class="center">
    149                 <h1>三栏布局table布局</h1>
    150                 <p>
    151                     优点:兼容性是最好的
    152                     缺点:不好控制、当其中一个高度变,其他的高度也会变
    153                 </p>
    154                 <p>去掉高度后,容器会被内容撑开,还可以使用</p>
    155             </div>
    156             <div class="right"></div>
    157         </article>
    158     </section>
    159 
    160     <!-- 第五种三栏布局:grid -->
    161     <section class="layout grid">
    162         <style type="text/css">
    163             .layout.grid .three_columns{
    164                 width: 100%;
    165                 display: grid;
    166                 grid-template-rows: 150px;
    167                 grid-template-columns: 300px auto 300px;
    168             }
    169             .layout.grid .left{
    170                 background: #90D9F7; 
    171             }
    172             .layout.grid .center{
    173                 background: pink;
    174             }
    175             .layout.grid .right{
    176                 background: #F5DE25;
    177             }
    178         </style>
    179         <article class="three_columns">
    180             <div class="left"></div>
    181             <div class="center">
    182                 <h1>三栏布局grid布局</h1>
    183                 <p>
    184                     优点:兼容性是最好的
    185                     缺点:不好控制、当其中一个高度变,其他的高度也会变
    186                 </p>
    187                 <p>去掉高度后,内容会超出容器</p>
    188             </div>
    189             <div class="right"></div>
    190         </article>
    191     </section>
    192 </body>
    193 </html>

    下图是我的代码的运行结果:

    我在上边总结了一下每种布局的优缺点,以及去掉高度后哪种布局还可以使用,如果各位有觉得不对的地方,欢迎大家帮我纠正!

     

     -THE END-

  • 相关阅读:
    MongoDB的C#官方驱动InvalidOperationException异常的解决办法
    MongoDB的TruncationException异常解决方法
    分享Db4o的便捷封装类源码
    EOL conversion in notepad ++
    Creating and deleting branches within your repository
    GitHub Desktop Contributing to projects Working with your remote repository on GitHub or GitHub Enterprise
    亚洲第二!上海交通大学密码学和计算机安全学科方向位CSRankings2019年全球第39和亚洲第2
    python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
    详解 Cookie,Session,Token
    一文彻底搞懂Cookie、Session、Token到底是什么
  • 原文地址:https://www.cnblogs.com/menggirl23/p/10045905.html
Copyright © 2011-2022 走看看