您的位置:首页 > Web前端 > CSS

CSS display:inline和float:left两者的区别

2016-09-20 15:51 393 查看
CSS display是指显示状态,inline表示内联,特点是紧贴着前一个内联元素,通常默认的内联元素有span,a,em,strong等。而float表示的是浮动,float:left,是针对块级元素的浮动形式,是不同形式的两种状态。

首先我们要明确,CSS display:inline;与float:left;正确含义。CSS display:inline;(内联)《CSS权威指南》中文字显示:任何不是块级元素的可见元素都是内联元素。其表现的特性是“行布局”形式,这里的“行布局”的意思就是说其表现形式始终以行进行显示。比如,我们设定一个内联元素border-bottom:1pxsolid#000;时其表现是以每行进行重复,每一行下方都会有一条黑色的细线。如果是块级元素那么所显示的的黑线只会在块的下方出现。

当然这看起来不像是CSS display:inline;与float:left;的区别所在,但是当理解了float:left;的特性那么我们就清楚到底是怎么回事了。float:left;(左浮动)他使得指定元素脱离普通的文档流而产生的特别的布局特性。并且FLOAT必需应用在块级元素之上,也就是说浮动并不应用于内联标签。或者换句话来说当应用了FLOAT那么这个元素将被指定为块级元素。

那么我们很清楚了,内联(CSS display:inline;)元素不能设置宽高,因为内联属于行布局,其特性是在一行里进行布局,所以不能被设定宽高。

谢谢您的回答,我在DW上重新试过,上述代码无论<li>设为inline 或是 inline-block,效果都是一样的
其实我想问的是:当行内元素排列长度超过父元素时,到底会不会换行?
因为我是初学,向来对行内元素的理解是无论怎样行内元素都应该留在一行内。
在上述代码中的情况就是id=content的div的宽度是800px 每一张图宽度为230px;
每一行当排到第四幅时位置不够了。按照我自己的理解,图片应该是打横溢出,也就是不换行。
但事实上图片没有溢出content div,而是换行了。可能我对行内元素的理解不太正确。
请问您对此有何看法?谢谢!

inline
和 inline-block 超过父元素会换行的。 行内元素不是留在一行内,而是他的宽度和高度是由内容撑起来,设置宽度和高度是无效的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: