绿色、免费的各种工具分享给你
css面试题及答案2025版本为大家准备了丰富的127页css面试题,从简单的盒子模型到flex布局,到grid布局,再到html5,css3等新特性,为你讲解最全面的面试经验,让你轻松获得offer。
1. 如何清除浮动?
清除浮动是为了解决父元素因为子元素浮动而导致的高度塌陷问题。常用的清除浮动方法有:使用空标签清除浮动(在父元素的最后添加一个空标签,并设置其clear
属性为both
);使用CSS的overflow属性(给父元素添加overflow: hidden;
或overflow: auto;
属性);使用BFC(块级格式化上下文)来清除浮动(通过触发元素的BFC特性来清除浮动)。
2. 描述一下CSS中的z-index属性。
z-index
属性用于设置元素的堆叠顺序,值越大,元素越在上面。
3. CSS的选择器及其优先级。
CSS选择器用于选择你想要样式化的HTML元素。常见的选择器包括元素选择器、类选择器、ID选择器、属性选择器等。选择器的优先级按照以下规则确定:内联样式(在HTML元素内部)优先级最高,其次是ID选择器,然后是类选择器、属性选择器和伪类,最后是元素选择器和伪元素。如果优先级相同,则后出现的样式会覆盖先出现的样式。
4. 请解释CSS的层叠顺序(Specificity)。
CSS的层叠顺序是指在多个样式规则应用于同一个元素时,浏览器如何决定应用哪个样式。这主要由选择器的特异性(Specificity)来决定。特异性是一个权重系统,用于比较不同选择器的优先级。ID选择器的特异性最高,其次是类选择器和属性选择器,最后是元素选择器和伪元素。内联样式的特异性也较高。当特异性相同时,后出现的样式会覆盖先出现的样式。
5. 如何实现元素的水平垂直居中?
实现元素的水平垂直居中有多种方法。其中一种是使用Flexbox布局,设置容器的display
属性为flex
,然后使用justify-content: center
和align-items: center
来分别实现水平和垂直居中。另一种方法是使用定位和转换,将元素的position
属性设置为absolute
或fixed
,然后通过top: 50%
和left: 50%
将元素的左上角移动到容器的中心,最后使用transform: translate(-50%, -50%)
将元素的中心移动到容器的中心。
6. CSS3新增了哪些特性?
CSS3新增了圆角、阴影、渐变、动画、变形、多列布局、弹性盒模型、媒体查询等特性。
7. CSS中的相对定位、绝对定位和固定定位有什么区别?
相对定位是相对于元素自身进行定位;绝对定位是相对于最近的非静态(非static)祖先元素进行定位;固定定位是相对于浏览器窗口进行定位。
8. CSS选择器有哪些优先级规则?
答:CSS选择器的优先级规则包括:内联样式 > ID选择器 > 类选择器、属性选择器和伪类 > 元素选择器和伪元素 > 通配符、子选择器、相邻兄弟选择器和通用兄弟选择器。
9. 什么是CSS的媒体查询?
媒体查询是CSS3的一个新特性,它允许根据设备的特性(如设备的宽度、高度、方向、分辨率等)来应用不同的CSS样式。
10. 解释一下CSS中的透明度和不透明度。
透明度表示元素自身的可见程度,值越小越透明;不透明度则与透明度相反,表示元素的不透明程度,值越大越不透明。
11. 什么是Flexbox(弹性盒子)布局?
Flexbox是CSS3中的一种新布局模式,它设计用来更有效地在容器内布局、对齐和分发空间,即使容器大小动态变化或未知。
12. CSS盒模型。
CSS盒模型是网页布局的基础,每个HTML元素都可以看作是由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成的矩形盒子。盒子的实际宽度和高度是这四个部分的总和。
13. 如何使用CSS实现元素的隐藏和显示?
可以使用display: none;
来隐藏元素,使用display: block;
或display: inline;
等来显示元素;也可以使用visibility: hidden;
来隐藏元素(元素虽然不可见,但仍占据空间),使用visibility: visible;
来显示元素。
14. 什么是CSS中的渐变?
CSS中的渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以是线性渐变或径向渐变。
15. CSS中的overflow
属性有哪些值?
overflow
属性有四个值:visible
(默认值,内容不会被修剪,会呈现在元素框之外)、hidden
(内容会被修剪,并且其余内容是不可见的)、scroll
(内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容)和auto
(如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容)。
16. 如何在CSS中实现文本的溢出隐藏并显示省略号?
可以使用text-overflow: ellipsis;
来实现文本的溢出隐藏并显示省略号,同时需要设置overflow: hidden;
和white-space: nowrap;
来保证文本在一行内显示且溢出时隐藏。
17. CSS中的line-height
属性有什么作用?
line-height
属性用于设置行间的距离(行高),也可以用于垂直居中单行文本。
18. 解释一下CSS中的transform
属性。
transform
属性允许你对元素进行2D或3D转换。这包括旋转(rotate)、缩放(scale)、倾斜(skew)、移动(translate)以及矩阵变形等功能。
19. CSS中的z-index属性有什么作用?
CSS中的z-index
属性用于设置元素的堆叠顺序(即哪个元素应该位于其他元素的前面或后面)。z-index
只对定位元素(即position
属性为relative
、absolute
或fixed
的元素)有效。z-index
的值越大,元素在堆叠顺序中的位置就越靠前。
20. 如何使用CSS创建一个三角形?
.triangle-up { width: 0; height: 0; border-left: 50px solid transparent; /* 左边边框 */ border-right: 50px solid transparent; /* 右边边框 */ border-bottom: 100px solid red; /* 底部边框,形成三角形的可见部分 */}
1. 使用通用选择器进行全局样式设置
当使用通用选择器 (*) 设计所有元素的样式时,会出现意想不到的后果。建议选择特定的选择器来精确定位元素
2. 过度依赖!important:
过度使用 !important 会导致代码混乱。我们应该时刻跟自己说,尽量不要使用!important,尽快有时候他真的很简单粗暴好用
3.忽视响应式设计
现在前端开发已经没有不兼容响应式的了。所以一开始就要使用媒体查询实现自适应的布局
/* Incorrect */ .container { width: 1000px; } /* Correct */ .container { max-width: 100%; box-sizing: border-box; } @media (min-width: 768px) { .container { width: 720px; } }
4 css选择器过于复杂
过于复杂的选择器会影响性能,比如ulli:nth-child(odd)a这样的,我们还是尽量择更简单的选择器以增强性能而不牺牲特异性
6 要慎用浮动布局
浮动曾经在布局中流行,但可能会导致布局问题和复杂化。现在建议少用,使用弹性盒模型 Flexbox 或 CSS 网格来实现现代且可靠的布局结构。
7. 使用内联样式代替外部样式表
尤其是在代码修改的时候,内联样式确实权重高,见效快,但是,内联样式阻碍了关注点分离和代码可维护性。
5 忽略跨浏览器兼容性的供应商前缀
不包含供应商前缀可能会导致浏览器之间的不一致。这是很多人容易忽略的。
虽然现在基本上只需要chrome了,但是如果出现兼容性问题,要第一时间想到前缀的问题。
box { display: -webkit-box; display: -ms-flexbox; display: flex; }
去吧皮卡丘
挂机养成
查看
二战风云
战争策略
查看
女神竞技场
战争策略
查看
王者之剑
角色扮演
查看
弹弹堂
休闲益智
查看
光明大陆
角色扮演
查看
神雕侠侣2
角色扮演
查看
天天炫斗
动作格斗
查看
灌篮高手
体育竞技
查看