头闻号

佛山市玫伊兰日用品有限公司

其他皮肤用化学品|沐浴液|其他类型日用化学品|广告促销礼品|护肤膏霜|家居用品加工

首页 > 新闻中心 > 科技常识:css vertical
科技常识:css vertical
发布时间:2024-11-17 14:28:11        浏览次数:4        返回列表

今天小编跟大家讲解下有关css vertical-align对齐规则 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关css vertical-align对齐规则 的相关资料,希望小伙伴们看了有所帮助。

起作用的前提条件

只能应用于内联元素以及 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:inline-block和baseline

vertical-align 属性的默认值 baseline 在文本之类的内联元素那里就是字符 x 的下 边缘,对于替换元素则是替换元素的下边缘。但是,如果是 inline-block 元素则规则要 复杂了:一个 inline-block 元素,如果里面就是没有图文内容,或者 overflow 不是 visible, 则该元素的基线就是其 margin 底边缘;否则其基线就是元素里面最后一行内的图文的基线。 见demo :inline-block元素的vertical-align.html

vertical-align:middle实现垂直居中

内联元素:元素的垂直中心点和行框盒子基线往上 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; /*vertical-align: top; /*vertical-align: bottom; 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>

来源:爱蒂网