zoukankan      html  css  js  c++  java
  • CSS布局 — 圣杯布局与双飞翼布局

    圣杯布局

    实现原理

    html代码中,middle部分首先要放在container的最前部分,然后是left,right

    1. 将三者都设置 float:left, position:relative (因为相对定位后面会用到)

    2. middle设置 100% 占满一行

    3. 此时middle占满一行,所以要把left拉到middle所在行的最左边,使用 margin-left:-100%

    4. 这时left拉回到middle所在行的最左边,但会覆盖middle内容的左端,要把middle内容拉出来,所以在外围container加上 padding:0 210px

    5. middle内容拉出来了,但left也跟着出来了,所以要还原,就对left使用相对定位 left:-210px

    6. 同理,right要拉到middle所在行的最右边,使用 margin-left:-210pxright:-210px

    实现代码

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>圣杯布局</title>
        <style type="text/css">
            body {
                text-align: center;;
            }
            #demo {
                margin: auto;
            }
            #header, #footer {
                height: 50px;
                background-color: #aaa;
            }
            #container {
                overflow: hidden;
                margin: 10px 0;
                padding:0 210px;
            }
            #left {
                background-color: red;
                float:left;
                position:relative;
                left:-210px;
                200px;
                margin-left:-100%;
            }
            #right {
                background-color: green;
                 200px;
                margin-left: -200px;
                float: left;
                right: -210px;
                position: relative;
            }
            #middle {
                background-color: blue;
                float:left;
                100%;
            }
        </style>
    </head>
    <body>
        <div id="demo">
            <header id="header">头部</header>
            <div id="container">
                <div id="middle">
                    middle<br>主内容区域
                </div>
                <div id="left">
                    left<br>左侧边栏区域
                </div>
                <div id="right">
                    right<br>右侧边栏区域
                </div>
            </div>
            <footer id="footer">底部</footer>
        </div>
    </body>
    </html>
    

    双飞翼布局

    实现原理

    html代码中,middle部分首先要放在container的最前部分,然后是left,right

    1. 将三者都设置 float:left

    2. middle设置 100% 占满一行

    3. 此时middle占满一行,所以要把left拉到middle所在行的最左边,使用 margin-left:-100%,同理right使用 margin-left:-200px

    4. 此时middle的内容被覆盖,要把middle的内容拉出来,除了使用外围container的padding,还可以考虑使用margin,给middle增加一个内层div -- middle_content, 然后设置 margin:0 210px

    实现代码

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>双飞翼布局</title>
        <style type="text/css">
            body {
                text-align: center;;
            }
            #header, #footer {
                height: 50px;
                background-color: #aaa;
            }
            #container {
                overflow: hidden;
                margin: 10px 0;
            }
            #left {
                background-color: red;
                float:left;
                200px;
                margin-left: -100%;
            }
            #right {
                background-color: green;
                 200px;
                float: left;
                margin-left: -200px;
            }
            #middle {
                float: left;
                 100%;
            }
            #middle_content {
                background-color: blue;
                margin: 0 210px;
            }
        </style>
    </head>
    <body>
        <div id="demo">
            <header id="header">头部</header>
            <div id="container">
                <div id="middle">
                    <div id="middle_content">
                        middle_content<br>主内容区域
                    </div>
                </div>
                <div id="left">
                    left<br>左侧边栏区域
                </div>
                <div id="right">
                    right<br>右侧边栏区域
                </div>
            </div>
            <footer id="footer">底部</footer>
        </div>
    </body>
    </html>
  • 相关阅读:
    玩聚的互联网热点新发现 精度上升到了一个新高度
    玩聚热点新发现中国的techmeme
    个性化阅读的过去和未来【中】
    【职经分享】走出公司进入产业建立圈子
    玩聚Alpha版本上线运行
    产品路径经营者当局者迷
    个性化阅读的过去和未来【上】
    Web2.0人性驱动的事业和仿生学
    获得硬盘上文件 文件夹
    电脑上QQ出现“该页面暂时无法显示”解决办法!
  • 原文地址:https://www.cnblogs.com/laixiangran/p/5226149.html
Copyright © 2011-2022 走看看