使div里的img垂直居中,为什么要在img标签的前面插入一对空标签

html代码:<divclass="music-mv"><span></span><imgsrc="../images/mv.png"></div>css里设置了.mus... html代码:
<div class="music-mv" >
<span> </span>
<img src="../images/mv.png">
</div>
css 里设置了
.music-mv{
line-height: 55px;
}
图片本身高度为24px
不加 <span> </span> 图片是这样的

加上之后就垂直居中了

这是为什么?求解释!
我把<span> </span>放在后面,像这样
<div class="music-mv" >
<img src="../images/mv.png">
<span> </span>
</div>
也是居中效果。
展开
 我来答
windblast
推荐于2017-12-15 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13624
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
从 css 里,只看到设置 行高为 55px,并没有看到垂直居中代码。

你上面所称加 空行 就居中,据个人理解,应该是整个 DIV 的宽度刚好被两个元素(空行和图片)填满了,看起来是居中了。

从第1个图与第2个图的比较,比较明显:加了个空行后,下面的图片等于向下移动了位置,刚好使得图片到了中间的位置。
追问
是应该 占了他的位置吗? 我把 放在后面,
也是居中效果。
我曾设置了 line-height: 55px;然后
.music-mv{
vertical-align:middle;
} 都没有居中效果,在审查元素里看整个div的没看见显示行高为55px, 显示的是图片的高度24px.
加上了后就显示出行高为55px. 这一点让我不知道是为什么
追答

据有关资料:line-height 只对文字起作用,对于图片时失效。根据CSS手册,line-height 行高指的是 文本 行的基线间的距离。


以下是 DIV 中 IMG 居中(水平+垂直)的示例,供参考:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style>
.ss
{
display: table-cell;
vertical-align:middle;
text-align:center;
*display: block;
*font-size: 175px;
*font-family:Arial;
width:200px;
height:200px;
border: 1px solid #c9c9c9;
}

.ss img
{
vertical-align:middle;
}
</style>
</head>
<body>
<div class="ss"><img src="tttt.png"></div>
</body>
</html>


运行效果图:


顺便提一句,依照你的代码,没看到居中的效果。

HoLee1997
2015-03-20 · TA获得超过1961个赞
知道大有可为答主
回答量:2557
采纳率:84%
帮助的人:981万
展开全部
那个span标签相当于就是个占位符了,把上面的空间给抢了,图片就只能往下移了,所以就实现了居中效果
追问
但是我把 放在后面,像这样

也是居中效果。
追答
刚刚做了实验,发现我用你的方法是无法达到居中效果的,所以你的是什么情况我也不是很清楚了。不过我个人是习惯是只要能达到目的就是OK的,其他的也不会怎么多想了。好好做吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式