Css---vertical-align 属性的用法与应用
一、在页面布局里,居中问题是非常常见的!
1.有宽度的块级元素水平居中对齐,是margin:0 auto;
2.让文字居中对齐,是text-align:center;
而 vertical-align:垂直对齐,它只针对行内元素或者行内块元素
先看w3c的官方说明:
该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。
3.先理解下基线是什么
基线的位置并不是固定的:
在文本之类内联元素中,基线是字符x的下边缘位置
在像
img
元素中基线就是下边缘。在
inline-block
元素中,也分两种情况
如果该元素中有内联元素,基线就是最后一行内联元素的基线。
如果该元素内没有内联元素或者overflow不是visible,其基线就是margin的地边缘。
二:vertical-align 属性的用法
1. 在表单元格中,这个属性会设置单元格框中的单元格内容的对齐方式。
td {vertical-align: middle;}
2.该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。
案例一:
<!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>Document</title><style>.app {width: 200px;height: 196px;box-sizing: border-box;border: 1px solid red;}img {width: 100px;height: 100%;/* vertical-align: text-bottom; */}</style>
</head><body><div class="app"><img src="./1.jpg" alt=""> 文字gx</div>
</body></html>
运行结果:
造成文字超出盒子的原因是img标签的的基线是下边缘线,而文字的基线是字母x的下边缘线,如果我们想让文字不超出盒子,就可以利用vertical-align属性
该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。
在这里行内元素的基线就是字母x的下边缘线,该元素所在行的基线就是图片下边缘线
所以我们可以为该元素(img)设置vertical-align属性从而影响行内元素的基线(文字的基线)
img {width: 100px;height: 100%;vertical-align: text-bottom;}
给img增加vertical-align: text-bottom后会使文字的基线从字母x的下边缘线变为文字的下边缘线对齐img的基线(img的下边缘线)
运行结果:
案例二:
<!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>Document</title><style>.app {box-sizing: border-box;width: 400px;height: 400px;border: 2px solid red;/* display: table; *//* font-size: 0; */}.first {display: inline-block;width: 100px;height: 100px;background-color: red;/* vertical-align: middle; */}.second {display: inline-block;width: 30px;height: 30px;background-color: pink;}</style>
</head><body><div class="app"><div class="first"></div><div class="second"></div></div>
</body></html>
给两个div设置属性 display: inline-block后,两个盒子的基线都是盒子的下边缘线,如果我想让第二个div向上移动,就可以通过给第一个div设置 vertical-align: middle从而影响第二个div的基线,使第二个div向上移动
vertical-align: middle的意思是使第二个div的基线对齐第一个div的中垂线
.first {display: inline-block;width: 100px;height: 100px;background-color: red;vertical-align: middle;}
执行后:
三:vertical-align 属性应用
<!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>Document</title><style>ul {border: 2px solid red;}li {display: inline-block;height: 200px;width: 50px;background-color: pink;}</style>
</head><body><ul><li></li><li></li><li></li></ul></body></html>
执行结果:
可以看到为每个li设置display: inline-block后,在水平排列了,但是底部距离有一点间隙,这就可以为li在垂直方向上设置vertical-align: middle
当只在第一个li设置vertical-align: middle时
可以看到底部间隙已经消失了,但是排版错了,这时可以为每个li都设置vertical-align: middle
li {display: inline-block;height: 200px;width: 50px;background-color: pink;vertical-align: middle;}
运行:
四:总结:
1.vertical-align:垂直对齐,它只针对行内元素或者行内块元素和表单单元格框中的单元格内容的对齐方式。
2.该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐(即给该元素设置vertical-align后,会影响这一行元素的基线在垂直方向对齐该元素)
Css---vertical-align 属性的用法与应用相关推荐
- html border 边距,css中border-sizing属性的用法
这篇文章给大家介绍的文章内容是关于css中border-sizing属性的用法,有很好的参考价值,希望可以帮助到有需要的朋友. box-sizing用于更改用于计算元素宽度和高度的默认的 CSS 盒子 ...
- dw css定位,css关于position属性的用法详解(绝对定位和相对定位的混淆)
挺久没用,有点忘了关于position这个属性的用法,导致在练手的时候又犯了跟最开始新手才会犯的错误,那就是absolute和relative的用法. 在此首先看一下官方对这两个属性值的解释: pos ...
- CSS的before属性的用法
CSS的before属性的用法 上两个例子来解释before属性如何使用: 1.在元素前添加文本 p:before {content:"台词:"; } 2.在元素前添加形状 p:b ...
- android studio table居中代码_html table表格标签内容如何居中显示?表格的align属性的用法介绍...
本篇文章主要的介绍了关于HTML 表格table标签的居中使用,还有关于align属性在table表格标签中的使用方法,可以帮助表格对齐和表格中的文本对齐.接下来让我们来看看这篇文章吧. 首先我们先来 ...
- html table表格标签内容如何居中显示?表格的align属性的用法介绍
本篇文章主要的介绍了关于HTML 表格table标签的居中使用,还有关于align属性在table表格标签中的使用方法,可以帮助表格对齐和表格中的文本对齐.接下来让我们来看看这篇文章吧. 首先我们先来 ...
- html5中没有align属性,HTML标签align属性的用法问题
HTML中表格.文字.图像等元素都有使用到align属性,align属性主要是影响设置元素的水平对齐方式,给表格.文字.及图像等元素设置align属性,其表现形式是不一致的. 给表格元素设置align ...
- HTML中z index属性是用来,css中z-index 属性与用法详解
Z-index属性决定了一个HTML元素的层叠级别.元素层叠级别是相对于元素在Z轴上(与X轴Y轴相对照)的位置而言.一个更高的Z-index值意味着这个元素在叠层顺序中会更靠近顶部.这个层叠顺序沿着垂 ...
- html页边距为负值,css中的padding属性可以为负值吗?css中padding属性的详解
关于css盒模型中的内边距padding属性的详细介绍,还有新手常犯的一个错误,内边距padding属性真的能写入负值.这个答案在文章的最后,现在就让我们一起来看这篇文章吧 首先我们介绍的是第一个问题 ...
- HTML5中margin属性应用,CSS中margin属性及其使用探究
本文向大家描述一下CSS中margin属性的用法,主要包括其属性,使用过程中会遇到的问题,以及一些高级应用等内容,相信本文介绍一定会让你有所收获. CSS中margin问题及使用 margin属性为C ...
- css网页布局中文字排版的属性和用法
前段时间,学习了几个大的网站的图文混排的方法.今天总结下, css网页布局中文字排版的相关属性以及用法 .包括:设定字体.颜色.大小.段落空白,首字下沉.首行缩进.中文字的截断.固定宽度词内折行(wo ...
最新文章
- 揭秘vue——vue-cli3全面配置
- 计算机ui答辩,KGUT1027 班级UI设计第一阶段成长答辩开始啦
- LINUX内核经典面试题30道及解答
- 怀旧服野外pvp最多的服务器,魔兽怀旧服:最想要去的服务器,野外PVP很“传统”,很欢乐!...
- 价值观对做产品的三点影响
- 关于ibatis.net 和 Nhibernate的选择
- 11位大咖带你玩转WebRTC开发(内附PPT资料下载)
- Failed to import pydot
- unity3d 随机物体生成器 工具
- 中国内窥镜光学物镜市场趋势报告、技术动态创新及市场预测
- 利用Python制作微信跳一跳外挂,又来带你装一波X!
- 【成功智慧】010.依靠忍耐度过困难时期
- JDK API 中英文版 在线版、下载地址
- matlab中除法的错误使用
- topsis法_topsis法量化多个评价指标,找出最优方案
- html登陆滑动验证,JavaScript实现登录滑块验证
- scara机器人运动学正逆解
- 我的面经——投行+咨询+外资银行
- WINDOWS 7、windows server 2008、VISTA激活排斥
- Python-Level1-day16:异常处理try-exceptraise语句,for迭代原理,深入手写创建迭代器;yield浅出使用生成器