圣杯布局和双飞翼布局

三栏布局

圣杯布局和双飞翼布局是经典的三栏布局方案
在这里插入图片描述


圣杯布局

圣杯布局通过 margin负值相对定位 实现的思路:
(1)在一个大的盒子设置 padding-leftpadding-right 值(这三个盒子是兄弟关系)。
(2)两个盒子填充这个大盒子的左右两边空白处。
(3)左边那个盒子通过设置 margin-left: -100% 移动到大盒子内部左边,再通过相对定位向左移动一个小盒子的宽度。
(4)右边的那个小盒子设置 margin-right: - 小盒子宽度 ,使小盒子填充大盒子右边的空白区域。

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>实现圣杯布局</title>
        <style>
            body {
                min-width: 500px;
            }

            div {
                text-align: center;
            }

            #header {
                background-color: #f1f1f1;
            }

            #content {
               padding-left: 300px;
                padding-right: 200px;
            }
            
            #content #center {
                background-color: #ddd;
                width: 100%;
            }

            #content #left {
                position: relative;
                background-color: orange;
                width: 300px;
                margin-left: -100%;
                right: 300px;
            }

            #content #right {
                background-color: green;
                width: 200px;
                margin-right: -200px;
            }

            #content .column {
                float: left;
            }
            
            #footer {
                background-color: #f1f1f1;
                clear: both;
            }
        </style>
    </head>
    </head>
    <body>
        <h1 style="width: 100%; text-align: center;">实现圣杯布局<h1>
        <div id="header">Header</div>
        <div id="content">
            <div id="center" class="column">Center</div>
            <div id="left" class="column">Left</div>
            <div id="right" class="column">Right</div>
        </div>
        <div id="footer">Footer</div>
    </body>
</html>

双飞翼布局

双飞翼布局通过 margin负值 实现的思路:
(1)三个盒子是兄弟关系。
(2)在中间的这个大盒子包含一个内部盒子,内部盒子设置 margin-leftmargin-right
(3)左边那个盒子通过设置 margin-left: -100% 移动到大盒子内部左边,正好填补大盒子内部盒子的左外边距留下的空白。
(4)右边的那个小盒子设置 margin-left: -小盒子宽度,向左移动一段距离,使小盒子填补大盒子右边的空白区域。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            body {
                min-width: 500px;
            }
            div {
                text-align: center;
            }

            #main {
                background-color: #ddd;
                width: 100%;
            }
            
            #main #main-wrapper {
                margin-left: 100px;
                margin-right: 50px;
            }
            
            #left {
                background-color: orange;
                width: 100px;
                margin-left: -100%;
            }

            #right {
                background-color: green;
                width: 50px;
                margin-left: -50px;
            }
            
            .column {
                float: left;
            }
        </style>
    </head>
    <body>
        <h1 style="text-align: center;">实现双飞翼布局</h1>
        <div id="main" class="column">
            <div id="main-wrapper">Main</div>
        </div>
        <div id="left" class="column">Left</div>
        <div id="right" class="column">Right</div>
    </body>
</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值