博主信息
博文 10
粉丝 1
评论 0
访问量 10615
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
双飞翼布局/圣杯布局/清除浮动
枫的博客
原创
961人浏览过

清除浮动篇

1、为什么要清除浮动?

浮动是魔鬼,fload脱离文档流,但并未脱离文本流,也因其父级无法包裹住。

2、清除浮动的方法有那些?

<1>子元素浮动后,父元素设置与子元素一样的高度

该方法很low,子元素高度变化,需要手动同步修改父元素高度。

<2> 父元素跟着子元素一起浮动

该方法问题很多,如果嵌套的父元素很多,需要一个个添加fload。

<3>在浮动同层级下加一个<div style="clear=both"><div>

这个方法简单粗暴,但会多增加一个dom元素, 在服务器端渲染页面时, 会遇到些麻烦。

<4>在父级使用伪元素

.parent::after {

    content: '';

    display: table;

    clear: both;

原理相当于方案3,相比优点在于不会有多余的DOM,缺点在于不够简单。

<5>直接在浮动的父级元素设置BFC块

.parent{overflow:hidden/auto}


双飞翼布局

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>通用布局之[双飞翼](Flying Swing Layout)</title>
    <style>
        html *{padding: 0;margin: 0;}
        .nav{list-style-type: none;}
        a{text-decoration: none;color: white;}
        .nav li{float: left;}
        .header .content {width: 1000px;height: 60px;
            background-color: black;margin: 0 auto;}
        
        .footer{width: 1000px;height: 60px; background-color: lightgray;margin: 0 auto;}

        /*双飞翼布局*/
        .container {width: 1000px;margin: 5px auto;background-color: lightgray;
            overflow: hidden;/*别忘记最后清除浮动*/}
        .wrap{width: inherit;min-height: 600px;background-color:cyan;
        }
        .left{width:200px;min-height:600px;background-color: lightcoral;
            /*重点来了*/
            margin-left:-100% /*回到我上的父级最左边*/
        }
        .right {width: 200px;min-height: 600px;background-color: lightseagreen;
            /*重点来了*/
           margin-left:-200px /*回到我上的父级最右边,值根据我的width而来决定*/
        }
        .wrap,.left,.right{float: left;}
        .main{
            background: pink;
            /*该重点真的很重要,用padding把元素内挤出来*/
            padding: 0 200px
        }

    </style>
</head>
<body>
    <div class="header">
        <div class="content">
            <ul class="nav">
                <li class="item"><a href="">首页</a></li>
                <li class="item"><a href="">公司新闻</a></li>
                <li class="item"><a href="">最新产品</a></li>
                <li class="item"><a href="">联系我们</a></li>
            </ul>
        </div>
    </div>

    <div class="container">
        <div class="wrap">
            <div class="main">主体内容区</div>
        </div>

        <div class="left">左侧</div>

        <div class="right">右侧</div>

    </div>

    <div class="footer">
        <div class="content">
            <p>
                <a href="">&copy; PHP中文网版权所有</a> &nbsp;|&nbsp;
                <a href="">0551-88889999</a> &nbsp;|&nbsp;
                <a href="">皖ICP2016098801-1</a>
            </p>
            
        </div>
    </div>
</body>
</html>

圣杯布局

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>通用布局之[双飞翼](Flying Swing Layout)</title>
    <style>
        html *{padding: 0;margin: 0;}
        .nav{list-style-type: none;}
        a{text-decoration: none;color: white;}
        .nav li{float: left;}
        .header .content {width: 1000px;height: 60px;
            background-color: black;margin: 0 auto;}
        
        .footer{width: 1000px;height: 60px; background-color:black;margin: 0 auto;}

        /*圣杯布局*/
        /*圣杯布局的DOM更简单*/
        .container{width: 600px;background-color: lightgray;margin: 5px auto;overflow: hidden}
        .main{width: inherit;min-height: 600px;background-color: lightcyan;}
        .left{width: 200px;min-height: 600px;background-color: lightcoral;margin-left: -100%;position: relative;left: -200px}
        .right{width: 200px;min-height: 600px;background-color: lightseagreen;margin-right: -200px}
        .main,.left,.right{float: left;}
        .container{padding: 0 200px}


    </style>
</head>
<body>
    <div class="header">
        <div class="content">
            <ul class="nav">
                <li class="item"><a href="">首页</a></li>
                <li class="item"><a href="">公司新闻</a></li>
                <li class="item"><a href="">最新产品</a></li>
                <li class="item"><a href="">联系我们</a></li>
            </ul>
        </div>
    </div>

    <div class="container">
        
        <div class="main">主体内容区</div>

        <div class="left">左侧</div>

        <div class="right">右侧</div>

    </div>

    <div class="footer">
        <div class="content">
            <p>
                <a href="">&copy; PHP中文网版权所有</a> &nbsp;|&nbsp;
                <a href="">0551-88889999</a> &nbsp;|&nbsp;
                <a href="">皖ICP2016098801-1</a>
            </p>
            
        </div>
    </div>
</body>
</html>


批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学