本文介绍如何利用CSS弹性布局(Flexbox)构建一个在各种屏幕尺寸下都能保持正方形的骰子。关键在于巧妙地运用父容器和子元素的CSS属性,确保骰子形状不受父容器大小变化的影响。

我们使用 HTML结构如下: 对应的SCSS样式代码: 立即学习“前端免费学习笔记(深入)”; 代码中,元素(骰子背景或阴影)和一个元素,中包含多个元素表示骰子上的点数。
.box {
max-width: 500px;
width: 100%;
border: 1px solid #000;
margin: auto;
position: relative;
border-radius: 10px;
img {
display: block;
width: 100%;
}
.list-wrap {
list-style: none;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-content: space-between;
li {
border-radius: 10px;
width: 30%;
height: 30%;
&.cur {
background-color: skyblue;
}
}
}
}
.box设置最大宽度和自适应宽度,并使用position: relative作为定位父元素。 .list-wrap使用position: absolute,覆盖在图片之上,并利用Flexbox的flex-wrap, justify-content和align-content属性,确保元素均匀分布在容器内。每个元素的宽高都设置为父容器的30%,保证骰子始终为正方形。元素的width: 100%;确保图片填满整个容器。 无论容器大小如何变化,骰子都能保持正方形。










