一個例題:浮動引起元素變成行內塊元素-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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM