float浮动

一、


![fudong1.PNG](http://upload-images.jianshu.io/upload_images/6224805-0c4470532d9eb06d.PNG?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

1、图片中如果改变第二列的浮动为float:right,就是变成div1 div3 div2这样排序了。
这是因为第二个<div>在source order上比第三个<div>等级要高 (DOM上第二个<div>先出现并声明了float right) ,所以在float order 上也会比第三个<div>等级要高。又因为两者同时像右浮动,第二个<div>就会更加地靠右。
2、清除浮动。
在没清除浮动之前,页脚是包装在空间最长的列,但是我们真正想要的页脚留在所有列的底部,所以可以用footer { clear: both;}清楚浮动。
3、整个宽度可能难以计算。
到目前为止,我们的例子是没有应用样式的浮动框。当你开始给这些框加上样式时,比如 borders, padding 等等,比如
div, footer {
padding: 1%;
border: 2px solid black;
background-color: red;
}问题就来了。就变成下图:

浮动.PNG

此时,您将看到您的布局已损坏 - 由于填充和边框引入的额外宽度,三列不再适合一行,因此第三列下降到另外两列。可以通过你的html加上下面的css。

  • {
    box-sizing: border-box;
    }
    box-sizing 将我们box的width的计算方式变为了content + padding + border,而不是之前的content的width,所以当我们增加padding或border的width时,我们不会增加我们box的width。相反我们的content的width会缩小padding或border增加的宽度。(box-sizing Internet Explorer 8不支持 )
    二、清除浮动(浮动会造成父容器高度坍塌,因此要清理浮动。如果不清除接下来的内容就不会重新起一行)
    1、上面说的clear:both(或者不要footer的话结尾处加空div标签 clear:both );
    2、父级定义 overflow:hidden 。

    <div class="links">
    <a href="#" class="forget">忘了密码?</a>
    <a href="#" class="register">注册新账号</a>
    </div>
    .links { overflow: hidden; }
    .links .forget { float: left; }
    .links .register { float: right; }

     3、.clearfix。将以下 .clearfix 类应用到需要清除浮动的父元素。
    

.clearfix::after {
content: '';
clear: both;
display: block;
}

参考链接:
1、https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Floats
2、https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一.外边距重叠 两个相邻盒子的外边距发生重叠时,外边距大的覆盖外边距小的盒子。 margin 可以设置负数,表现为...
    星辰星成阅读 578评论 1 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,018评论 1 92
  • 别怪别人用旧眼光看你,毕竟你也是改变过来才不久
    vivian96阅读 183评论 0 0
  • 突然接到我爸的电话。说妈妈前两天摔了一跤,到现在还腰疼,不严重。但想到医院看看,毕竟年龄大了,看看才放心。问我什么...
    非烟店主阅读 241评论 2 2
  • 1.使用environment可以配置多个数据库,用id来标识 2.transactionManager的type...
    冬季洛阳阅读 698评论 0 0

友情链接更多精彩内容