css中display:Inline-Block深入理解说明

  次阅读 作者:智能小宝 来源:互联网 2016-03-25 16:27 我要评论(0)

Inline-Block在display中用到得比较少,但要使用它有很多小技巧了,下面我来给大家介绍Inline-Block一些技巧。

inline-block,如此的让人难以琢磨,并且又有诱人的显示方式宣传,只是其承诺的很多,兑现的却如此少。我已经收到这样的PSD文件有很多次:

看了之后我就开始哭了。

通常情况下,这个类型的布局是小菜一碟。固定宽度,固定高度,左侧浮动(float:left),然后就完成了。但但但是,这个设计需要与可变数量的内容一起工作,也就是说如果这些块中的一个比其他块拥有更多的内容,它将会破坏整个布局:

由于第一个画廊项目比其他的高,所以第五个项目就相对于它进行左侧浮动而不是位于它下面。总体上来说我们想要一个拥有表格一样伸缩性的布局,但真正合适的应该是一个语义标记。

我们以拥有一个无序列表,并且display被设置为inline-block的一个简单页面开始:

<ul>

<li>

<h4>This is awesome</h4>

<img src="http://farm4.static.flickr.com/3623/3279671785_d1f2e665b6_s.jpg"

alt="lobster" width="75" height="75"/>

</li>

...

<ul>

<style>

li {

width: 200px;

min-height: 250px;

border: 1px solid #000;

display: inline-block;

margin: 5px;

}

</style>

在Firefox 3,Safari 3和Opera中看起来OK:

明显的,垂直对齐有点问题。恩,但这并不是真正的有问题,因为这是正确的行为,但这不是我们想要的。

这儿发生的事情是每个<li>的baseline是以父元素<ul>的baseline来对齐的。什么是baseline,你问道?一图抵千言:

baseline是那条穿过上面文字的黑线。行内(inline)或者行内块(inline-block)元素的默认垂直对齐的值是baseline,也就是说元素的baseline将会与其父元素的baseline进行对齐。这是第一个包含基准线在内的行内块:

你可以看见,每个基准线都和文本“This is the baseline”的基准线所对齐。那个文本并没有在一个<li>之中,它只是父元素<ul>的一个简单的文本节点,用来标识父元素的基准线在哪。

但是,解决这个问题的方法很简单:vertical-align:top,其效果是一个好看的网格:

除了它仍然不在Firefox 2,IE 6和7中工作以外。

让我们来开始处理Firefox 2。

Firefox 2不支持行内块,但是它支持一个显示效果与行内块一样,Mozilla所特有的显示属性-moz-inline-stack。当我们把它加到display:inline-block前面,FF2将会忽略那个声明(译者注:即display:inline-block)并保持-moz-inline-stack,因为它不支持行内块。支持行内块的浏览器将会使用它(译者注:display:inline-block),并且忽略前面的显示属性(译者注:-moz-inline-stack)。

<style>

li {

width: 200px;

min-height: 250px;

border: 1px solid #000;

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...