• display:inline-block与float


    display:inline-block 既有行级元素的特性,也有块级元素的特性,因此在同一行,能设置宽高,margin,padding

    inline-block和float的区别

    虽然设置float跟设置inline-block有些特征类似,但两者的区别还是非常明显的:

    1. 文档流(Document flow):float元素会脱离文档流,并使得周围元素环绕这个元素。而inline-block元素仍在文档流内。因此设置inline-block不需要清除浮动。当然,周围元素不会环绕这个元素,你也不可能通过清除inline-block就让一个元素跑到下面去。
    2. 水平位置(Horizontal position):很明显你不能通过给父元素设置text-align:center让浮动元素居中。事实上定位类属性设置到父元素上,均不会影响父元素内浮动的元素。但是父元素内元素如果设置了display:inline-block,则对父元素设置一些定位属性会影响到子元素。(这还是因为浮动元素脱离文档流的关系)。
    3. 垂直对齐(Vertical alignment):inline-block元素沿着默认的基线对齐。浮动元素紧贴顶部。你可以通过vertical属性设置这个默认基线,但对浮动元素这种方法就不行了。这也是我倾向于inline-block的主要原因。
    4. 空白(Whitespace):inline-block包含html空白节点。如果你的html中一系列元素每个元素之间都换行了,当你对这些元素设置inline-block时,这些元素之间就会出现空白。而浮动元素会忽略空白节点,互相紧贴
    5. IE6和IE7:Ie67对此属性部分支持。如果你要兼容这些浏览器,必须解决这个问题。这不是个大问题,但值得留意一下。

    显示内联浮点数的空白问题

    解决空白问题

    1. 删除html中的空白:不要让元素之间换行。
    2. 使用负边距:你可以用负边距来补齐空白。
    3. 给父元素设置font-size:0:由于空白的宽度与font-size有关系,设置这个属性即可把空白的宽度设置为0.在实际使用的时候,你还需要给子元素重新设置font-size。

    什么时候使用inline-block,什么时候使用float

    取决于你的设计稿跟解决方法。如果你需要文字环绕容器,那浮动是不二选择。如果你需要居中对齐元素,inline-block是个好选择。

    网格中的浮动块

    上图,把一系列元素设置了浮动,因为盒子二号宽度的关系,可以发现盒子五号被挤进去了(这些元素都脱离了文档流),这是图片排列中很常见的问题。

    网格中的内联块

    上面的块级元素被设置了inline-block。由于他们没有脱离文档流,所以元素不会被某个过长的列挤上来。

    原文: https://www.w3cplus.com/css/inline-blocks.html © w3cplus.com
  • 相关阅读:
    20160402_[转]联合体(union)的使用方法及其本质
    20160402_C语言位操作符的使用
    20160402_多道程序环境中的设备抢占问题
    20160402_TCP/IP协议簇
    20160402_TCP连接的建立、终止和状态转换
    20160402_C++中的内存对齐
    20160127_Android程序完全退出的方法
    Redis持久化
    github慢!怎么办?
    mybatis-plus-generator: 自动生成entity,mapper,service,controller的代码
  • 原文地址:https://www.cnblogs.com/embrace-ly/p/10546693.html
Copyright © 2020-2023  润新知