前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >block,inline,inline-block的区别

block,inline,inline-block的区别

作者头像
用户1749219
发布2018-05-16 10:25:29
1.3K0
发布2018-05-16 10:25:29
举报
文章被收录于专栏:落花落雨不落叶

block: 英语翻译过来是“”意思,就跟小时候玩过的积木方块一样,一块一块往上搭。

inline: 英语翻译过来就是“内联”的意思,内联不好理解,我的理解就是行内元素;

blockinline都是比较通俗的说法,block应该是“block-level elments”(块级元素),inline应该是“inline elements”(行内元素)

细节对比:

display:block的元素;

  1、在网页中会单独占一行,默认情况下他的宽度是填满父级宽度,即使他的宽度比浏览器窗口小很多也不会让后面的元素挤上来跟他同占一行(比较小气);

  2、可以设置width和height;

  3、还可以设置padding和margin;

display:inline;

  1、这样样式的元素就不一样啦,他比较大方,他可以和多个inline元素同占一行,直到他们的宽度总和超过了浏览器窗口的宽度才会将多出来的元素往下挤(因为实在太挤了);

  2、不能用width和height,因为这两个个属性在inline身上无效;

  3、padding-left、padding-left、margin-left、margin-right有效,其他方向上(上下)的padding和margin属性无效;

display:inline-block;

1、简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。但width、height属性对他们仍有效;

注意:IE(低版本IE,IE8及以上支持)本来是不支持inline-block的,所以在IE中对内联元素使用display:inline-block,理论上IE是不识别 的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表象。

那么如何让IE低版本支持inline-block呢?

方法1:先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display 要先后放在两个css声明中才有效果,这是ie的一个经典bug,如果先定义了display:inline-block,然后再将display设回 inline或block,layout不会消失)。代码如下:

代码语言:javascript
复制
div{ display:inline-block;}
div{ display:inline;}

方法2:直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下:

代码语言:javascript
复制
div{ display:inline-block;
     zoom:1;
}

常见的块级元素:div、p、form、h1-h6、pre、ol、ul、dl等等;

常见的内联元素:span、a、img、input、textarea、br、em、label、strong、select等等

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-03-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档