我正在使用CSS网格创建这样的简单3列布局...
.container {
display:grid;
grid-template-columns:1fr 1fr 1fr;
}
.col1 {
background:red;
text-align:center;
}
.col2 {
background:yellow;
text-align:center;
}
.col3 {
text-align:center;
background:green;
}
<div class="container">
<div class="col1">
Column 1
</div>
<div class="col2">
<img src="https://via.placeholder.com/150">
</div>
<div class="col3">
Column 3
</div>
</div>
我正在尝试进行一些更改,以使中心div仅与其包含的图像一样宽,然后col1
和col2
拉伸以填充剩余的空间。
有人举个例子可以告诉我吗?
答案 0 :(得分:4)
将grid-template-columns
更改为1fr auto 1fr
-请参见下面的演示
.container {
display: grid;
grid-template-columns: 1fr auto 1fr;
/* changed */
}
.col1 {
background: red;
text-align: center;
}
.col2 {
background: yellow;
text-align: center;
}
.col3 {
text-align: center;
background: green;
}
img {
display: block; /* remove inline element "space" below image */
}
<div class="container">
<div class="col1">
Column 1
</div>
<div class="col2">
<img src="https://via.placeholder.com/150">
</div>
<div class="col3">
Column 3
</div>
</div>
答案 1 :(得分:1)
grid-template-columns:1fr auto 1fr;
在这里,请使用auto
代替1fr
作为居中的div。
答案 2 :(得分:0)
尝试以下代码段。
.container {
display:grid;
grid-template-columns:1fr auto 1fr;
}
.col1 {
background:red;
text-align:center;
}
.col2 {
background:yellow;
text-align:center;
}
.col3 {
text-align:center;
background:green;
}
<div class="container">
<div class="col1">
Column 1
</div>
<div class="col2">
<img width="300px" height="300px" src="https://via.placeholder.com/150">
</div>
<div class="col3">
Column 3
</div>
</div>