蓝桥杯备赛刷题——css

新鲜的蔬菜

这题需要使用grid

我不会

去学一下

一.什么是grid

Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。

Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局 。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。Grid 布局远比 Flex 布局强大。

display 属性

display: grid指定一个容器采用网格布局。

复制代码
div {
  display: grid;
}

默认情况下,容器元素都是块级元素,但也可以设成行内元素。

复制代码
div {
  display: inline-grid;
}
上面代码指定div是一个行内元素,该元素内部采用网格布局。

注意,设为网格布局以后,容器子元素(项目)的floatdisplay: inline-blockdisplay: table-cellvertical-aligncolumn-*等设置都将失效。

grid-template-columns 属性,

grid-template-rows 属性

容器指定了网格布局以后,接着就要划分行和列。grid-template-columns属性定义每一列的列宽,grid-template-rows属性定义每一行的行高。

复制代码
.container {
  display: grid;
  grid-template-columns: 100px 100px 100px;
  grid-template-rows: 100px 100px 100px;
}

上面代码指定了一个三行三列的网格,列宽和行高都是100px

除了使用绝对单位,也可以使用百分比。

复制代码
.container {
  display: grid;
  grid-template-columns: 33.33% 33.33% 33.33%;
  grid-template-rows: 33.33% 33.33% 33.33%;
}

(1)repeat()

有时候,重复写同样的值非常麻烦,尤其网格很多时。这时,可以使用repeat()函数,简化重复的值。上面的代码用repeat()改写如下。

复制代码
.container {
  display: grid;
  grid-template-columns: repeat(3, 33.33%);
  grid-template-rows: repeat(3, 33.33%);
}

repeat()接受两个参数,第一个参数是重复的次数(上例是3),第二个参数是所要重复的值。

repeat()重复某种模式也是可以的。

复制代码
grid-template-columns: repeat(2, 100px 20px 80px);

上面代码定义了6列,第一列和第四列的宽度为100px,第二列和第五列为20px,第三列和第六列为80px

fr 关键字

为了方便表示比例关系,网格布局提供了fr关键字(fraction 的缩写,意为"片段")。如果两列的宽度分别为1fr2fr,就表示后者是前者的两倍。

复制代码
.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

上面代码表示两个相同宽度的列。

回到题目

css 复制代码
.box{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
}
#box1 .item,#box3 .item:nth-child(2){
  grid-column: 2 / span 1;
  grid-row: 2 / span 1;
}
#box2 .item:nth-child(1),#box3 .item:nth-child(1){
  grid-column: 1 / span 1;
  grid-row: 1 / span 1;
}
#box2 .item:nth-child(2),#box3 .item:nth-child(3){
  grid-column: 3 / span 1;
  grid-row: 3 / span 1;
}

注意点:

这里box1,2,3是id选择器 前面要用#

#box2 .item是后代选择器,中间要有空格

#box1 .item,#box3 .item:nth-child(2)是并集选择器 中间要有,

电影院排座位

css 复制代码
.seat-area{
  margin-top: 50px;
  font-size: 0;
}
.seat{
  display: inline-block;
  margin-right: 10px;
  margin-bottom: 10px;
}
.seat:nth-child(8n){
  margin-right: 0px;
}
.seat:nth-child(n+41){
  margin-bottom: 0px;
}
.seat:nth-child(8n-6){

  margin-right: 30px;
}
.seat:nth-child(8n-2){
  margin-right:30px;
}

这里偷学一下人家的代码

有点疑惑的是为什么"8n+6"不行

"8n-6"就可以

这个n到底是从几开始的

相关推荐
爱学习的小鱼gogo6 小时前
python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)
开发语言·经验分享·python·算法·职场和发展·矩阵
代码对我眨眼睛11 小时前
226. 翻转二叉树 LeetCode 热题 HOT 100
算法·leetcode·职场和发展
黑色的山岗在沉睡12 小时前
LeetCode 494. 目标和
算法·leetcode·职场和发展
莫叫石榴姐18 小时前
SQL百题斩:从入门到精通,一站式解锁数据世界
大数据·数据仓库·sql·面试·职场和发展
你总是一副不开心的样子(´ . .̫ .19 小时前
一、十天速通Java面试(第三天)
java·面试·职场和发展·java面试
小欣加油1 天前
leetcode 62 不同路径
c++·算法·leetcode·职场和发展
夏鹏今天学习了吗1 天前
【LeetCode热题100(38/100)】翻转二叉树
算法·leetcode·职场和发展
夏鹏今天学习了吗1 天前
【LeetCode热题100(36/100)】二叉树的中序遍历
算法·leetcode·职场和发展
微笑尅乐1 天前
从暴力到滑动窗口全解析——力扣8. 字符串转换整数 (atoi)
算法·leetcode·职场和发展
007php0072 天前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展