`

清除浮动的5种方式

    博客分类:
  • CSS
阅读更多

      在CSS的开发中,之前对于清除浮动这块总感觉迷惑,为什么要清除浮动?清除浮动的方式又有那些?

      如下面一段HTML代码:

<ol>
		<li>
			<h2>运用CSS3的-webkit-box属性实现导航条效果</h2>
			<ul class="navone">
		        <li><a href="javascript:void(0)">Home</a></li>
		        <li><a href="javascript:void(0)">About</a></li>
		        <li><a href="javascript:void(0)">Content</a></li>
	        </ul>
		</li>
		<li>
			<h2>用overflow:hidden来实现浮动清除</h2>
	        <ul class="navtwo">
		        <li><a href="javascript:void(0)">Home</a></li>
		        <li><a href="javascript:void(0)">News</a></li>
		        <li><a href="javascript:void(0)">Photos</a></li>
	        </ul>
		</li>
		<li>
			<h2>用伪类清除浮动</h2>
	        <ul class="navthree">
		        <li><a href="javascript:void(0)">Home</a></li>
		        <li><a href="javascript:void(0)">About</a></li>
		        <li><a href="javascript:void(0)">Content</a></li>
	        </ul>
		</li>
		<li>
			<h2>添加额外的元素来清除浮动</h2>
	        <ul class="navfour">
		        <li><a href="javascript:void(0)">Home</a></li>
		        <li><a href="javascript:void(0)">About</a></li>
				<li><a href="javascript:void(0)">Content</a></li>
				<span class="clearfix"></span>
			</ul>
		</li>
		<li>
			<h2>使父元素浮动</h2>
			<ul class="navfive">
				<li><a href="javascript:void(0)">Home</a></li>
				<li><a href="javascript:void(0)">About</a></li>
				<li><a href="javascript:void(0)">Content</a></li>
			</ul>
		</li>
	</ol>

     在上面一段代码中,我们需要对li元素进行浮动处理,以创建导航条。当对li元素应用float:left;时,它们就会脱离正常的文档流,跳出父块也就是ul元素的包围。如,对父元素ul应用了一个边框,但是子元素li跳出了ul的包围,就不会得到预期的效果。

      我写的一段CSS代码如下,通过5种方式可以清楚浮动,当然也有最佳的选择:

	ul{margin: 0;padding: 0;}
	ul li{margin: 0;padding: 0;list-style:none;}
	a{text-decoration: none;}

	/* 运用CSS3的-webkit-box属性实现导航条效果 */
	ul.navone{display:-webkit-box;width: 15em;border: 1px dashed #000;}
	ul.navone li{-webkit-flex:1;-webkit-box-sizing:border-box;width:5em;border-right: 1px solid #000;}
	ul.navone li:last-child{border: none;}
	ul.navone li a{display: block;text-align: center;}

    /* 用overflow:hidden来实现浮动清除 */
	ul.navtwo{width: 15em;border: 1px dashed #000;overflow: hidden;}
	ul.navtwo li{width: 5em;float: left;box-shadow: 1px 0 0 #000;}
	ul.navtwo li a{display: block;text-align: center;}

	/* 用伪类清除浮动 */
	ul.navthree{width: 15em;border: 1px dashed #000;}
	ul.navthree:after{content: ".";height: 0;overflow: hidden;display: block;clear: both;}
	ul.navthree li{width: 5em;float: left;box-shadow: 1px 0 0 #000;}
	ul.navthree li a{display: block;text-align: center;}

    /* 添加额外的元素来清除浮动 */
    ul.navfour{width: 15em;border: 1px dashed #000;}
    ul.navfour li{width: 5em;float: left;box-shadow: 1px 0 0 #000;}
    ul.navfour li a{display: block;text-align: center;}
    ul.navfour .clearfix{display:block;width:100%;clear: both;}

    /* 使父元素浮动 */
    ul.navfive{width: 15em;border: 1px dashed #000;float: left;}
    ul.navfive li{width: 5em;float: left;box-shadow: 1px 0 0 #000;}
    ul.navfive li a{display: block;text-align: center;}

      以上5种方式为常用的清楚浮动的方式,随着CSS3的普及,手机端完全可以依靠第一种方式就能实现(当然在使用CSS3相关属性时,要加上前缀,如display:-webkit-box;就要加上-webkit前缀),也就是不用浮动,自然也不用清除浮动。但是,对于桌面浏览器,则还需要运用第二种方式来清除浮动。

      最终的效果如下:



  • 大小: 16.8 KB
1
2
分享到:
评论

相关推荐

    W3标准不变 清除浮动实现代码

    为了清除浮动增加无语义代码已经是最稳定和简单的方式,但总叫开发者心里感到不舒服,毕竟这么多年来早已习惯了结构和样式的分离,非要在结构中插入这样一行无语义代码就会让人觉得有种难以掌握的感受。 通过css...

    前端基础面试题1

    1,水平居中的方法2,垂直居中的方法4,三列布局(中间固定两边自适应宽度)5,BFC 有什么用6,清除浮动的几种方式7,CSS3有哪些新特性8,css3 新增伪

    前端面试题之CSS篇

    常用清除浮动的方法,如不清除浮动会怎样?5. 删格化的原理6. 纯css实现三角形7. 高度不定,宽100%,内一p高不确定,如何实现垂直居中?8. 至少两种方式实现自适应搜索9. 设置一段文字的大小为6px10. css菊花图11. ...

    基于原生html+css实现仿微信电脑客户端页面源码+项目说明.zip

    * 通过浮动实现:常见的布局方式之一,应用十分广泛,由于使用浮动之后,导致```盒子塌陷问题```,需要进行```清除浮动```。 * 通过flex布局实现:是新的布局方式,不管是水平还是垂直排列,都能较好控制,可用flex...

    div+css有实例,易学易懂

    5.12.2 清除浮动属性的使用 第6 章 CSS 定义文本属性 第123 页 6.1 文本的缩进和对齐 6.1.1 段首缩进 6.1.2 段首字符下沉与大写 6.1.3 文本的对齐 6.1.4 图文混排 6.2 行高与间隔 6.2.1 行高属性详解 6.2.2 利用行高...

    front-end-interview-prepare:记录一些前端面试知识点

    JavaScriptJavaScript的继承JavaScript原型链js类型转换es6的新特性整理手写instance of对eventLoop的理解csscss布局方式BFC的理解css清除浮动htmlhtml5语义化html5新特性react你怎么理解reactreact事件(合成事件和...

    『豪横,让面试官无题可问』☛第二期-Css让人忽视的面试题—–猛男,你还记得吗?

    引言 文章目录引言1.谈一下为什么要初始化CSS样式?2.谈一下你对BFC规范的理解3.谈一下CSS3有哪些新增的特性?...13.谈一下清除浮动的几种方法14.谈一下css常用的布局方式有哪些?15.谈一下::before和:a

    文章管理系统

    2.[改进]为了系统安全和稳定去掉宇初验证码和印象码,加入4种数字验证码、1种中文验证码、1种计算题验证码供用户选择 3.[改进]为了后台系统安全,后台登录页不用判断是否已登录状态并自动跳转到管理页 4.[改进]后台...

    JS_basics:前端练习 内容为自己的练习题

    清除浮动的方法★★★10.position属性★★★11.CSS隐藏元素的方式★★★12.Flex布局★★★13.双栏布局三栏布局★★★14.重排和重绘★★★15.CSS选择器★★★16.CSS动画★★17.CSS实现三角形★★18.CSS Sprites★★19...

    Excel 2007数据透视表完全剖析 5/7

    12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列...

    css-style:一些容易混淆的排版问题 附带例子的解释

    css-style一些容易混淆的排版问题 附带例子的...清除浮动 6.点击高亮模拟 7.版心布局 8.石老师的flex布局教程(实例篇) 9.石老师的flex布局教程(语法篇) 10.背景书写顺序 11.认识HTML5 12.登录页面之table-cell的运用

    html入门到放弃笔记

    4、style :定义 内联方式方式使用(CSS中) 4、注释 语法:&lt;!-- --&gt; 注意: 1、注释不能嵌套 2、注释不能出现在标记中 3、HTML 文档结构 W3C :Word Wide Web Consortium (万维网联盟) 1、HTML文档的...

    《CSS设计彻底研究》【中文PDF+源代码】

    4.1.8 实验7——使用clear属性清除浮动的影响 4.1.9 实验8——扩展盒子的高度 4.2 盒子的定位 4.2.1 static(静态定位) 4.2.2 relative(相对定位) 4.2.3 absolute(绝对定位) 4.2.4 fixed(固定...

    Bootstrap官网教程整理

    清除浮动 82 显示和隐藏内容 83 屏幕阅读器 84 Bootstrap 响应式实用工具 86 打印类 86 实例 86 Bootstrap 字形图标(Glyphicons) 89 什么是字形图标(Glyphicons)? 89 获取字形图标(Glyphicons) 89 CSS 规则...

    MY动力 Ver 3.51 Build 正式版.rar

    5、留言可选择 正常 隐藏 两种显示方式发表留言,选择隐藏后,此留言只有管理员和留言者才可以看到。 6、用户在留言时,可选择是否同时注册成为网站会员功能。 7、在留言未经管理员审核时,用户能查看与编辑自己的...

    python入门到高级全栈工程师培训 第3期 附课件代码

    06 css的清除浮动 07 css的定位 08 css的margin定位 第40章 01 抽屉作业之head区域(导航条) 02 抽屉作业之置顶区域 03 抽屉作业之content部分 05 抽屉作业之页码部分 06 抽屉作业之footer部分 第41章 01 JS的...

    王牌超级工具箱 v20.3.zip

    4.清除历史痕迹:清除上网时的IE历史痕迹,禁止“我的文档”记录历史痕迹。 5.IE地址探索器:烦人的IE弹出广告的网址总是没人知道,用IE地址探索器让它立即现身。 6.IE修复专家:修复IE外观,包括IE右键菜单,IE...

    网趣网上购物系统的部分特点与精华

    支持支付宝即时到帐功能和普通交易2种方式  二六、商品大图支持缩放功能,具有强大的站点访问统计功能。  二七、强大的商城报价中心功能,可以快速浏览商品价格。  二八、支持管理员登陆日志,可以对非法登陆的...

Global site tag (gtag.js) - Google Analytics