文中代码为我们老师写的代码,非本人编写
相关知识
1.消除边距
* {
/* 消除边距(避免出现奇怪的问题) */
margin: 0;
padding: 0;
}
2.弹性布局
display: flex;/* 弹性布局 */
justify-content: center;/* 基于弹性布局,项目位于容器的中心。 */
align-items: center;
3.子绝父相
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
/* 消除边距(避免出现奇怪的问题) */
margin: 0;
padding: 0;
}
html,
body {
/* 赋予html和body属性 */
height: 100%;/* 高为100% */
display: flex;/* 弹性布局 */
justify-content: center;/* 基于弹性布局,项目位于容器的中心。 */
/* 元素位于容器的中心。 */
/* 弹性盒子元素在该行的侧轴(纵轴)
上居中放置。(如果该行的尺寸小于弹性盒
子元素的尺寸,则会向两个方向溢出相同的长度)。 */
align-items: center;
}
.box {
/* 定义box大小 */
width: 500px;
height: 500px;
/* box边界宽度,实线,红色 */
border: 1px solid red;
/* 背景颜色 */
background: #cccccc;
/* 弹性布局 */
display: flex;
/* flex项目将垂直显示,正如一个列一样。 */
flex-direction: column;
/* 弹性盒子元素在该行的侧轴(纵轴)上居中放置。 */
align-items: center;
/* 填充20像素的空白 */
padding-top: 20px;
/* 怪异盒模型 */
box-sizing: border-box;
}
.head {
/* 大小 */
width: 200px;
height: 100px;
/* 背景色 */
background: #51a251;
/* 外边距 */
margin-bottom: 10px;
/* 边框圆角 */
/* 设置的参数为圆角的半径长度 */
/* 四角 */
border-radius: 20px;
/* 左上角和右下角 右上角和左下角 */
border-radius: 10px 20px;
/* 左上角 右上和左下 右下角 */
border-radius: 10px 20px 30px;
/* 左上角 右上角 右下角 左下角 */
border-radius: 10px 20px 30px 40px;
/* 头部倒圆角 */
border-radius: 100px 100px 0px 0px;
/* 子绝父相 */
position: relative;
}
/* 在head元素的最前部分生成 */
.head::before {
content: "";
/* 转为块元素(才能写大小) */
display: block;
/* 大小 */
width: 20px;
height: 20px;
/* 背景色 */
background: #fff;
/* 画圆 */
border-radius: 50%;
/* 子绝(绝对定位)父相 (相对定位)*/
/* 当父元素已经绝对定位后,可以子绝父绝 */
position: absolute;
/* 定位 */
bottom: 30px;
left: 60px;
}
.head::after {
content: "";
/* 转为块元素(才能写大小) */
display: block;
/* 大小 */
width: 20px;
height: 20px;
/* 背景色 */
background: #fff;
/* 边框圆角 */
border-radius: 10px 10px 10px 10px;
/* 以父元素为参考,绝对定位 */
position: absolute;
/* 定位 */
bottom: 30px;
right: 60px;
}
.body {
/* 大小 */
width: 200px;
height: 230px;
/* 背景色 */
background: #51a251;
/* 子绝父相 */
position: relative;
/* 边框圆角 */
border-radius: 0 0 20px 20px;
}
.body p {
/* 绝对定位 */
position: absolute;
background: #51a251;
}
.shou {
/* 统一设置大小和圆角 */
width: 30px;
height: 180px;
border-radius: 10px;
}
.shou1 {
/* 定位 */
left: -40px;
top: 10px;
}
.shou2 {
/* 定位 */
right: -40px;
top: 10px;
}
.tui {
width: 30px;
height: 80px;
background: #51a251;
/* 边框圆角 */
border-radius: 0 0 15px 15px;
}
.tui1 {
bottom: -80px;
left: 40px;
}
.tui2 {
bottom: -80px;
right: 40px;
}
</style>
</head>
<!-- 先写结构再写样式 -->
<body>
<div class="box">
<div class="head">
</div>
<div class="body">
<p class="shou1 shou"></p>
<p class="shou2 shou"></p>
<p class="tui1 tui"></p>
<p class="tui2 tui"></p>
</div>
</div>
</body>
</html>