css中“float”是什么意思?

html-css016

css中“float”是什么意思?,第1张

浮动什么意思呢,比如,默认的,我们知道,div是占满一行的,现在我们想把两个div显示在一行上,那怎么办呢\x0d\x0a111112222\x0d\x0a这样我们就设置了两个div,一个宽度100px,一个宽150px,可预览一下,我们的div仍在两行上,那么怎么把它改到一行上呢,这儿就需要float,设置第一个div的float为left\x0d\x0a111112222\x0d\x0a再预览,就可以看到,它们到一行上了。\x0d\x0aclear是什么意思呢,clear是清除的意思,它有三个值,left,right,both\x0d\x0a很好理解,如果设置了clear:left,它就不怕它的左边有float,同理clear:right,clear:both,是左右都不让有float\x0d\x0a举个例子,还是上面的\x0d\x0a我们设置第二个div的clear:left,也就是不让它左边有float\x0d\x0a111112222\x0d\x0a我们预览一下,就可以看到,尽管第一个div已经float:left了,这两个div仍然在两行上,就是由于第二个div不让它左边有float\x0d\x0a因为css的定义是后面的可以覆盖前面的,明白了吧 回答于 2022-12-11

共同点:对内联元素设置float或absolute属性,可以让元素脱离文档流(块级元素也可以),并且可以设置其宽高。

不同点:

float仍会占据其位置,position会覆盖文档流中的其他元素。

其实这个命题有误,只有position才是定位,float不能说是定位,不过你可以说这两种布局方式有什么不同。

float和position这两者并没有孰好孰不好的问题,两者按需使用,各得所需的效果。

float

从字面上的意思就是浮动,这种在印刷排版之类中可能解释的更加贴切。float能让元素从文档流中抽出,它并不占文档流的空间,典型的就是图文混排中文字

环绕图片的效果了。并且float这也是目前使用最多的网页布局方式。不过需要注意的是清除浮动是你可能需要注意的地方。并且如果你要考虑到古老的IE6

之类的还会有一些bug诸如双边距等等问题。

而position顾名思义就是定位。他有以下这几种属性:static(默

认),relative(相对定位),absolute(绝对定位)和fixed(固定定位)。其中static和relative会占据文档流空间,他

们并不是脱离文档的。absolute和fixed是脱离文档流的,不会占据文档流空间。

比较可以发现,float和position最

大的区别其实是是否占据文档流空间的问题。虽然position有absolute和fixed这两个同样不会占据文档流的属性,但是这两个并不适合被用

来给整个网页做布局。为什么?因为这样你就得为页面上的每一个元素设置一个xy坐标来定位。

float布局就显得灵活多了。但是一些特殊

的地方搭配relative和absolute布局可以实现更好的效果。因为absolute是基于父级元素的定位,当父级元素是relative的时

候,absolute的元素就会是基于它的定位了。比如你可以让一个按钮始终显示在一个元素的右下角。

如果说到性能问题reflow问

题,将元素的position设置为absolute和fixed可以使元素从DOM树结构中脱离出来独立的存在,而浏览器在需要渲染时只需要渲染该元素

以及位于该元素下方的元素,从而在某种程度上缩短浏览器渲染时间。所以如果是制作js动画等,用absolute或者fixed定位会更好。

说得不好的地方请大家补充。总结一句就是不推荐用position来布局整个页面的大框架,而推荐用float或者文档流的默认方式。

根据w3c的标准,position一共有五个属性值,none,inherit,left,right

任何元素都可以浮动,浮动元素会生成一个块级框,而不论它本身是何种元素。

使用浮动的时候页面会出现许多非正常现象,大多问题需要清除浮动, 常见的清除浮动方法有三种:

1. 给父级元素设置高度

2. 使用clear:both清除浮动

3. 给父元素设置overflow:hidden属性