使 div 中的元素垂直居中对齐

Posted

技术标签:

【中文标题】使 div 中的元素垂直居中对齐【英文标题】:make the element in the div align vertically middle 【发布时间】:2011-11-22 20:24:03 【问题描述】:

这是一个活生生的例子:

http://jsfiddle.net/NjnAF/

div#con是搜索结果面板,我希望搜索项以列表方式显示,带有图标和文字。

现在我不能让图标垂直居中对齐,也不能让文字成为图像中心的“1”“2”。

有什么建议吗?

【问题讨论】:

【参考方案1】:

我用过:

div.item div.img 
   float: left;
   width: 22px;
   height: 25px;
   background-image: url('http://i.stack.imgur.com/NpSHB.gif');
   background-repeat: no-repeat;
   background-position: center left;
   text-align: center;
   vertical-align: middle;

我已经更新了fiddle。这是你需要的吗?

【讨论】:

【参考方案2】:

你需要修改 CSS

    div.item div.img text-align:center;
                      margin-top:2px;  /*can change this according to your need */
                    

添加这两个属性。垂直对齐不起作用。小提琴http://jsfiddle.net/NjnAF/2/

【讨论】:

【参考方案3】:

使用 line-height - 垂直对齐:块级元素,如 div 对垂直对齐没有任何影响。您将需要使用 line-height 或使用绝对定位与 div 作为相对。

【讨论】:

或者使用:background-position:left 2px; 我会选择这个作为答案。

以上是关于使 div 中的元素垂直居中对齐的主要内容,如果未能解决你的问题,请参考以下文章

如何让div中的行内元素的文字垂直居中

css如何使div里面的文字垂直对齐

用CSS如何实现单行图片与文字垂直居中

使用vertical-align在div中垂直居中按钮

如何让div垂直居中(23种方法总结)

垂直居中和居中对齐文本并为 div 添加边距?我迷路了[重复]