浅谈css中vertical-align和line-height的用法
(1)、将一个图片放入一个div块中,div块背景颜色设置为aquamarine。将会发现图片与div块下边沿有一定间隙。
实例:

代码如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- }
- img {
- width: 300px;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- </div>
- </body>
- </html>
(2)、在div块的图片后面放入一个span标签,内容为xxxx!,会发现span标签内的元素与图片是在底线对其的,当给span加一个背景时,可以看到图片底部是与字母x底部对齐的。
实例:

实例:放大之后可以很明显的看出来!

代码如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- }
- img{
- width: 300px;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
为什么会出现这种现象呢?
答:原因是行内元素默认都受vertical-align(垂直对齐方式)和line-height(行高)的影响,而vertical-align默认的对齐方式是baseline,即基线对齐。这个基线就是span标签里的字母X的下边沿,故图片底部是与字母底部相对齐的(不是与span标签的背景对齐)。又因为字母本身有line-height(行高)值,所以span标签加上背景后比字母要高一些。
解决方法:(四种方法任意一种都可解决该问题)
(1)、将整个div内的font-size设置为0;
(2)、将图片img变为块级元素,即设置其为display:block;
(3)、给div设置一个行高(值尽量小些),设置为line-height:5px;
(4)、设置图片img垂直对齐方式vertical-align,值为top/middle/bottom任意一个都可以(为了覆盖默认的值baseline);
效果如下:

完整代码如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- /*line-height: 5px;*/
- /*font-size: 0;*/
- }
- img{
- width: 300px;
- /*display: block;*/
- vertical-align: bottom;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
2、图片垂直居中的问题
在div和img中添加以下属性及属性值即可实现图片在div块中的垂直居中。
- <style type="text/css">
- ...
- div{
- line-height: 500px;
- font-size: 0px;
- }
- img{
- vertical-align: middle;
- }
- ...
- <style>

代码如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>css中vertical-align和line-height的用法</title>
- <style>
- *{
- margin: 0px;
- padding: 0px;
- }
- div{
- background-color: aquamarine;
- line-height: 500px;
- font-size: 0px;
- }
- img{
- width: 300px;
- vertical-align: middle;
- }
- span{
- background-color: azure;
- }
- </style>
- </head>
- <body>
- <div>
- <img src="./131796750659172.jpg" alt="picture">
- <span>xxxxx!</span>
- </div>
- </body>
- </html>
以上这篇浅谈css中vertical-align和line-height的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
原文地址:http://www.cnblogs.com/gaotenglong/archive/2016/07/26/5708793.html
相关文章
- 本文向大家介绍一下CSS vertical-align 属性的用法,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。2014-10-22
css中图片于文本的基线对齐与vertical-align属性设置
默认的情况是图片顶对齐而文字底对齐,通过设置css属性可以使得图片与文字对齐,接下来为大家详细介绍下设置各对象的vertical-align属性,感兴趣的朋友可以参考下哈2013-04-02css 垂直对齐 css中vertical-align属性(垂直对齐)的使用说明
这两天写个页面css的时候用到了vertical-align属性,使用过程中踩到了坑,因此整理了一些,以备不时之需,感兴趣的朋友可以了解下哦2013-01-09css vertical-align属性的一些理解与认识(二) text-top篇
vertical-align是个相当复杂与精深的属性,所理解的一些内容多少会有不准确之处,本集内容主要讲讲我对在一般情况下vertical-align其作用的理解,以及vertical-align相关的2013-01-07css vertical-align属性的一些理解与认识(一)
就说说我对vertical-align属性的一些理解吧,纯属个人见解,若有不准确之处还望见谅,若有不准确之处还望见谅。还有,vertical-align属性牵扯到的知识实在是太多了,不是一2013-01-07- 网页制作Webjx文章简介:CSS实例:vertical-align属性让网页层居中. vertical-align属性使网页层居中 网页源代码如下: <html> <2009-04-02

深入理解CSS中的vertical-align属性和基线问题
这篇文章主要介绍了深入理解CSS中的vertical-align属性和基线问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考2020-04-03



最新评论