Web前端之路让前端飞

圣杯布局&双飞翼布局

2017-08-09  本文已影响41人  baiying
//HTML代码
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <link rel="stylesheet" href="style.css">
    <title>圣杯布局</title>
</head>
<body>
<div id="head">header</div>
<div id = 'content'>
    <div id = 'middle'>我在中间,但要首先渲染</div>
    <div id = 'left'>我在左边</div>
    <div id = 'right'>我在右边</div>
</div>
<div id="foot">footer</div>
</body>
</html>
//css代码
#content {
    padding: 0 100px 0 100px;//左右留出空白
    overflow: hidden;//闭合浮动
    border:2px solid black;}

#middle {
    width: 100%;
    background-color: pink;
    float: left;
}

#left {
    width: 100px;
    background-color: red;
    float: left;
    margin-left: -100%;//移到上一行开头
    position: relative;//相对定位
    left: -100px;//左移到父级设置的padding值所留出的空白区
}

#right {
    background-color: blue;
    float: left;
    width: 100px;
    margin-left: -100px;//移到上一行末尾
    position: relative; //相对定位
    right:-100px;  //右移到父级设置的padding值所留出的空白区
}

#head{
    background-color: aqua;
}

#foot{
    background-color: blueviolet;
    clear: both; //防止因为浮动导致上移,但其实我试了一下也可不用,因为含有浮动元素的父级元素设置了`overflow:hidden`,触发bfc,闭合了浮动
}

效果如下:

圣杯布局

和她是同胞兄弟的还有一个双飞翼布局,他们所实现的效果是相同的,但是在处理中间区域被遮挡的问题上做法稍有不同

个人觉得双飞翼布局更简单一些,不会涉及到相对定位

上一篇 下一篇

猜你喜欢

热点阅读