我了解一些基本的CSS,但是我目前正在努力实现以下4个元素的对齐。
我有2行,每行2个元素。在每一行中,左元素左对齐,右元素右对齐。
MediumSizedElement1.............................ShortEL2
VerryyyyyyyyyyLongElement3...........MediumSizedElement4
我已经达到了一般职位,但最大的困难是,ShortEL2项目喜欢使其自身与其下方的第4个元素对齐。
MediumSizedElement1..................ShortEL2...........
VerryyyyyyyyyyLongElement3...........MediumSizedElement4
请帮助我获得第一张照片。
答案 0 :(得分:1)
使用CSS网格进行救援!
.grid-host {
display: grid;
grid-template-columns: auto auto;
grid-template-rows: auto auto;
}
.grid-host :nth-child(even) {
text-align: right;
}
<div class="grid-host">
<div>MediumSizedElement1</div>
<div>ShortEL2</div>
<div>VerryyyyyyyyyyLongElement3</div>
<div>MediumSizedElement4</div>
</div>
答案 1 :(得分:0)
最明显的答案是float
和text-align
的组合,尽管具体答案可能取决于您的实际情况。一种选择是将每个元素放入类似div
的块类型标签中,并应用两种不同的样式。所以,你会有类似的东西。
HTML
<div class="left">MediumSizedElement1</div>
<div class="right">ShortEL2</div>
<div class="left">VerryyyyyyyyyyLongElement3</div>
<div class="right">MediumSizedElement4</div>
CSS
.left {
float: left;
text-align: left;
}
.right {
float: right;
text-align: right;
}
浮点数将使div
移到父元素的左侧和右侧,而text-align
s将使文本移到{{1}的左侧和右侧} s(如果您对它们应用了宽度,则可能需要-在您的示例中,看起来您可能会将右侧的两个元素设置为相同的宽度,因此文本在右对齐的情况下左对齐块,在文本右侧留出多余的空间。
答案 2 :(得分:0)
有两种简单的实现方法:
table
布局
table {
width: 100%;
}
tr>td:nth-child(2) {
text-align: right;
}
<table>
<tr>
<td>MediumSizedElement1</td>
<td>ShortEL2</td>
</tr>
<tr>
<td>erryyyyyyyyyyLongElement3</td>
<td>MediumSizedElement4</td>
</tr>
</table>
flexbox
.container {
display: flex;
justify-content: space-between;
}
div,p {
margin: 0;
}
<div>
<div class="container">
<p>MediumSizedElement1</p>
<p>ShortEL2</p>
</div>
<div class="container">
<p>VerryyyyyyyyyyLongElement3</p>
<p>MediumSizedElement4</p>
</div>
</div>
希望有帮助!