怎么取消DIV 浮动?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么取消DIV 浮动?相关的知识,希望对你有一定的参考价值。
清除浮动有几个方法,在css中去设置样式或者设置父级div就可以。第一种:结尾处加空div标签 clear:both
第二种:父级div定义高度;
第三种:父级div定义 overflow:hidden ;
第四种:父级div定义 overflow:auto ; 参考技术A “清除”就是clear这个属性的中文解释,“浮动”是float这个属性的中文解释。
清除(clear)的意思可以理解为把这个元素指定方向的内容给移走。例如clear:both; 就是指这个元素左右两边的内容给排除开,相当于这个元素独立成一行,其它元素不管宽度大小,都不能和这个元素并排显示。如果是clear:right;就相当于这个元素右边的内容会被排除开,但是左边的不会,仍然可以在同一行显示。
浮动(float)则是控制元素在一行内的显示位置,例如float:left;就表示这个元素会显示在这一行的左边,如果是float:right则表示这个元素会显示在一行的右边。通常情况下,应用了float的元素,浏览器会认为它同时也意味着会与相邻的元素在同一行内显示,但是这个规则在IE6等浏览器里面并不会被严格执行,有时即使定义了float属性,浏览器还是默认认为这个元素是clear:both的,所以一般定义了float之后,还要定义一个display:inline;才可以实现多个元素在同一行内显示的效果。 参考技术B clear:both; 参考技术C clear:both 参考技术D CSS浮动有左浮动、有右浮动与清除浮动三种使用方法
左浮动语法:
float:left;
右浮动语法:
float:right;
清除浮动语法:
clear:both;
具体你可以去http://www.w3school.com.cn/css/css_positioning_floating.asp这里学习,真心希望帮助到你
前端学习笔记浮动布局
有这样一个问题,怎么让两个块并排显示,块用div表示。
#div1{ background: black; width:100px; height:200px; } #div2 { background: red; width:100px; height:200px; } </style> <div id ="div1"></div> <div id="div2"></div>
效果是这样的:
由于div是block元素,不管你设置div是多宽都独占一行。所以按照上面的代码来写的话,div1和div2是并列显示的。我们得想想办法,后来查找资料,发现可以用float来实现,我们可以先让div1向左浮动,带入如下:
<!DOCTYPE html> <html> <head> <title>test </title> <meta charset="utf-8"> </head> <body> <style> #div1{ background: black; width:100px; height:200px; float:left; } #div2 { background: red; width:100px; height:200px; } </style> <div id ="div1"></div> <div id="div2"></div> </body> </html>
效果如下:
咦?红色的块哪里去了呢?是因为给黑色的块设置了float属性,那么这个黑色的div就漂浮了起来,原来文档中所有的元素都处于同一个平面的,黑色的div设置了float属性之后就漂浮到上面的那个平面上去了,所以下面平面就留出了一块空地方,下面平面中的红色的块就填充了原来黑色块的位置了,所以黑块就把红块覆盖了。
那怎么让红色的块也显示出来呢?很简单让红色的块也向左浮动,float:left
<!DOCTYPE html> <html> <head> <title>test </title> <meta charset="utf-8"> </head> <body> <style> #div1{ background: black; width:100px; height:200px; float:left; } #div2 { background: red; width:100px; height:200px; float:left; } </style> <div id ="div1"></div> <div id="div2"></div> </body> </html>
效果如下:
怎么解释这个过程?还是一样的道理,黑色的块已经是上面那个平面的元素了,而红色的块原本是处于下面那个平面的,float之后就跑到上面这个平面了,那为什么这两个块就非要挨着呢?前面不是说div是块状元素吗?难道块状元素float之后就不是块状元素,不需要独占一行了吗?这是个疑问。
以上是关于怎么取消DIV 浮动?的主要内容,如果未能解决你的问题,请参考以下文章