博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
布局-两列布局(一列定宽,一列自适应)
阅读量:5047 次
发布时间:2019-06-12

本文共 3124 字,大约阅读时间需要 10 分钟。

结构:

1 
2
3

left

4
5
6

right

7

right

8
9

样式:

1.解决方案一:float +margin

1 .parent { 2         background-color: grey; 3         width: 300px; 4         height: 200px; 5  6     } 7     .left { 8         float: left;/*元素脱离文档流,但是内容在文档流中*/ 9         width: 100px;10         background-color: skyblue;11 12     }13     .right {14         margin-left: 110px;15         background-color: greenyellow;16     }17     /*优点:易理解18     缺点:(1)兼容性有点问题,因为left有浮动,right没有浮动,所以right会有3px的bug,即两个right文字会想右缩3px,可在left上加margin-right:-100px;来解决,这类似于hack             (2)也因为left有浮动,right没有,所以在第一个

right

上清除浮动,right就会掉下去,即在left水平线下

        .right p:first-child::before{

        clear: both;
        content: " ";
        display: block;
        height: 0;
        overflow: hidden;
        visibility: hidden;

}*/

2.解决方案二:float+ margin + fix(上面方法的改进)

结构:

left

right

right

样式:

1 .parent { 2         background-color: grey; 3         width: 300px; 4         height: 200px; 5  6     } 7     .left { 8         float: left;/*元素脱离文档流,但是内容在文档流中*/ 9         width: 100px;10         background-color: skyblue;11         position: relative;/*提高left层级*/12     }13     .right-fix {14         float: right;15         width: 100%;16         margin-left: -100px;17     }18     .right {19         margin-left: 110px;20         background-color: greenyellow;21         }22     p {23         margin: 0;24     }

3.解决方案三:float+ overflow

结构是最上面的结构

样式:

.parent {        background-color: grey;        width: 300px;        height: 200px;    }    .left {        float: left;/*元素脱离文档流,但是内容在文档流中*/        width: 100px;        background-color: skyblue;        margin-right: 10px;    }    .right {        overflow: hidden;/*触发BFC模式(Block Formating context块级的格式化文本),产生的效果是:BFC模式下的容器里面的内容与外界隔离,外面的内容如:浮动元素是不会影响BFC里的内容的*/        background-color: greenyellow;    }    /*IE6不支持*/

4.解决方案四:table+table-cell (两列自然等高)

结构:最上面的结构

样式:

.parent {        background-color: grey;        width: 300px;        height: 200px;        display: table;        table-layout: fixed;/*加速table的渲染,实现布局优先*/    }    .left {        display: table-cell;        width: 100px;        background-color: skyblue;        border-right: 10px solid transparent;        background-clip: padding-box;/*设置列之间的间距*/    }    .right {        display: table-cell;        background-color: greenyellow;    }

5.解决方案五:flex+ flex:1  (两列自然等高)

结构:最上面的结构

样式:

.parent {        background-color: grey;        width: 300px;        height: 200px;        display: flex;    }    .left {        width: 100px;        background-color: skyblue;        margin-right: 10px;    }    .right {        flex: 1;/*.right适应到剩下的所有部分*/        background-color: greenyellow;    } /*flex是css3新增的内容,兼容性低。 flex根据内容去自适应,所以性能是一个问题,通常用flex作小范围的布局,而不是大范围的布局,即right中的内容不要太复杂,太多,太多会影响flex的性能*/

 

转载于:https://www.cnblogs.com/Janejxt/p/5879237.html

你可能感兴趣的文章
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
oracle 数据库 date + 1 转载
查看>>
下载北斗广播星历
查看>>
Remote Desktop Connection没法全屏解决方案
查看>>
关于欧拉函数
查看>>
题目 子网掩码
查看>>
add, subtract, multiply, divide
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Anaconda入门安装教程
查看>>
网络编程
查看>>
Linq学习(三)-基本查询
查看>>
input type="file"
查看>>
lnamp完整版[linux+apache2.4+php5.6.6+mysql5.6]
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>