我正在创建一个电子邮件模板 - 当然是使用表格。
我在p
中有一个舍入的td
元素,为了垂直对齐它的内容,我使用了display: table-cell
属性。
现在的问题是,即使使用td
margin: 0 auto
中的圆圈也不再对齐<table>
<tr>
<td class="circle">
<p><b>12</b><br/>views</p>
</td>
</tr>
</table>
请参阅jsfiddle
HTML:
td {
width: 140px;
}
table td.circle p {
margin: 0 auto;
height: 70px;
width: 70px;
background-color: rgb(92, 177, 251);
border-radius: 50%;
text-align: center;
display: table-cell;
vertical-align: middle;
}
的CSS:
gem 'pg'
如何在不使用电子邮件不支持的额外定位黑客的情况下居中对齐圆圈?
答案 0 :(得分:3)
您需要在td
内添加一个元素,因为您无法margin: 0 auto
使用table-cell
。工作代码位于以下代码段中:
td {
background-color: gray;
width: 140px;
}
table td.circle div {
background-color: rgb(92, 177, 251);
border-radius: 50%;
color: white;
font-size: 14px;
text-align: center;
display: table;
margin: 0 auto;
height: 70px;
width: 70px;
}
table td.circle p {
display: table-cell;
vertical-align: middle;
}
&#13;
<table>
<tr>
<td class="circle">
<div>
<p>
<b>12</b>
<br/>
views
</p>
</div>
</td>
</tr>
</table>
&#13;
答案 1 :(得分:1)
在td中添加align=center
以使内部元素居中,这里是更新的fiddle
答案 2 :(得分:0)
Do you need likee this
you can see the link: https://jsfiddle.net/gwmqrv8w/2/
Html code here
<table>
<tr>
<td align="center" class="circle">
<p>
<b>12</b>
<br/>
views
</p>
</td>
</tr>
</table>
Css code here:
td {
background-color: gray;
width: 140px;
}
table td.circle p
{
margin: 0 auto;
height: 70px;
width: 70px;
background-color: rgb(92, 177, 251);
border-radius: 50%;
color: white;
font-size: 14px;
text-align: center;
display: table-cell;
vertical-align:middle;
}
答案 3 :(得分:0)
table td.circle p {
margin: 0 auto;
height: 70px;
width: 70px;
background-color: rgb(92, 177, 251);
border-radius: 50%;
color: white;
font-size: 14px;
text-align: center;
display: table-cell;
vertical-align: middle;
position: relative;
left: 31px;
}
在该类中添加css - table td.circle p {position:relative;左:31px; }
答案 4 :(得分:0)
如果您稍微修改HTML,则可以结合使用flexbox和table-cell:
.wrapper{
display: flex;
flex-direction: row;
}
.digit{
display: table-cell;
vertical-align: middle;
}
.text{
display: inline;
}
<div class="wrapper">
<div class="number">
<div class="digit">1</div>
</div>
<div class="text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec id justo posuere ex pharetra euismod bibendum vel nunc. Donec pharetra ipsum sit amet augue ornare, non sodales leo dapibus. Nunc mollis sodales diam, accumsan
suscipit justo dignissim vitae. Nunc ultrices a elit nec hendrerit. Cras tempor elit quis nulla scelerisque aliquet. Nulla efficitur ac purus vitae porttitor. Morbi commodo efficitur ornare. Curabitur a ipsum dapibus erat iaculis finibus. Nullam dui nulla,
viverra id laoreet eget, fringilla ac orci. Nulla iaculis enim vitae dui congue accumsan. Fusce cursus justo non quam sodales blandit
</div>
</div>
答案 5 :(得分:-1)
表格单元格中的vertical-align默认为“middle” 因此,无需添加此属性。无论如何,如果您希望文本水平对齐中心,您应该尝试在HTML代码中使用以下属性,它将无需额外定位即可使用:
<td align="center">something</td>