一个例题:浮动引起元素变成行内块元素-display:inline-block

题目:span标签的width和height分别为多少?
A. width = 0px,height = 0px
B. width = 400px,height = 200px
C. width = 100px,height = 50px
D. width = 0px,height = 200px

<div style="width: 400px;height: 200px;">
    <span style="float:left;width: auto;height: 100%;"> <i style="position: absolute;float: left; width: 100px;height: 50px;"> hello </i> </span> </div> 

效果:
div正常宽高
span{width:0;height:200px}
i{width:100px;height:50px}

  • 所有元素经过浮动变为行内块元素 -- span不是块级元素,不支持宽高,浮动后支持宽高,height:100% 即是200px。i中绝对定位,脱离文档流,不占父级空间,所以span的width:0;
  • 上面解析:W3C中,float会使元素产生块级框,可以理解为inline-block;但是inline-block元素之间会默认产生空白符,而flaot之间没有。虽然float脱离了文档流,但是div仍然是span的父元素,因此height:100%;也就是继承了父元素div的高度200px。i设置了postion,脱离了文档流,并不影响父元素,所以span的width:0px;


作者:梁海杰_IRV
链接:https://www.jianshu.com/p/99a4e1434dd3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/cui-ting/p/9859384.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值