只能应用于内联元素以及 display 值为 table-cell 的元素。
vertical-align 属性只能作用在 display 计算值为 inline、inline- block,inline-table 或 table-cell 的元素上。因此,默认情况下,span、strong、 em等内联元素,img、button、input等替换元素,非 html 规范的自定义标签 元素,以及<td>单元格,都是支持 vertical-align 属性的,其他块级元素则不支持。
浮动和绝对定位会让元素块状化,从而让内联元素的vertical-align不生效
vertical-align 的百分比值是相对于 line-height 计算的
且是以line-height的基线为基础,vertical-align:0%和vertical-align:baseline效果一样
vertical-align 属性的默认值 baseline 在文本之类的内联元素那里就是字符 x 的下 边缘,对于替换元素则是替换元素的下边缘。但是,如果是 inline-block 元素则规则要 复杂了:一个 inline-block 元素,如果里面就是没有图文内容,或者 overflow 不是 visible, 则该元素的基线就是其 margin 底边缘;否则其基线就是元素里面最后一行内的图文的基线。 见demo :inline-block元素的vertical-align.html
内联元素:元素的垂直中心点和行框盒子基线往上 1/2 x-height 处对齐。vertical-align:middle 定义是元素的中线和字符 x 中心点对齐
table-cell 元素:单元格填充盒子相对于外面的表格行居中对齐。table-cell 元素设置 vertical-align 垂 直对齐的是子元素,但是其作用的并不是子元素,而是 table-cell 元素自身。就算 table-cell 元素的子元素是一个块级元素,也一样可以让其有各 种垂直对齐表现。
middle 将元素盒子的垂直中点与父盒子的baseline加上父盒子的x-height的一半位置对齐 这里元素盒子的垂直中点容易确定,父盒子的baseline也好确定,但是x-height要进行计算得到,这个x-height就是字母x的高度。
baseline确定的规则 1、inline-table元素的baseline是它的table第一行的baseline。
2、父元素【line box】的baseline是最后一个inline box 的baseline。
3、inline-block元素的baseline确定规则
规则1:inline-block元素,如果内部有line box,则inline-block元素的baseline就是最后一个作为内容存在的元素[inline box]的baseline,而这个元素的baseline的确定就要根据它自身来定了。 规则2:inline-block元素,如果其内部没有line box或它的overflow属性不是visible,那么baseline将是这个inline-block元素的底margin边界。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
}
.ctn-block{
display: block;
background-color: #bbb;
line-height: 200px;
font-size: 50px;
}
.ctn-block .child1{
display: inline-block;
width: 100px;
height: 100px;
margin:10px 0;
vertical-align: baseline; /*将子元素盒子的baseline与父盒子的baseline对齐
vertical-align: middle;/*将子元素盒子的垂直中点与父盒子的baseline加上父盒子的x-height的一半位置对齐*/
/***注意:当vertical-align设置为top和bottom时,其就不是按照baseline进行定位了,而是根据line box进行定位。子元素盒子的顶部和底部也就是其上下margin外边界。**/
/*vertical-align: top;/*将子元素盒子的顶部和其所在的line box顶部对齐*/
/*vertical-align: bottom;/*将子元素盒子的底部和其所在的line box底部对齐*/
background-color: aliceblue;
}
/*
父元素.ctn-block的base-line是Gg的baseline,
inline-block元素因为没有内部line box,也没有设置overflow:visible,所以其baseline是底margin边界。
*/
.wrapper{
width: 200px;
height: 200px;
border: 1px solid red;
line-height: 150px; /*line box就是行高所形成的那个高度*/
}
.son{
/***注意:当vertical-align设置为top和bottom时,其就不是按照baseline进行定位了,而是根据line box进行定位。子元素盒子的顶部和底部也就是其上下margin外边界。**/
/*vertical-align: top;/*将子元素盒子的顶部和其所在的line box顶部对齐*/
/*vertical-align: bottom;/*将子元素盒子的底部和其所在的line box底部对齐*/
vertical-align: bottom;
display: inline-block;
width: 50px;
height: 50px;
background: black;
}
</style>
</head>
<body>
<div class="ctn-block">
<div class="child1"></div>
<span>Gg</span>
</div>
<div class="wrapper">
<span class="son"></span>
</div>
</body>
</html>
css两端对齐,通过margin负值、justify、space-between、column-count等多种方式来实现css的两端对齐。
flex布局(Flexible Box)是对界面css盒模型的一个优化,适应不同尺寸的屏幕,被定义flex的容器可以控制子元素的排列方向和大小,能够用更简单清晰的代码来完成复杂的布局。
在我们的实际开发中,经常会遇到页面中需要悬浮效果,本文将介绍通过fixed的实现,以及通过原生Js实现滚动到一定位置,实现div的悬浮
CSS中Grid是一种二维网格式布局方式,Grid是为了解决二维布局问题而创建的CSS模块。使用Gird的好处,Gird在浏览器的兼容性,Grid布局的示例源码...
flex常用布局:经典的上-中-下布局。在上-中-下布局的基础上,加了左侧定宽 sidebar。左边是定宽 sidebar,右边是上-中-下布局。还是上-中-下布局,区别是 header 固定在顶部,不会随着页面滚动。左侧 sidebar 固定在左侧且与视窗同高,当内容超出视窗高度时,在 sidebar 内部出现滚动条。
本文中,所有的图形都是在单个标签内实现的,大量使用了 CSS3 中的 ::before 、::after 伪元素,transparent 、border,多重线性与径向渐变,多重内外阴影,如果你的效果不尽人意,请尝试在 Chrome 浏览器下预览。
html实现用时间点来展示事件发生点来代替用table展示一条条数据,能够给人清晰、一目了然能够看清事情发生的过程,UI页面也显示的那么清晰。如何用css+html做出时间轴展示事件点的?
这篇文章主要整理一些关于基于jquery,实现横向/纵向时间轴的插件推荐:jquery.jqtimeline插件、timeline.js插件、Timeglider.js插件、Melon HTML5 、jQuery Timelinr、Timeline Porfolio
css可以通过为元素设置一个position属性值,position定位是指定位置的定位,以下为常用的几种:static(静态定位)、relative定位(相对定位)、absolute定位(绝对定位)、fixed(固定定位)、inherit定位
css圣杯布局思路:外面一个大div,里面三个小div(都是浮动)。实现左右两栏宽度固定,中间宽度自适应。中间栏优先渲染。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!