CSS vertical-align 属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS vertical-align 属性相关的知识,希望对你有一定的参考价值。
参考技术ACSS vertical-align 属性控制在一行上相邻设置的元素如何对齐。
vertical-align — 默认值。顾名思义,它将元素与父元素的基线对齐。
top — 将元素与一行中最高元素的顶部对齐。
bottom — 将元素与底部对齐,元素处于同一级别。
middle — 将元素与其父元素的中心对齐。
text-top — 使用其父元素行中最高字体的顶部对齐元素。
text-bottom — 使用其父元素行中最高字体的底部对齐元素。
sub — 将元素对齐到其父元素的基线下标。它的行为更像 <sub> 标签。
super — 将元素与父元素的基线上标对齐。它的行为更像 <sup> 标签。
将元素与给定单位对齐。正数将使元素与基线上方对齐,负值将使元素与基线下方对齐。
这些值可以是任意长度单位: px , em , % ,等。
initial — 将元素的对齐方式设置为其默认值,即 baseline 。
inherit — 将元素的对齐方式设置为其父元素的值。
vertical-align 属性可以直接应用用于表格单元格,可以将对齐单元格内的内容。重要的一点是,它能很好的兼容浏览器在显示效果上的一致性。
效果如下:
vertical-align 属性不允许您在另一个元素中 “垂直居中” 一个元素。我们更多的会使用 Flexbox 来做垂直居中。
但是,您可能不知道,有一个 ghost 技巧可以帮助您垂直居中一个元素。
效果如下:
CSS学习31-vertical-align属性应用
vertical-align 属性应用
CSS 的 vertical-align 属性使用场景:经常用于设置图片或者表单 ( 行内块元素 ) 和文字垂直对齐。
官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。
语法:
vertical-align: baseline | top | middle | bottom;
值 | 描述 |
---|---|
baseline | 默认。元素放置在父元素的基线上。 |
top | 把元素的顶端与行中最高元素的顶端对齐。 |
middle | 把此元素放置在父元素的中部。 |
bottom | 把元素的顶端与行中最低的元素的对齐。 |
1. 图片、表单和文字对齐
图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。
此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle 就可以让文字与图片垂直居中对齐了。
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>利用vertical-align实现图片文字垂直居中对齐</title>
<style>
img {
/* vertical-align: bottom; */
/* 让图片和文字垂直居中 */
vertical-align: middle;
/* vertical-align: top; */
}
textarea {
vertical-align: middle;
}
</style>
</head>
<body>
<img src="images/ldh.jpg" alt=""> 刘德华
<br>
<textarea name="" id="" cols="30" rows="10"></textarea> 请您留言
</body>
</html>
运行结果
2. 解决图片底部默认空白缝隙问题
bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐。
主要的解决办法有两种:
- 给图片添加
vertical-align: baseline | top | middle | bottom;
等。( 提倡使用的 ) - 把图片转换为块级元素
display: block;
示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片底侧空白缝隙解决方案</title>
<style>
div {
border: 2px solid red;
}
img {
/* vertical-align: bottom; */
display: block;
}
</style>
</head>
<body>
<div>
<img src="images/ldh.jpg" alt="">
</div>
</body>
</html>
运行结果
以上是关于CSS vertical-align 属性的主要内容,如果未能解决你的问题,请参考以下文章
[转]CSS vertical-align属性详解 作者:黄映焜