绝对位置和响应网格
absolute position and responsive grid
我想在网格单元格内给一些图像绝对位置。当我对图像使用绝对位置并为其父级(这是一个网格单元格)使用相对位置时,父级宽度变为零,因此图像消失。我可以通过将 min-width:100% 赋予图像父容器来修复它,但是当我减小浏览器的宽度并且网格变为 1 列时,我给父容器的背景消失了。我的问题是我可以用更好的方式修复它吗?
这是我想用这段代码做什么的图片 enter image description here 这是 codepen 中的代码:
enter link description here
代码在这里:提前致谢
.section-about{
padding:2rem;
background:gray;
}
.grid-2-col {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
justify-items: center;
}
.section-about__text{
background-color:green
}
.composition {
position: relative;
min-width: 100%;
background-color:red}
.composition__photo {
background-color: yellow;
width: 30%;
position: absolute;
}
.composition__photo--p1 {
top: 0.5rem;
left: 0.5rem;
}
<section class="section-about">
<div class="grid-2-col">
<div class="section-about__text">
<p class="paragraph">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam
impedit laudantium autem itaque eligendi asperiores aspernatur
quisquam nesciunt modi, nemo aliquam. Saepe molestiae numquam
vitae eveniet autem laborum voluptas maxime.
</p>
</div>
<div class="composition">
<img
class="composition__photo composition__photo--p1"
src=""https://images.unsplash.com/photo-1475669698648-2f144fcaaeb1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=870&q=80""
/>
</div>
</div>
</section>
像这样的事情怎么样?
https://codepen.io/panchroma/pen/qBpzPRX
重要的一点是:
- 你对图像使用 position: relative
- 然后你玩他们的最高值和左边值
- 您对这些顶部和左侧值使用相对单位,例如 %
- 我发现向 .composition 添加一些填充很有用,不过可能还有其他方法可以达到相同的结果
- 向图像添加 margin-bottom 帮助我解决了某些视口的布局问题
CSS
.section-about{
padding:2rem;
background:gray;
}
.grid-2-col {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
justify-items: center;
}
.section-about__text{
background-color:green
}
.composition {
position: relative;
/* min-width: 100%; */
background-color:red;
padding:5% 0 10%;
}
.composition__photo {
background-color: yellow;
width: 30%;
/* position: absolute; */
position: relative;
margin-bottom:30px;
}
.composition__photo--p1 {
top: 5%;
left: 5%;
}
.composition__photo--p2 {
top: 15%;
left: 5%;
}
.composition__photo--p3 {
top: 45%;
left: -45%;
}
我想在网格单元格内给一些图像绝对位置。当我对图像使用绝对位置并为其父级(这是一个网格单元格)使用相对位置时,父级宽度变为零,因此图像消失。我可以通过将 min-width:100% 赋予图像父容器来修复它,但是当我减小浏览器的宽度并且网格变为 1 列时,我给父容器的背景消失了。我的问题是我可以用更好的方式修复它吗? 这是我想用这段代码做什么的图片 enter image description here 这是 codepen 中的代码: enter link description here
代码在这里:提前致谢
.section-about{
padding:2rem;
background:gray;
}
.grid-2-col {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
justify-items: center;
}
.section-about__text{
background-color:green
}
.composition {
position: relative;
min-width: 100%;
background-color:red}
.composition__photo {
background-color: yellow;
width: 30%;
position: absolute;
}
.composition__photo--p1 {
top: 0.5rem;
left: 0.5rem;
}
<section class="section-about">
<div class="grid-2-col">
<div class="section-about__text">
<p class="paragraph">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quam
impedit laudantium autem itaque eligendi asperiores aspernatur
quisquam nesciunt modi, nemo aliquam. Saepe molestiae numquam
vitae eveniet autem laborum voluptas maxime.
</p>
</div>
<div class="composition">
<img
class="composition__photo composition__photo--p1"
src=""https://images.unsplash.com/photo-1475669698648-2f144fcaaeb1?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=870&q=80""
/>
</div>
</div>
</section>
像这样的事情怎么样? https://codepen.io/panchroma/pen/qBpzPRX
重要的一点是:
- 你对图像使用 position: relative
- 然后你玩他们的最高值和左边值
- 您对这些顶部和左侧值使用相对单位,例如 %
- 我发现向 .composition 添加一些填充很有用,不过可能还有其他方法可以达到相同的结果
- 向图像添加 margin-bottom 帮助我解决了某些视口的布局问题
CSS
.section-about{
padding:2rem;
background:gray;
}
.grid-2-col {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
justify-items: center;
}
.section-about__text{
background-color:green
}
.composition {
position: relative;
/* min-width: 100%; */
background-color:red;
padding:5% 0 10%;
}
.composition__photo {
background-color: yellow;
width: 30%;
/* position: absolute; */
position: relative;
margin-bottom:30px;
}
.composition__photo--p1 {
top: 5%;
left: 5%;
}
.composition__photo--p2 {
top: 15%;
left: 5%;
}
.composition__photo--p3 {
top: 45%;
left: -45%;
}