interview
frontend-classic
CSS 选择器有哪些优先级分别是什么

前端经典面试题合集, CSS 选择器有哪些?优先级分别是什么?

前端经典面试题合集, CSS 选择器有哪些?优先级分别是什么?

QA

Step 1

Q:: CSS选择器有哪些?优先级分别是什么?

A:: CSS选择器包括基础选择器、组合选择器和伪类选择器等。基础选择器有:元素选择器(如 div)、类选择器(如 .class)、ID选择器(如 #id)、通配符选择器(如 *)。组合选择器包括:后代选择器(如 div p)、子选择器(如 div > p)、相邻兄弟选择器(如 div + p)和通用兄弟选择器(如 div ~ p)。伪类选择器包括::hover、:active、:focus 等。

CSS 优先级从高到低依次为:!important > 内联样式 > ID 选择器 > 类选择器和伪类选择器 > 元素选择器 > 通配符选择器。

Step 2

Q:: 解释一下CSS的盒模型是什么?

A:: CSS 盒模型是指一个元素在网页上占据的空间,包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。标准盒模型中,元素的总宽度和高度由内容宽度/高度加上内边距、边框和外边距决定;而在 IE 盒模型中,内容宽度/高度包含内边距和边框。可以通过 box-sizing 属性来切换这两种模型。

Step 3

Q:: 什么是Flexbox布局?它有哪些常用属性?

A:: Flexbox(弹性盒子布局)是一种一维的布局模型,用来分配容器内空间并对齐其内容。常用属性包括:

- 容器属性:display: flexdisplay: inline-flexflex-directionflex-wrapjustify-contentalign-itemsalign-content - 项目属性:orderflex-growflex-shrinkflex-basisflexalign-self

用途

CSS 选择器及其优先级是前端开发中的基础知识,了解这些可以帮助开发者有效地控制页面的样式,确保样式规则按预期应用。在实际生产环境中,尤其是大型项目中,合理使用选择器和优先级能够避免样式冲突,提升代码的可维护性和可读性。\n

相关问题

🦆
解释一下伪类和伪元素的区别?

伪类(pseudo-class)用于选择元素的某种状态,如 :hover, :focus。伪元素(pseudo-element)用于选择元素的一部分内容,如 ::before, ::after。伪类是基于元素的状态,而伪元素是创建元素的子元素。

🦆
如何实现一个居中的div?

可以使用 Flexbox 或 Grid 布局来实现居中。例如,Flexbox:


display: flex;
justify-content: center;
align-items: center;

或者使用 Grid 布局:


display: grid;
place-items: center;

也可以使用传统的方法:


position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);

🦆
CSS 中的BEM命名规范是什么?

BEM(Block Element Modifier)是一种命名规范,旨在提高代码的可读性和可维护性。Block 表示独立的功能块,Element 表示块的组成部分,Modifier 表示块或元素的外观或行为的变化。命名示例:


.block {}
.block__element {}
.block--modifier {}