We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
inline(行内元素):
block(块级元素):
inline-block(融合行内于块级):
图1 原始状态
box包含两个div孩子,可以看到他们各占一行,因为div是块级元素
box
div
图2 对两个孩子设置了display: inline-block
设置了后,两个孩子不独占一行了,而是共享一行
两个图可以看出,display:inline-block后块级元素能够在同一行显示,有人这说不就像浮动一样吗。没错,display:inline-block的效果几乎和浮动一样,但也有不同,接下来讲一下inline-block和浮动的比较。
display:inline-block
不同之处: 对元素设置display:inline-block,元素不会脱离文本流,而float就会使得元素脱离文本流,且还有父元素高度坍塌的效果 相同之处: 能在某程度上达到一样的效果 我们先来看看这两种布局:
float
图1 对两个孩子设置了display: inline-block
图2 对两个孩子使用float:left
父元素会高度坍塌,所以要清楚浮动,对box使用overflow:hidden,效果如下:
乍一看两个都能做到几乎相同的效果,(仔细看看display:inline-block中有间隙问题,这个留到下面再讲)
增加两个孩子,对他们都添加float:left,并增加了child2的高度,可以看到浮动布局会有参差不齐的现象,我们看一个效果:
float:left
把float:left改为display: inline-block后可以看到每一个都排列的有序
display: inline-block
从上图可以看出浮动的局限性在于,若要元素排满一行,换行后还要整齐排列,就要子元素的高度一致才行,不然就会出现参差不齐的效果,而inline-block就不会。
inline-block
间隙问题
上面可以看到用了display:inline-block后,存在间隙问题,间隙为4像素,这个问题产生的原因是换行引起的,因为我们写标签时通常会在标签结束符后顺手打个回车,而回车会产生回车符,回车符相当于空白符,通常情况下,多个连续的空白符会合并成一个空白符,而产生“空白间隙”的真正原因就是这个让我们并不怎么注意的空白符。
display:inline-block
去除空隙的方法
对父元素添加{font-size: 0},即将字体大小设为0,那么那个空白符也变成0px,从而消除空隙
{font-size: 0}
display:inline-block的布局方式和浮动的布局方式,究竟使用哪个,我觉得应该根据实际情况来决定的:
浮动
The text was updated successfully, but these errors were encountered:
No branches or pull requests
1、解释一下display的几个常用的属性值,inline , block, inline-block
inline(行内元素):
block(块级元素):
inline-block(融合行内于块级):
box
包含两个div
孩子,可以看到他们各占一行,因为div
是块级元素设置了后,两个孩子不独占一行了,而是共享一行
两个图可以看出,display:inline-block后块级元素能够在同一行显示,有人这说不就像浮动一样吗。没错,
display:inline-block
的效果几乎和浮动一样,但也有不同,接下来讲一下inline-block和浮动的比较。2、inline-block布局 vs 浮动布局
不同之处: 对元素设置
display:inline-block
,元素不会脱离文本流,而float
就会使得元素脱离文本流,且还有父元素高度坍塌的效果相同之处: 能在某程度上达到一样的效果
我们先来看看这两种布局:
设置了后,两个孩子不独占一行了,而是共享一行
父元素会高度坍塌,所以要清楚浮动,对box使用overflow:hidden,效果如下:
乍一看两个都能做到几乎相同的效果,(仔细看看
display:inline-block
中有间隙问题,这个留到下面再讲)浮动布局不太好的地方
增加两个孩子,对他们都添加
float:left
,并增加了child2的高度,可以看到浮动布局会有参差不齐的现象,我们看一个效果:把
float:left
改为display: inline-block
后可以看到每一个都排列的有序从上图可以看出浮动的局限性在于,若要元素排满一行,换行后还要整齐排列,就要子元素的高度一致才行,不然就会出现参差不齐的效果,而
inline-block
就不会。3、inline-block存在的小问题:
上面可以看到用了
display:inline-block
后,存在间隙问题,间隙为4像素,这个问题产生的原因是换行引起的,因为我们写标签时通常会在标签结束符后顺手打个回车,而回车会产生回车符,回车符相当于空白符,通常情况下,多个连续的空白符会合并成一个空白符,而产生“空白间隙”的真正原因就是这个让我们并不怎么注意的空白符。对父元素添加
{font-size: 0}
,即将字体大小设为0,那么那个空白符也变成0px,从而消除空隙4、总结
display:inline-block
的布局方式和浮动
的布局方式,究竟使用哪个,我觉得应该根据实际情况来决定的:inline-block
来布局,因为这样清晰,也不用再像浮动那样清除浮动,害怕布局混乱等等。inline-block
了。参考文章
The text was updated successfully, but these errors were encountered: