CSS里,我在DIV里放了个<img>和<p>标签,为什么父元素DIV用了line-height:都不会垂直居中呢?

还有<p>标签用了display:inLine-block;为什么不直接贴着父元素DIV,而是向下动了一点,而且P标签用Margin-top也没有作用,根本不会动<!DO... 还有<p>标签用了display:inLine-block;为什么不直接贴着父元素DIV,而是向下动了一点,而且P标签用Margin-top也没有作用,根本不会动<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title>垂直对齐</title><style>*{ padding:0; }#nav {width:400px;height:200px; background-color: red;margin:0 auto; lineheight:200px;}#nav img{margin-top:-10px; } #nav p { display: inline-block;margin-top:-20px;}</style></head><body><div id="nav"><img src="楼宇对讲/img/seach.png" alt="seachlogo"/><p>这是一段文字</p></div></body></html> 展开
 我来答
张恺阳
2017-04-14 · 知道合伙人软件行家
张恺阳
知道合伙人软件行家
采纳数:166 获赞数:532
开发过各种类型网站及APP等,如有相关问题可以随时向我提问。

向TA提问 私信TA
展开全部

是因为在同一行有一个大图片,把文字跟“撑”下去了。要让图片元素和p元素同时垂直居中才可以。

帮你做了一个案例。代码如下:

HTML:

<div>
    <img src="Felix.jpg"><p>这是测试文字</p>
</div>

默认情况下效果:

给img,p加垂直居中后的效果:


增加的CSS代码:

img, p{
    vertical-align: middle;
}
叶落红尘3
2017-04-14 · TA获得超过7460个赞
知道大有可为答主
回答量:5567
采纳率:50%
帮助的人:882万
展开全部
谁说line-height就是垂直居中呢?这只是行高而已
追问
一般不是用Line-height就可以将父元素内的元素垂直居中吗?
追答
不是 ,行高是行高,两者不要混淆,因为你放了图片了,显示不了想要的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王国的诺亚
2019-10-13
知道答主
回答量:2
采纳率:0%
帮助的人:1477
展开全部
行高是对单行文本才起作用,img不是单行文本,如果你弄p,a这些单行的就you效果了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式