【CSS基础】实战:做一个彩虹

227 阅读3分钟
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
<div class="rainbow">  #先用一个大框把要画的彩虹框起来
  <div>      #每一层颜色都是一个div,写div>div>div>div>div>div>div>div再按Tab就可以一次性写出八个div,为啥多了一个div,详见第十一步。
    <div>
      <div>
        <div>
          <div>
            <div>
              <div>
                <div>  
                  
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
</body>
</html>
* {
  /*第一步:先把所有的盒模型设为border box*/
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
body{
  /*第十二步:把body背景变成白色更好看*/
  /*border: 1px solid red;先用边框看看body在哪,之后再删掉*/
  background: white;
  /*把body变成白色,外面的也变成白色,这叫自动填充背景色*/
}
.rainbow {
  /*第十步:把框住彩虹的大框变成半圆形,即让溢出的的下半圆消失*/
  /*border: 1px solid black;*先写个边框方便观看,之后再删掉/
  height: 200px;
  /*高度应为第一个颜色的一半,即200px*/
  overflow: hidden;
}
.rainbow div{
  /*第九步:raindow大框里面所有的div从正方形变成圆形,并且要消除父子合并现象*/
  border-radius: 50%;
  overflow: hidden

}
.rainbow > div {
  /*第二步,先从raindow里面的div,即第一个div开始,也就是彩虹第一个颜色红色*/
  width: 400px;
  height: 400px;
  background: hsl(0, 80%, 45%);
}

.rainbow > div> div {
  /*第三步:raindow里面的div里面的div,即第二个div,也就是彩虹的第二个颜色*/
  background: hsl(60, 80%, 50%);
  height: 380px;
  margin: 10px;
}

.rainbow > div> div> div {
  /*第四步:第三个div,也就是彩虹的第三个颜色*/
  background: hsl(120, 80%, 50%);
  height: 360px;
  margin: 10px;
}

.rainbow > div> div>div>div {
 /*第五步:第四个div,也就是彩虹的第四个颜色*/
  background: hsl(180, 80%, 50%);
  height: 340px;
  margin: 10px;
}

.rainbow > div> div>div>div>div {
/*第六步:第五个div,也就是彩虹的第五个颜色*/
  background: hsl(240, 80%, 50%);
  height: 320px;
  margin: 10px;
}

.rainbow > div> div>div>div>div >div {
/*第七步:第六个div,也就是彩虹的第六个颜色*/
  background: hsl(300, 80%, 50%);
  height: 300px;
  margin: 10px;
}

.rainbow > div> div>div>div>div >div>div {
/*第八步:第七个div,也就是彩虹的第七个颜色*/
  background: hsl(330, 80%, 50%);
  height: 280px;
  margin: 10px;
}

.rainbow > div> div>div>div>div >div>div>div {
/*第十一步:第八个div和上面的差不多,但是要变成白色,这样才能让上一个div,也就是第七个颜色下面变白*/
  background: hsl(330, 80%, 100%);
  height: 260px;
  margin: 10px;
}

最后的效果图

代码链接