三栏,两栏布局的那点little

2016-03-20  本文已影响115人  燃烧吧_小宇宙

1、 负边距在让元素产生偏移时和position: relative有什么区别?


2、使用负 margin 形成三栏布局有什么条件?

ct:after{
content: '';
display: block;
claer: both;
}


3、圣杯布局的原理是怎样的? 简述实现圣杯布局的步骤。

.ct{               /*设置padding值,预留出两边栏的空间,左右分别对应两侧边栏的宽度*/
    padding: 0 100px;  
}
.ct:after{      /*为父容器ct清除浮动*/
    content: '';
    display: block;         
    clear: both;
}
/*三个栏设置左浮动*/
.main{               /*设置宽度100%形成自适应页面*/
    width:100%;
    min-height: 200px;
    background-color: red;
    float: left;
}

.left{               
    width: 100px;
    min-height: 100px;
    background-color: yellow;
    float: left;
    margin-left:-100%;     /*通过负边距使left的位置在main的左上角*/
    position: relative;          /*通过相对定位,值为自身宽度,达到紧贴着main*/
    left: -100px;
}
.right{
    width: 100px;
    min-height: 100px;
    background-color: blue;
    float: left;
    margin-left: -200px;      /*通过负边距使right的位置在main右上角*/
    position: relative;          /*通过相对定位,值为自身宽度,达到紧贴着main*/
    left: 200px;
}

<body>
    <div class="header">header</div>
    <div class="ct">
        <div class="main">main</div>
        <div class="left">left</div>
        <div class="right">right</div>
    </div>
    <div class="footer">footer</div>
</body>

4、双飞翼布局的原理? 实现步骤?

.wrap{
    margin:0 200px;          /*设置margin给预留出空间,左右分别是左右侧边栏的宽度*/
    background-color: green;
    min-height: 300px;
}
.ct:after{          /*给ct元素周围清除浮动*/
    content: "";
    display: block;
    clear: both;
}
/*三栏元素均需设置左浮动*/
.main{
    width: 100%;       /*宽度100%以适应页面*/
    float: left;
}
.left{
    width: 200px;
    min-height: 300px;
    background-color: red;
    float: left;
    margin-left: -100%;       /*负margin定位到左上角,不需要使用相对定位*/
}
.right{
    min-height: 300px;
    width: 200px;
    background-color: blue;
    float: left;
    margin-left: -200px;        /*负margin定位到右上角,不需要使用相对定位*/
}
<body>
    <div class="header">header</div>
    <div class="ct">
        <div class="main">
            <div class="wrap">中间部分</div>
        </div>
        <div class="left">left</div>
        <div class="right">right</div>
    </div>
    <div class="footer">footer</div>
</body>

代码

上一篇下一篇

猜你喜欢

热点阅读