百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 网页的布局方式之革除浮动
分享文章到:

网页的布局方式之革除浮动

发布时间:09/01 来源:未知 浏览: 关键词:
这次给大家带来网页的规划方式之清除浮动, 清除浮动的留意事项是什么,下面就是实战案例,一起来看一下。

盒子的高度问题

1.标准流中盒子的高度可以被内容高度撑起来;
2.浮动流中浮动的内容不克不及撑起盒子的高度;

为什么要分明浮动?

相邻的盒子之间,假如前面的盒子没有高度,那么后面盒子中的浮动元素就会去寻前面盒子中的浮动元素,这样会致使界面纷乱,所以需要清除浮动;

清除浮动方式一:

解决方案:

给前面一个父元素设定高度

留意点:

在公司开发中, 我们能不写高度就不写高度, 所以这种方式用得很少;

CSS:

   <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            height: 20px;  //给前面盒子设定高度
            background-color: red;
        }
        .box2{
            background-color: green;
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }    </style>

body:

<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p></div><div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p>
</div>

清除浮动方式二:

解决方案:

给后面的盒子增加clear:both;属性

clear属性取值:

none: 默许取值, 依照浮动元素的排序规则来排序(左浮动寻左浮动, 右浮动寻右浮动)
left: 不要寻前面的左浮动元素(也就是:不要和前面的左浮动元素显示在一行)
right: 不要寻前面的右浮动元素
both: 不要寻前面的左浮动元素和右浮动元素

留意点:

当我们给某个元素增加clear属性之后, 那么这个属性的margin属性就会失效;所以不引荐使用

CSS:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            border: 1px solid #000;
        }
        .box1{
            background-color: red;
        }
        .box2{
            background-color: green;
            clear: both; //给后面的盒子增加clear:both;属性
            margin-top: 28px;
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }    </style>

清除浮动方式三:

解决方案:

外墙法:在两个有浮动子元素的盒子之间增加一个额外的块级元素;并且设定clear: both;属性;

留意点:

外墙法它可以让第二个盒子使用margin-top属性,
外墙法不成以让第一个盒子使用margin-bottom属性,
不外可以通过设定额外标签的高度来实现margin结果;
搜狐中大量使用了这个技术,但是由于需要增加大量无意义的标签,所以不引荐使用;

CSS:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        .box1{
            background-color: red;            /*margin-bottom: 10px;*/ //外墙法不成以让第一个盒子使用margin-bottom属性,
        }
        .box2{
            background-color: green;            /*margin-top: 10px;*/  //外墙法它可以让第二个盒子使用margin-top属性,
        }
        .box1 p{
            width: 100px;
            background-color: blue;
        }
        .box2 p{
            width: 100px;
            background-color: yellow;
        }
        p{
            float: left;
        }
        .wall{
            clear: both; //设定clear: both;属性;
        }
        .h20{
            height: 20px; //设定额外标签的高度来实现margin结果;
            background-color: skyblue;
        }
    </style>
<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p></div><div class="wall h20"></div> //外墙法:在两个有浮动子元素的盒子之间增加一个额外的块级元素;<div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p></div>

清除浮动方式四:

解决方案:

内墙法:
1在第一个盒子中所有子元素最后增加一个额外的块级元素,
2给这个额外增加的块级元素设定clear: both;属性

留意点:

内墙法它可以让第二个盒子使用margin-top属性
内墙法它可以让第一个盒子使用margin-bottom属性

<a>内墙法会主动撑起盒子的高度,所以可以直接设定margin属性</a>

外墙法和内墙法不同?

外墙法不克不及撑起第一个盒子的高度, 而内墙法可以撑起第一个盒子的高度

在公司开发中<a>不常用隔墙法</a>来清除浮动 (隔墙法:外墙法和内墙法)

CSS:

   <style>
        *{            margin: 0;            padding: 0;
        }        .box1{            background-color: red;            /*margin-bottom: 10px;*/
        }        .box2{            background-color: green;            /*margin-top: 10px;*/
        }        .box1 p{            width: 100px;            background-color: blue;
        }        .box2 p{            width: 100px;            background-color: yellow;
        }        p{            float: left;
        }        .wall{            clear: both;
        }        .h20{            height: 20px;            background-color: skyblue;
        }    </style></head>
<div class="box1">
    <p>我是文字1</p>
    <p>我是文字1</p>
    <p>我是文字1</p>
    <div class="wall h20"></div> //设定内墙</div><div class="box2">
    <p>我是文字2</p>
    <p>我是文字2</p>
    <p>我是文字2</p></div>

信赖看了本案牍例你已经把握了办法,更多出色请关注百分百源码网其它相关文章!

引荐阅读:

CSS的背景与精灵图

CSS的显示模式怎样使用

以上就是 网页的规划方式之清除浮动的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板