• 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>
  • 相关阅读:
    文章的上一页和下一页功能
    mysql的子查询in()操作及按指定顺序显示
    apache的配置详解
    mysql replace()用法
    js判断手机登陆用户
    mysql的常用函数
    mysql substring_index()查询某个字符中以某个分割符分割后的值
    mysql复制表数据,多表数据复制到一张表
    mysql数据去重复distinct、group by
    js获取站点根目录
  • 原文地址:https://www.cnblogs.com/laixiangran/p/5226149.html
Copyright © 2020-2023  润新知