我试图将文字放在两个相邻的divs
中心,我无法理解我做错了什么。
基本上我有2 divs
每个占据窗口的50%。第一个div包含一个图像(我成功居中),我试图将文本置于第二个div中。所以这是我的Fiddle,我正在使用以下css:
.thumbnail-descr{
text-align: center;
min-height: 10px;
display: table-cell;
vertical-align: middle;
font-size: 26pt;
color: #bbb;
}
没有必要拥有原始的DOM结构或CSS(主要的是让2 divs
获取所有宽度,一个拥有居中的图像,另一个拥有文本。我怎样才能实现它? / p>
答案 0 :(得分:1)
我从这个例子中理解的是你想要垂直居中"描述"。有几个技巧可以做到:
line-height
。例如,请参阅此Fiddle:
.square{
width: 45%;
height: 200px;
border: 3px dotted #ddd;
display:inline-block;
margin: 0 10px 0 10px;
line-height: 200px;
}
但请考虑一些事项:
<强>更新强>
我忘记了另一个选项,因为你在另一个中有一个div,你可以在父级上使用position: relative
,并使用top: 50%
和负上边距为孩子使用绝对位置。您需要将上边距设置为子高度的一半。 (那是模态通常如何居中):
.square { position: relative; /*..*/ }
.thumbnail-descr{
position: absolute;
top: 50%;
margin-top: -10px;
/*...*/
}
请参阅http://jsfiddle.net/diegof79/M4fKM/1/
你也问过为什么你的解决方案不起作用......这有助于理解原因:http://phrogz.net/css/vertical-align/index.html
答案 1 :(得分:0)
在继续为您提供解决方案之前,您可以使用更少的代码获得完全相同的结果,为这么少的内容提供如此多的类只会导致巨大的代码。
你给text-align:center的span类没有填满父级的整个宽度,那么,因为它的宽度等于文本所以它会在哪里居中?
你可以将'text-align:center'放到span的父级,square类,但我会使用不同的方法。
答案 2 :(得分:0)
不确定是否需要跨度。 如果删除span标记并对div样式使用相同的css,或者只是将span类名称添加到div类名称 - 就可以完美地运行。
答案 3 :(得分:0)
我认为问题的发生是因为描述div中的宽度 试试这个建议:
使用div进行扭曲,div将使用thumbnail-descr类
<div class='square'>
<div class="thumbnail-descr"><span>Descr</span><div>
</div>
更新thumbnail-descr
.thumbnail-descr{
text-align: center;
min-height: 10px;
background-color:red;
vertical-align: middle;
font-size: 26pt;
color: #bbb;
width:100%;
}
希望这个帮助