本帖最后由 马黑黑 于 2023-4-8 22:42 编辑
实现步骤(二):
这个步骤是尝试性质,主要是推演一下各个 span 子元素的宽高尺寸算法。当然,span 的基本CSS设置,最终效果会用到,所以应加入到CSS代码中。下面,我们就给 span 标签做一个基本设置,它隶属于 wrap,是 wrap 的子元素,所以我们可以这样写这些 span 标签的共性基本代码:
<style>
#wrap {
margin: 30px auto;
width: 200px;
height: 200px;
display: grid;
place-items: center;
position: relative;
border: 1px solid purple;
}
#wrap > span {
position: absolute;
width: 0;
height: 0;
border-radius: 50%;
border: 8px dotted black;
}
</style>
<div id="wrap">
<span></span>
</div>
运行以上代码,效果如下:
如果我们有第二个 span 标签,它会覆盖在第一个标签之上,因而,我们需要为第二个 span 标签单独设置更大的尺寸以及其它属性:
#wrap > span:nth-of-type(2) {
width: 18px;
height: 18px;
border-color: red;
}
为什么宽高设置为18px呢?首先,这是为所有的 span 预设了一个规律:每一个 span 的宽高尺寸都按自己的索引乘以18,第一个 span 的索引是 0,0 乘以 18 等于 0,正是CSS里所设计的,第二个索引是1,乘以18就是18,其余依次类推;其次,18的依据是,span 的边框厚度是8,当 span 的宽高为 0 时,它实际占位是16个像素,我们给第二个 span 的宽高都加上 2 ,是希望它与第一个拉开 2px 的距离。
现在,我们给HTML代码加一组 span 标签,看看效果:
|