css中的baseline
2016-05-19 22:57
369 查看
这是
![](http://img.blog.csdn.net/20160519214044057)
,为什么会产生这种现象,这种现象怎么解释?
这个问题,我在看后就是一脸懵逼的状态,但是看到貘吃馍香大神在下面利用了
首先我们来介绍一下什么是
行内级元素:行内级元素是那些不会为自身内容形成新的块,而让内容分布在多行中的元素,比如我们的将
我们来试着解释一下上面提到的那个问题:
我们的第二个
![](http://img.blog.csdn.net/20160519224005208)
这时并没有发生我们上面问题的那种情况,但是当这个被
所以解决我们这种问题的原因也比较简单,也就是将我们的第二个
css中的一个容易被人忽略的概念,今天在知乎上看到一个问题,这个问题应该是关于
baseline,才去补习了一下关于
baseline的知识,首先我来还原一下问题:
<div style="position:absolute;left:0;top:0;background:black;color:white;font-size:24px;"> <span style="background:red;margin:0;"> <span>sss</span><span style="overflow:hidden;display:inline-block;background:blue;">ssfdfdfdfdfdfdfdfdfds</span>sss </span> </div>
,为什么会产生这种现象,这种现象怎么解释?
这个问题,我在看后就是一脸懵逼的状态,但是看到貘吃馍香大神在下面利用了
baseline,对做出一番解释,于是顺便去查了一下
baseline。结果发现自己的只是有很大空缺。
首先我们来介绍一下什么是
ifc:内联格式化上下文,
ifc的line box(线框)高度由其包含行内元素中最高的实际高度计算而来,也就是说我们的线框高度是由该行行内级元素最高顶边与最低底边的距离。
行内级元素:行内级元素是那些不会为自身内容形成新的块,而让内容分布在多行中的元素,比如我们的将
display设置成
inline,
inline-block等,都可以变为一个行内级元素。
inline-block后的元素,宽高
margin设定有效,参与
ifc,并且在行内对齐时使用自己的底边作为基线对齐位置。
inline后的元素,宽高
margin设定无效,参与
ifc,并且在行内对齐时使用它内文字基线作为基线对齐位置。
baseline:行内盒子依靠
vertical-align属性来进行垂直面上的对齐,默认值为
baseline,也就是与其父元素基线相对齐;但是当我们的
vertical-align为
bottom或者
top的时候,这种情况下,必不会为其定义
baseline,这种情况下,使其底边与父元素的
baseline对齐。
我们来试着解释一下上面提到的那个问题:
我们的第二个
span,首先是
display: inline-block,css规范规定,被
inline-block的行内盒子,其
bseline就是其父元素的最后一个行内盒子的
baseline,所以我们只为其添加
inline-block,而不添加
overflow:hidden;时,我们得到的是下图这样的情况:
这时并没有发生我们上面问题的那种情况,但是当这个被
inline-block的行内盒子的
overflow属性不是默认的
visible时,此时这个行内盒子的
baseline就不在是其父级元素的最后一个行内盒子的
baseline,而变为了这个行内盒子的底边。也就是说这时与我们父元素的
baseline对齐的就是我们被
inline-block的行内盒子底边。
所以解决我们这种问题的原因也比较简单,也就是将我们的第二个
span添加一个
vertical: top;或者
vertical: bottom;就可以,使我们的盒子的底边与父元素的
baseline对齐。
相关文章推荐
- css3加js做一个简单的3D行星运转效果
- CSS选择器
- (5)css盒子模型(基础上)
- css3动画之animate
- css可继承属性和不可继承属性
- CSS颜色属性,边框属性
- CSS属性选择器温故-4
- CSS布局奇淫技巧之-宽度自适应
- CSS3伪类选择器nth-child和nth-of-type浅析
- CSS3D效果
- CSS中position的absolute如何相对于父元素的位置进行定位
- CSS position属性和实例应用
- CSS凹型导航按钮
- css与js后边有?v=20160101
- CSS动态伪类选择器温故-3
- css hack
- HTML+CSS基础(一):初识html和css
- CSS学习(十)——列表与导航
- CSS @font-face属性实现在网页中嵌入任意字体
- 将less编译成css的gulp插件