# 1.盒子居中
# 2.实现三角形
<body>
<div></div>
<style>
div {
width: 0;
height: 0;
border-bottom: #333 solid 100px;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 3.循环列表色
题目
- 要实现一个列表三种颜色循环渲染
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
<style>
li {
width: 100px;
height: 25px;
margin-top: 2px;
list-style: none;
}
ul>li:nth-child(3N) {
background-color: blue;
}
ul>li:nth-child(3N + 1) {
background-color: red;
}
ul>li:nth-child(3N + 2) {
background-color: green;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 4.自适应盒子
- 左侧固定长度
- 右侧盒子自适应
方案1
<body>
<div class="father">
<div class="left"></div>
<div class="right"></div>
</div>
<style>
.father {
display: flex;
height: 100px;
}
.left {
width: 100px;
background-color: red;
}
.right {
width: calc(100% - 100px);
background-color: blue;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
方案2
<body>
<div class="father">
<div class="left"></div>
<div class="right"></div>
</div>
<style>
.father {
display: flex;
height: 100px;
}
.left {
width: 100px;
background-color: red;
}
.right {
flex: 1;
background-color: blue;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 5.长宽固定比
问题
- 长宽固定比例的盒子
- padding/margin用百分比表示时,是通过width做基准的。
不过padding有背景色,margin没有背景色
<body>
<div></div>
<style>
div {
background-color: red;
padding-bottom: 50%;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 6.左右固定,中间自适应
<body>
<div class="container">
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</div>
<style>
.container {
display: flex;
justify-content: space-between;
height: 30px;
}
.one {
background-color: rgb(161, 95, 95);
width: 30px;
}
.two {
flex: 1;
background-color: rgb(197, 46, 46);
}
.three {
background-color: rgb(21, 28, 117);
width: 30px;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 7.匹配列表头尾几个元素
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
<li>9</li>
<li>10</li>
</ul>
<style>
ul {
width: 100px;
}
li {
height: 30px;
}
li {
background-color: rgb(55, 177, 86);
margin-top: 5px;
}
ul>li:nth-child(-n + 3) {
background-color: rgb(214, 78, 78);
}
ul>li:nth-last-child(-n + 3) {
background-color: rgb(67, 55, 177);
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 8.隐藏元素
# 9.制作扇形
思路1:外层div,
radius
控制弧形,内层div控制两个直角边,进行移动拼接成扇形
<body>
<div class="outer">
<div class="inner"></div>
</div>
<style>
.outer {
width: 100px;
height: 100px;
/* background-color: red; */
border-radius: 50%;
overflow: hidden;
}
.inner {
width: 100px;
height: 100px;
background-color: rgb(94, 137, 230);
transform: rotate(45deg) translate(50px, 50px);
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
思路2,一个div盒子,
<body>
<div class="container">
</div>
<style>
.container {
width: 0px;
border-top: 100px solid red;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top-left-radius: 50%;
border-top-right-radius: 50%;
}
</style>
</body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14