display:inline、block、inline-block的区别

19 篇文章 0 订阅

display:none | inline | block | inline-block | table | inline-table |··········|·····

首先先说点名词 :
- inline element:行内元素也叫作内联元素,内嵌元素,直进式元素
- block element:块级元素

block元素:< div>, < p>, < h1>, < form>, < ul> < li>等
inline元素: < span>, < a>, < label>, < input>, < img>, < strong> < em>等


现在进入正题:display:inline、block、inline-block的区别

粗谈区别:
  • block
    block是 块级元素,其前后都会有换行符;

  • inline
    inline是 内联元素(对其设置的宽高都没有什么卵用,不产生效果),前后是没有换行符的。

  • inline-block
    而inline-block恰好是两者的综合,即行内块,其属于块级元素,而且没有换行符,在行内形成。

注:如果将block或inline元素设置为 position:absolate/fixed 或 float后,block或inline 元素将会自动转换为block元素, 只不过这个block由于浮动或脱离文档流的原因,导致该block前后换行符失去了效果,所以容易被误认为inline-block元素。


细说区别:
  • block
    (1)能设置宽度:处于常规流中(即position:static/relative) ,若width没有设置,会自动填充满父容器。
    (2)能设置高度:若height没有设置,则高度会扩展以包含常规流中的子元素
    (3)margin/padding水平垂直方向都有效。
    (4)前后都会有换行符

注意:如果将block或inline元素设置为 position:absolate/fixed 或 float后,block或inline 将会自动转换为block元素 (由于浮动或脱离文档流的原因,导致该block前后的换行符失去了效果,所以有些人误认为是转化为了inline-block)
因而此时若某block元素没有设置width,则会扩展宽度以包含常规流中的子元素

  • inline
    (1)设置width无效,且会扩展宽度以包含常规流中的子元素
    (2)设置height无效,且会扩展高度以包含常规流中的子元素
    (3)margin在竖直方向上无效,水平方向上有效;padding水平垂直方向都有效。
    (4)前后无换行符

  • inline-block
    (1)能设置宽度:在任何流中,若width没有设置,则宽度会扩展以包含常规流中的子元素
    (2)能设置高度:若height没有设置,则高度会扩展以包含常规流中的子元素
    (3)margin/padding水平垂直方向都有效。
    (4)前后无换行符


inline-block间隙问题:

用inline-block经常会产生间隙(依浏览器不同而定),间隙产生的原因:
inline-block 元素间 有空格或是换行符,它们占据一定的位置。点击下面链接,看看怎么解决的~
链接:去除inline-block元素间间距的N种方法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值