我试着画了4条垂直等距线,如图所示。当浏览器调整大小时,这些线会从容器中出来。我怎样才能让它不受浏览器大小的影响而留在容器中呢?我是CSS的新手。如果需要更多的细节,请告诉我。
.container {
width: 100%;
position: relative;
display: flex;
padding-right: 100px;
box-sizing: border-box;
}
.inner-container {
display: flex;
flex: 1;
position: relative;
}
.bar {
flex-grow: .8;
display: flex;
height: 20px;
background-color: lightblue;
}
.blackline {
width: 10px;
height: 20px;
background-color: black;
position: absolute;
z-index: 1;
margin-left: 100%;
}
.line {
width: 1px;
height: 100%;
position: absolute;
background-color: #000000;
margin-top: 2%;
}
.line1 {
left: 0%;
}
.line2 {
left: 30%;
}
.line3 {
left: 60%;
}
.line4 {
left: 89%;
}
<div class="container">
<div class="line line1"></div>
<div class="line line2"></div>
<div class="line line3"></div>
<div class="line line4"></div>
<div class="inner-container">
<div class="bar"></div>
<div class="blackline"></div>
</div>
</div>
预期的结果是在容器的起点绘制第一条线,在容器的终点绘制最后一条线,并且这两条线之间的距离相等。
所需结果
3条答案
按热度按时间3phpmpom1#
尝试为行添加父div并使用
Flex
属性。因此,您在所有响应窗口中获得相等的距离。以下是图像的示例代码。z4iuyo4d2#
这里我的尝试是利用flex的优势而不使用
position
。使用position:absolute
实际上打破了flex的地位。所以我重新构造你的容器和css,使其尽可能的少,以使语法达到你想要的结果。每个
.line
大小相等的神奇之处如下:这里有一个很好的参考,更好地理解flex:https://css-tricks.com/snippets/css/a-guide-to-flexbox/
不确定是不是你想要的,但希望有帮助~
x一个一个一个一个x一个一个二个x
cu6pst1q3#
我会在容器上使用margin而不是padding,并在内部容器flex上使用spacebeach(而不是绝对定位),这样就可以绝对地将行定位为1/3,最后一行使用right0