【css】css2实现两列三列布局的方法

前言

对于 flex 弹性布局相信大家都有所了解,它是 css3 中的属性,然而它具有一定的兼容性问题。楼主前几天面试时遇到了面试官需要设计一个两列布局,我当然就说父元素 flex 吧哩吧啦,然而需要用基本的 css2 中的属性布局,傻掉了。。。

要求:两列布局,左边定宽,右边自适应

html 布局如下

<div id="father">
    <div id="left">我是定宽左</div>
    <div id="right">我是自适应右</div>
</div>

  

1. flex 布局 

#father{
            display: flex;
        }
        #left{
            background: red;
            height: 200px;
            width: 200px;
        }
        #right{
            background: green;
            height: 200px;
            flex:1;
        }

2. css2 普通布局

 <style>
        #left{
            background: red;
            height: 200px;
            width: 200px;
            float:left;
        }
        #right{
            background: green;
            height: 200px;
            margin-left:200px;
        }
    </style>

 注意:

  多列布局时需要将浮动元素的 html 代码写在自适应元素的前面。如以下为三列布局的代码:

  

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        #div1{
            width: 200px;
            height: 200px;
            background: red;
            float:left;
        }
        #div2{
            margin-left: 200px;
            margin-right:  200px;
            height: 200px;
            background: green;
        }
        #div3{
            width: 200px;
            height: 200px;
            background: red;
            float:right;
        }
    </style>
    
</head>
<body>
<div id="box">
    <div id="div1">我是左定宽</div>
    <div id="div3">我是中间自适应</div>
    <div id="div2">我是右定宽</div>
</div>
</body>
</html>

效果如图:

 

posted @ 2017-10-16 16:10  卡迪斯上小学  阅读(796)  评论(0编辑  收藏  举报