如何左右对齐文本居中?
How can I left and right align text to center?
我正在尝试将大文本与页面中心的两侧对齐。例如:
Current Recommendation: Open
Current Status: Closed
但想象一下,文本居中且更大。
到目前为止,我能够完成此任务的唯一方法是使用 table,但我知道这不是一种现代的 Web 布局方法。这是 jsfiddle:https://jsfiddle.net/nyLLzy1m/3/
有没有办法在 HTML 和 CSS 中做到这一点而无需 table?我试过左右浮动的跨度,但文本一直向右或向左浮动,而不是中心的右侧或左侧。
p {
margin: 0;
}
<table cellpadding="0" cellspacing="0" width="100%" style="border: 1px;" rules="none">
<tbody>
<tr>
<td align="right" width="50%" style="padding-right: 5px;">
<p style="font-size: 20px;">Current Recommendation:</p>
</td>
<td align="left" width="50%" style="padding-left: 5px;">
<p style="font-size: 20px;">Open</p>
</td>
</tr>
<tr>
<td align="right" width="50%" style="padding-right: 5px;">
<p style="font-size: 20px;">Current Status:</p>
</td>
<td align="left" width="50%" style="padding-left: 5px;">
<p style="font-size: 20px;">Closed</p>
</td>
</tr>
</tbody>
</table>
它基本上是标签和值逻辑...实现此目的的方法是向标签添加宽度并将其中的文本右对齐,值可以跨度与文本左对齐.. 两者都向左浮动。
这与您对表所做的类似,但是您使用 label/span 或 dt dl dd,无论它是什么...适用相同的逻辑
您可以浮动 50% 宽度的 div。
<div style="width:50%; float:left; text-align:right;">Current Recommendation:</div>
<div style="width:50%; float:left;">Open</div>
<div style="width:50%; float:left; text-align:right;">Current Status:</div>
<div style="width:50%; float:left;">Closed</div>
您可以使用 display: flex;
:
.centered {
display: flex;
}
.centered .left {
text-align: right;
width: 50%;
}
.centered .right {
text-align: left;
width: 50%;
padding: 0 0 0 10px;
box-sizing: border-box;
}
<div class="centered">
<div class="left">
Current Recommendation:
</div>
<div class="right">
Open
</div>
</div>
<div class="centered">
<div class="left">
Current Status:
</div>
<div class="right">
Closed
</div>
</div>
您可以使用上面答案中所述的 display:flex;
。但是按照你的风格,我用浮点数创建了它。
查看更新后的 jsfiddle
代码:
.main {
width: 100%;
}
.first,
.second {
width: 50%;
float:left;
}
.first > p {
text-align: right;
}
.second > p {
text-align: left;
}
<div class="main">
<div class="first">
<p>
Current Recommendation: <br>
Current Status:
</p>
</div>
<div class="second">
<p>
Open <br>
Closed
</p>
</div>
</div>
希望对您有所帮助!
我正在尝试将大文本与页面中心的两侧对齐。例如:
Current Recommendation: Open
Current Status: Closed
但想象一下,文本居中且更大。
到目前为止,我能够完成此任务的唯一方法是使用 table,但我知道这不是一种现代的 Web 布局方法。这是 jsfiddle:https://jsfiddle.net/nyLLzy1m/3/
有没有办法在 HTML 和 CSS 中做到这一点而无需 table?我试过左右浮动的跨度,但文本一直向右或向左浮动,而不是中心的右侧或左侧。
p {
margin: 0;
}
<table cellpadding="0" cellspacing="0" width="100%" style="border: 1px;" rules="none">
<tbody>
<tr>
<td align="right" width="50%" style="padding-right: 5px;">
<p style="font-size: 20px;">Current Recommendation:</p>
</td>
<td align="left" width="50%" style="padding-left: 5px;">
<p style="font-size: 20px;">Open</p>
</td>
</tr>
<tr>
<td align="right" width="50%" style="padding-right: 5px;">
<p style="font-size: 20px;">Current Status:</p>
</td>
<td align="left" width="50%" style="padding-left: 5px;">
<p style="font-size: 20px;">Closed</p>
</td>
</tr>
</tbody>
</table>
它基本上是标签和值逻辑...实现此目的的方法是向标签添加宽度并将其中的文本右对齐,值可以跨度与文本左对齐.. 两者都向左浮动。
这与您对表所做的类似,但是您使用 label/span 或 dt dl dd,无论它是什么...适用相同的逻辑
您可以浮动 50% 宽度的 div。
<div style="width:50%; float:left; text-align:right;">Current Recommendation:</div>
<div style="width:50%; float:left;">Open</div>
<div style="width:50%; float:left; text-align:right;">Current Status:</div>
<div style="width:50%; float:left;">Closed</div>
您可以使用 display: flex;
:
.centered {
display: flex;
}
.centered .left {
text-align: right;
width: 50%;
}
.centered .right {
text-align: left;
width: 50%;
padding: 0 0 0 10px;
box-sizing: border-box;
}
<div class="centered">
<div class="left">
Current Recommendation:
</div>
<div class="right">
Open
</div>
</div>
<div class="centered">
<div class="left">
Current Status:
</div>
<div class="right">
Closed
</div>
</div>
您可以使用上面答案中所述的 display:flex;
。但是按照你的风格,我用浮点数创建了它。
查看更新后的 jsfiddle
代码:
.main {
width: 100%;
}
.first,
.second {
width: 50%;
float:left;
}
.first > p {
text-align: right;
}
.second > p {
text-align: left;
}
<div class="main">
<div class="first">
<p>
Current Recommendation: <br>
Current Status:
</p>
</div>
<div class="second">
<p>
Open <br>
Closed
</p>
</div>
</div>
希望对您有所帮助!