蓝桥杯备赛刷题——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到底是从几开始的

相关推荐
studyForMokey2 小时前
【Android面试】View绘制流程专题
android·面试·职场和发展
酉鬼女又兒3 小时前
零基础快速入门前端CSS Transform 与动画核心知识点及蓝桥杯 Web 应用开发考点解析(可用于备赛蓝桥杯Web应用开发)
开发语言·前端·css·职场和发展·蓝桥杯·html
庞轩px5 小时前
模拟面试回答第十四问:双亲委派模型
jvm·面试·职场和发展·tomcat·类加载·类加载器·双亲委派模型
Mr_Xuhhh5 小时前
LeetCode 热题 100 刷题笔记:数组与排列的经典解法(续)
算法·leetcode·职场和发展
打瞌睡的朱尤6 小时前
3.25蓝桥杯训练
职场和发展·蓝桥杯
j_xxx404_7 小时前
蓝桥杯基础--排序模板合集II(快速,归并,桶排序)
数据结构·c++·算法·蓝桥杯·排序算法
_日拱一卒7 小时前
LeetCode:和为K的子数组
算法·leetcode·职场和发展
Trouvaille ~8 小时前
【优选算法篇】BFS 解决最短路——寻找最优路径的真谛
c++·算法·leetcode·面试·蓝桥杯·宽度优先·最短路问题
studyForMokey9 小时前
【Android面试】打包 & 启动专题
android·面试·职场和发展
会编程的土豆9 小时前
【leetcode hot 100】 二叉树2
算法·leetcode·职场和发展