2020-11-03 CSS display属性block,inline和inline-block的区别

1. display:block

1.1 block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素的宽度会自动填满其父元素宽度。

1.2 block元素可以设置其width,height属性。块级元素即使设置了宽度,仍然是独占一行,但如果有margin且block元素本身的宽度不足父元素宽度的100%的话,该元素宽度+margin才是100%。

3.block元素可以设置margin和padding属性。


2. display:inline

1.inline元素不会独占一行,多个相邻的行内元素会从左到右排列在同一行里,直到一行装不下了,才会新换一行,其宽度随元素的内容而变化。

2.inline元素设置width,height属性无效。

3.inline元素的margin和padding属性,水平方向的padding-left,padding-right,margin-left,margin-right都能产生边距效果;但竖直方向的padding-top,padding-bottom,margin-top,margin-bottom不会产生边距效果。


3. display:inline-block

简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以设置一个link(<a>)为inline-block属性,使其既具有block的宽度和高度特性又具有inline的同行特性。


Note:

1. <ul>,<li>都是块级元素,所以写navigation bar的时候要将<ul>定义为block,而将<li>定义为inline-block; <a>是行内元素,如果要设置占满背景容器,也需定义为block。

2. 上述所有的“一行”都是指父元素(父容器)内的一行。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。