我正在尝试使用CSS网格将两列居中,但是将第一列左对齐,该列由max-width
值指定。这是所需的输出应该是这样的:
我尝试将整个容器包装成固定的宽度,在相应的div上添加margin-left / right:auto并对齐项目,但对我来说似乎没有任何作用。
.grid-container>div {
display: flex;
flex-direction: column;
border: 1px solid purple;
}
.item1 {
grid-area: item1;
margin-right: auto;
}
.item2 {
margin-top: auto;
grid-area: item2;
}
.item3 {
margin-bottom: auto;
grid-area: item3;
}
.item2,
.item3 {
margin-right: auto;
max-width: 300px;
background: white;
}
h2,
p {
font-size: 14px;
}
.object {
height: 200px;
width: 300px;
background: green;
margin: 20px 0px;
}
.grid-container {
display: grid;
grid-template-areas: 'item1' 'item2' 'item3';
justify-items: center;
}
.grid-container {
display: grid;
grid-template-areas: 'item2 item1' 'item3 item1';
background-color: orange;
}
<div class="grid-container">
<div class="item1">
<div class="object">
</div>
</div>
<div class="item2">
<h2>Title</h2>
</div>
<div class="item3">
<p style="margin: 0px;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</p>
<p>
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
</div>
</div>
答案 0 :(得分:2)
在容器的两侧创建一组空列,以使内容居中对齐。
hdfs
.grid-container {
display: grid;
grid-template-columns: 1fr auto auto 1fr; /* new */
grid-template-areas:
'. item2 item1 .' /* adjusted; added empty columns */
'. item3 item1 .';
background-color: orange;
}
.grid-container>div {
display: flex;
flex-direction: column;
border: 1px solid purple;
}
.item1 {
grid-area: item1;
margin-right: auto;
}
.item2 {
margin-top: auto;
grid-area: item2;
}
.item3 {
margin-bottom: auto;
grid-area: item3;
}
.item2,
.item3 {
margin-right: auto;
max-width: 300px;
background: white;
}
h2,
p {
font-size: 14px;
}
.object {
height: 200px;
width: 300px;
background: green;
margin: 20px 0px;
}
.grid-container {
display: grid;
grid-template-areas:
'. item2 item1 .'
'. item3 item1 .';
background-color: orange;
grid-template-columns: 1fr auto auto 1fr;
}