目录
- 一、介绍
- 二、准备
- 三、⽬标
- 四、代码
- 五、知识点
- 六、完成
一、介绍
随着⼈们⽣活⽔平的⽇益提升,电影院成为了越来越多的⼈休闲娱乐,周末放松的好去处。各个城市的电影院数量也随着市场的需求逐年攀升。近⽇,⼜有⼀个电影院正在做着开张前期的准备,⼩蓝作为设计⼯程师,需要对电影院的座位进⾏布局设计。
本题需要在已提供的基础项⽬中,使⽤ CSS 完成⻚⾯中电影院座位布局。
二、准备
开始答题前,需要先打开本题的项⽬代码⽂件夹⽬录结构如下:
├── css
│ └── style.css
└── index.html
其中:
- index.html 是主⻚⾯。
- css/style.css 是需要补充样式的⽂件。
在浏览器中预览 index.html ,显示如下所示:
三、⽬标
请在 css/style.css ⽂件中的 TODO 下补全样式代码,最终达到预期布局效果,需要注意:
- 座位区域和荧幕间隔 50px。
- 座位区域每⼀⾏包含 8 个座位。
- 第 2 列和第 6 列旁边都是⾛廊,需要和下⼀列间隔 30px,其他列都只需要间隔 10px。
完成后的效果如下:
四、代码
index.html
<!DOCTYPE html>
<html lang="zh-CN">
<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>电影院排座位</title>
<link rel="stylesheet" href="./css/style.css" />
</head>
<body>
<div class="container">
<!-- 荧幕区域 -->
<div class="screen">阿凡达2</div>
<!-- 座位区域 -->
<div class="seat-area">
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
<div class="seat"></div>
</div>
</div>
</body>
</html>
css/style.css
* {
box-sizing: border-box;
}
body {
background-color: #242333;
color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
margin: 0;
}
.container {
perspective: 1000px;
width: 470px;
}
.screen {
background-color: #fff;
height: 70px;
width: 100%;
transform: rotateX(-45deg);
box-shadow: 0 3px 10px rgba(255, 255, 255, 0.7);
color: #242333;
text-align: center;
line-height: 70px;
font-size: 30px;
}
.seat {
background-color: #444451;
height: 40px;
width: 45px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
/* TODO:待补充代码 */
五、知识点
使用:nth-child(an)时,n虽然可以是等于0,1,2,3… 但是nth-child没有0号元素 只有1号元素,故an的实际值为 a 2a 3a 而不是0 a 2a 3a
六、完成
/* 作为区域和屏幕间隔50px */
.screen{
margin-bottom: 50px;
}
/* 将座位变为flex布局且换行 */
.seat-area{
display: flex;
flex-wrap: wrap;
}
/* 让每个座位距离右边10px */
.seat{
margin-right: 10px;
/* 下面这一行代码题目没要求写 但是如果写了感觉更符合效果图 */
margin-bottom:10px
}
/* 让第二列和第六列距离右边30px ---》会覆盖10px */
.seat:nth-child(8n+2),
.seat:nth-child(8n+6){
margin-right: 30px;
}
/* 让最后一列距离右边为0 */
.seat:nth-child(8n){
margin-right: 0px;
}