前端八股CSS:盒模型、CSS权重、+与~选择器、z-index、水平垂直居中、左侧固定,右侧自适应、三栏均分布局

ops/2025/3/6 4:22:28/

一、盒模型

题目:简述CSS的盒模型

答:盒模型有两种类型,可以通过box-sizing设置
1.标准盒模型(content-box):默认值,宽度和高度只包含内容区域,不包含内边距、边框和外边距。

2.边框盒模型(border-box):宽度和高度包括内容区域、内边距和边框,但不包括外边距。

盒模型中元素的总宽度=内容宽度+左右内边距+左右边框+左右外边距
盒模型中元素的总高度=内容高度+上下内边距+上下边框+上下外边距

 二、CSS specificity (权重)

题目:简述下CSS权重

答:CSS权重是用于确定当多个CSS规则应用到同一元素时,哪个规则最终会生效。

权重优先级:
1.!important(最高)

2.内敛样式

3.ID选择器

4.类选择器、伪类选择器、属性选择器

5.标签选择器、伪元素

其中通配符选择器 *,组合选择器 + ~ >,否定伪类选择器 :not() 对优先级无影响

 三、’+’ 与 ’~’ 选择器有什么不同

答:

  • + 选择器匹配紧邻的兄弟元素

  • ~ 选择器匹配随后的所有兄弟元素

四、z-index 与层叠上下文

  • 题目:如何更好地给元素设置 z-index

  • 题目:z-index: 999 元素一定会置于 z-index: 0 元素之上吗

 答:1.z-index用于控制元素的堆叠顺序,决定哪些元素会出现在其他元素之上。

为了更好的使用z-index,可以合理划为堆叠上下文,还可以避免使用过高的z-index,同时要层级清晰

2.不一定,虽然 z-index: 999 的元素通常会被放置在 z-index: 0 的元素之上,但这也有条件。

z-index仅在元素处于同一堆叠上下文中有效

五、水平垂直居中

题目:如何实现一个元素的水平垂直居中

答:1. 使用flex布局:justify-content:center,align-content:center

css">.container {display: flex;justify-content: center; /* 水平居中 */align-items: center;     /* 垂直居中 */height: 100vh;           /* 设置容器的高度为视口高度 */
}.content {/* 可以设置内容的宽高 */width: 200px;height: 100px;background-color: lightblue;
}


       2.使用grid布局:place-items:center

css">.container {display: grid;place-items: center; /* 水平垂直居中 */height: 100vh;
}.content {width: 200px;height: 100px;background-color: lightcoral;
}

       3.使用绝对定位:子绝父相,top:50%,left:50%,transform: translate(-50%, -50%) 通过移动元素自身的一半宽度和高度来使元素居中。

css">.container {position: relative;height: 100vh;
}.content {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 200px;height: 100px;background-color: lightgreen;
}

六、左侧固定、右侧自适应

题目:css如何实现左侧固定300px,右侧自适应的布局

答:使用flex和grid布局
1.flex:

  • .container 使用 display: flex,将子元素放入 flex 布局中。
  • .left 设置固定宽度 300px。
  • .right 使用 flex: 1,表示它会占据剩余的空间并自适应宽度。
    css">.container {display: flex;
    }.left {width: 300px;  /* 左侧固定宽度 */background-color: lightblue;
    }.right {flex: 1;  /* 右侧自适应宽度 */background-color: lightgreen;
    }
    

2.grid:

  • .container 使用 display: grid,并通过 grid-template-columns 定义了两列布局,第一列宽度为 300px,第二列使用 1fr 表示占据剩余空间并自适应宽度。
    css">.container {display: grid;grid-template-columns: 300px 1fr;  /* 左侧300px,右侧自适应 */
    }.left {background-color: lightblue;
    }.right {background-color: lightgreen;
    }
    

七、三栏均分布局

题目:如何实现三栏均分布局

答:使用flex和grid布局

  • flex:
    • 方案一: flex: 1;
    • 方案二: flex-basis: calc(100% / 3)
      css">.container {display: flex;justify-content: space-between; /* 保证各栏之间有间距 */
      }.column {flex: 1;  /* 每一栏宽度相等 */padding: 10px;background-color: lightgray;margin: 0 5px; /* 增加栏间距 */
      }
      
  • grid:
    • 父容器: grid-template-columns: 1fr 1fr 1fr
      css">.container {display: grid;grid-template-columns: 1fr,1fr,1fr;  /* 创建三列,宽度均分 */gap: 10px;  /* 每列之间的间距 */
      }.column {background-color: lightgray;padding: 10px;
      }
      

http://www.ppmy.cn/ops/154724.html

相关文章

C++初阶 -- 初识STL和string类详细使用接口的教程(万字大章)

目录 一、STL 1.1 什么是STL 1.2 STL的版本 1.3 STL的六大组件 二、string类 2.1 string类的基本介绍 2.2 string类的默认成员函数 2.2.1 构造函数 2.2.2 析构函数 2.2.3 赋值运算符重载 2.3 string类对象的容量操作 2.3.1 size和length 2.3.2 capacity 2.3.3 r…

实验二 数据库的附加/分离、导入/导出与备份/还原

实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。…

MapReduce简单应用(一)——WordCount

目录 1. 执行过程1.1 分割1.2 Map1.3 Combine1.4 Reduce 2. 代码和结果2.1 pom.xml中依赖配置2.2 工具类util2.3 WordCount2.4 结果 参考 1. 执行过程 假设WordCount的两个输入文本text1.txt和text2.txt如下。 Hello World Bye WorldHello Hadoop Bye Hadoop1.1 分割 将每个文…

OceanBase 读写分离探讨

版本信息 OceanBase: 4.2.1.10 OBProxy: 4.3.3.0 租户类型: MySQL租户 弱一致性读 官方声明 默认情况下,所有的请求都是发送到数据的 Leader 副本上,即强一致性的请求,因为 OLAP 的分析计算,一般对于数据的一致性要求不高&…

创建前端项目的方法

目录 一、创建前端项目的方法 1.前提:安装Vue CLI 2.方式一:vue create项目名称 3.方式二:vue ui 二、Vue项目结构 三、修改Vue项目端口号的方法 一、创建前端项目的方法 1.前提:安装Vue CLI npm i vue/cli -g 2.方式一&…

二叉树的最大深度(遍历思想+分解思想)

Problem: 104. 二叉树的最大深度 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(实则二叉树的先序遍历) 1.欲望求出最大的深度,先可以记录一个变量res,同时记录每次当前节点所在的层数depth 2.在递的过程中,每次递一层&#xff0…

蓝桥云课下载(jdk11、eclipse、idea)

目录 下载jdk11下载eclipse下载idea 下载jdk11 下载地址: (自用) https://www.lanqiao.cn/courses/44495/learning/?id3144371&compatibilityfalse 安装步骤: 双击 -> -> 下一步 -> 配置环境变量(略…

【深度之眼cs231n第七期】笔记(三十一)

目录 强化学习什么是强化学习?马尔可夫决策过程(MDP)Q-learning策略梯度SOTA深度强化学习 还剩一点小尾巴,还是把它写完吧。(距离我写下前面那行字又过了好几个月了【咸鱼本鱼】)(汗颜&#xff…