网页布局中常常会用到float浮动,可是浮动的块级元素脱离了标准文档流,使得浮动元素的父元素没有高度,致使父级元素没有高度,因此须要清除浮动对父级元素的影响,本文介绍清除浮动的几种方法。
清除浮动影响的几种方法:css
效果图:布局
代码:spa
<style> * { padding: 0; margin: 0; } .header { height: 30px; line-height: 30px; background-color: #333; } .header a { color: #fff; text-decoration: none; } ul { float: right; } li { float: left; list-style: none; padding-right: 20px; } </style> <div class="header"> <ul> <li><a href="#">首页</a></li> <li><a href="#">文章</a></li> <li><a href="#">问答</a></li> <li><a href="#">帮助</a></li> <li><a href="#">关于</a></li> </ul> </div>
外墙法
:使用一个空白块级元素上添加css样式clear
清除浮动注意:添加了clear样式的块级元素添加不了margin
外边距属性code
效果图:blog
代码:rem
<style> * { padding: 0; margin: 0; } .header { /* background-color: #333; */ } .header a { /* color: #fff; */ text-decoration: none; } ul { float: right; } li { float: left; list-style: none; padding: 5px 20px; } .clearfix { height: 10px; background-color: red; clear: both; } .main { color: #fff; height: 100px; background-color: blue; } </style> <div class="header"> <ul> <li><a href="#">首页</a></li> <li><a href="#">文章</a></li> <li><a href="#">问答</a></li> <li><a href="#">帮助</a></li> <li><a href="#">关于</a></li> </ul> </div> <div class="clearfix"></div> <div class="main">主要内容</div>
内墙法
:使用一个空白块级元素上添加css样式clear
清除浮动效果图:文档
代码:get
<style> * { padding: 0; margin: 0; } .header { background-color: #333; } .header a { color: #fff; text-decoration: none; } ul { float: right; } li { float: left; list-style: none; padding: 5px 20px; } .clearfix { clear: both; } </style> <div class="header"> <ul> <li><a href="#">首页</a></li> <li><a href="#">文章</a></li> <li><a href="#">问答</a></li> <li><a href="#">帮助</a></li> <li><a href="#">关于</a></li> </ul> <div class="clearfix"></div> </div>
内墙法
相对于外墙法
有相对优势:it
内墙法
设置后,浮动元素的父级元素会被撑开,也就是说有了高度io
原意:表示移除隐藏,溢出边框的内容都要隐藏掉
效果图:
代码:
<style> * { padding: 0; margin: 0; } .header { background-color: #333; overflow: hidden; } .header a { color: #fff; text-decoration: none; } ul { float: right; } li { float: left; list-style: none; padding: 5px 20px; } .main { color: #fff; height: 100px; background-color: blue; } </style> <div class="header"> <ul> <li><a href="#">首页</a></li> <li><a href="#">文章</a></li> <li><a href="#">问答</a></li> <li><a href="#">帮助</a></li> <li><a href="#">关于</a></li> </ul> </div> <div class="main">主要内容</div>