我试图将我的两个块向左对齐,最后一个向右对齐,但它向下对齐。我该如何接受呢?
想法是第一行有2个div(可以是div1和div3),第二行有div 2
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
text-align: left;
}
.container div:last-child {
text-align: right;
}
<div class="container">
<div>Div 1</div>
<div>Div 2</div>
<div>Div 3</div>
</div>
答案 0 :(得分:3)
假设您想让所有三个元素都在相同行中,则需要使用inline-block
将元素转换为display: inline-block
元素,然后将float
转换为right
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
}
.container div {
display: inline-block;
}
.container div:last-child {
float: right;
}
的最后一个元素:
<div class="container">
<div>Div 1</div>
<div>Div 2</div>
<div>Div 3</div>
</div>
width
如果您想在第一行上添加一个元素,然后在第二行上添加两个元素,则需要为每个元素提供50%
中的float
,第二个元素left
float
到right
的第三个元素。您也可以选择text-align
right
的第三个元素。您还需要overflow
容器。
这可以在下面看到:
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
overflow: auto;
}
.container div {
display: block;
width: 50%;
}
.container div:nth-of-type(2) {
float: left;
}
.container div:last-child {
float: right;
text-align: right;
}
<div class="container">
<div>Div 1</div>
<div>Div 2</div>
<div>Div 3</div>
</div>
如果要在第一行上包含两个元素,然后在第二行上包含一个元素,则需要为每个元素赋予width
中的50%
,第一个元素float
left
到float
的第二个元素。 (可选)您也可以将right
的第二个元素text-align
。您还需要right
容器。
这可以在下面看到:
overflow
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
overflow: auto;
}
.container div {
display: block;
width: 50%;
}
.container div:nth-of-type(1) {
float: left;
}
.container div:nth-of-type(2) {
float: right;
text-align: right;
}
答案 1 :(得分:0)
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
text-align: left;
}
.container div:nth-child {
float: left;
position: relative;
display: inline-block;
}
.container div:last-child {
float: right;
}
<div class="container">
<div>Div 1</div>
<div>Div 2</div>
<div>Div 3</div>
</div>
答案 2 :(得分:0)
尝试使用此CSS:
{{1}}
答案 3 :(得分:0)
您可以在此处使用display flex。给margin-left:auto到最后一个div,会将项目向右移动,因为可用的可用空间将分配给左维度。您可以在顶部,右侧,底部或左侧等任何方向上对边距自动应用。
body{
box-sizing:border-box;
}
.container {
width: 100%;
border: 2px solid #ddd;
padding: 1em;
display:flex;
flex-direction:row;
}
.container1 {
display:flex;
flex-direction:column;
}
.container div:last-child {
margin-left: auto
}
<div class="container">
<div class="container1">
<div>Div 1</div>
<div>Div 2</div>
</div>
<div>Div 3</div>
</div>
答案 4 :(得分:0)
如果您更喜欢使用display: flex
,并且发现伪元素的使用有点混乱,
<div style="display: flex; flex-wrap: wrap;">
<div style="flex: 0 0 50%; max-width: 50%;">
<h3 style="background: lavenderblush">Div 1</h3>
</div>
<div style="flex: 0 0 50%; max-width: 50%; order: 3">
<h3 style="background: pink">Div 2</h3>
</div>
<div style="flex: 0 0 50%; max-width: 50%;">
<h3 style="background: lightgoldenrodyellow">Div 3</h3>
</div>
</div>