• 使用display:table使两栏布局高度相等


    两栏布局大家应该经常用了,但是遇到坑爹的要两栏的高度对齐的话要怎么办呢?

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     6 <title>Examples</title>
     7 <style type="text/css">
     8     *{
     9         margin:0;
    10         padding:0;
    11         border: 0 none;
    12     }
    13     #main{
    14         width:100%;
    15     }
    16     div.sideBar{
    17         width:70%;
    18         height:100%;
    19         background:#CD2020;
    20         float:left;
    21     }
    22     div.content{
    23         width:28%;
    24         background:#2054CD;
    25         height:100%;
    26         float:right;
    27     }
    28     div.clear{
    29         clear: both;
    30         width:100%;
    31         height:1px;
    32     }
    33 </style>
    34 <link href="" rel="stylesheet">
    35 </head>
    36 <body>
    37     <div id="main">
    38         <div class="sideBar">
    39             <p>这是测试</p>
    40             <p>这是测试</p>
    41             <p>这是测试</p>
    42             <p>这是测试</p>
    43             <p>这是测试</p>
    44             <p>这是测试</p>
    45             <p>这是测试</p>
    46             <p>这是测试</p>
    47             <p>这是测试</p>
    48             <p>这是测试</p>
    49             <p>这是测试</p>
    50             <p>这是测试</p>
    51         </div>
    52         <div class="content">
    53             <p>这是测试</p>
    54             <p>这是测试</p>
    55             <p>这是测试</p>
    56             <p>这是测试</p>
    57         </div>
    58         <div class="clear"></div>
    59     </div>
    60 </body>
    61 </html>

    就像这样的,左边的高度和右边的高度明显不一样,但是我想要给右边的一点颜色,然后让它看起来"cool"一点怎么办呢?

    以前想的是用JS获取左边元素高度然后设置右边元素高度为相同值,现在有display:table这个东西就很好解决了。

    还是那个基本的思想,行为和样式要分离的思想。所以我们用display:block解决它吧。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="utf-8">
     5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     6 <title>Examples</title>
     7 <style type="text/css">
     8     *{
     9         margin:0;
    10         padding:0;
    11         border: 0 none;
    12     }
    13     #main{
    14         width:100%;
    15         display: table;
    16     }
    17     div.sideBar{
    18         width:70%;
    19         height:100%;
    20         background:#CD2020;
    21         display: table-cell;
    22     }
    23     div.content{
    24         width:28%;
    25         background:#2054CD;
    26         height:100%;
    27         display: table-cell;
    28     }
    29     div.clear{
    30         clear: both;
    31         width:100%;
    32         height:1px;
    33     }
    34 </style>
    35 <link href="" rel="stylesheet">
    36 </head>
    37 <body>
    38     <div id="main">
    39         <div class="sideBar">
    40             <p>这是测试</p>
    41             <p>这是测试</p>
    42             <p>这是测试</p>
    43             <p>这是测试</p>
    44             <p>这是测试</p>
    45             <p>这是测试</p>
    46             <p>这是测试</p>
    47             <p>这是测试</p>
    48             <p>这是测试</p>
    49             <p>这是测试</p>
    50             <p>这是测试</p>
    51             <p>这是测试</p>
    52         </div>
    53         <div class="content">
    54             <p>这是测试</p>
    55             <p>这是测试</p>
    56             <p>这是测试</p>
    57             <p>这是测试</p>
    58         </div>
    60     </div>
    61 </body>
    62 </html>

    是的,我们连float都不用加就可以轻松实现等高度的两栏布局了。虽然有点倒退回表格布局的嫌疑 ——!! 。

    但是问题也来了,IE8+才支持display:table这个属性--!!

    不过所幸现在IE6的市场份额越来越少了,IE8+的市场份额也越来越多了,或许这种方式的布局后面会比较流行,原因就是简单粗暴。

  • 相关阅读:
    使用jquey的css()方法改变样式,
    js 小总结
    .net mvc项目 ajax
    推荐一个优秀的前端框架——Bootstrap
    关于页面优化的方法收集(不断更新)
    软件开发中没有所谓正确的方法(转)
    PHP框架CI(codeigniter)的使用笔记
    前端知识结构图(转)
    PHP生成缩略图的一个方法类(转)
    apache设置映射文件夹的配置方法
  • 原文地址:https://www.cnblogs.com/manfredHu/p/4609985.html
Copyright © 2020-2023  润新知