搜索
首页web前端css教程七道重要CSS面试题

七道重要CSS面试题

Aug 03, 2020 pm 03:32 PM
css面试题

七道重要CSS面试题

目录

      • 1. CSS3中的盒模型
      • 2. display:none与visibility:hidden的区别
      • 3. 说一说CSS的sprite(精灵图)
      • 4. position的属性值有哪些?
      • 5. PNG、GIF、JPG、WEBP的区别以及如何选择?
      • 6. CSS选择器有哪些?优先级?
      • 7. 浮动相关
        • (1)什么时候需要清除浮动?
        • (2)如何清除浮动?

专题推荐2020年CSS面试题汇总(最新)

1. CSS3中的盒模型

CSS3中的盒模型有以下两种:标准盒模型、IE盒模型

在这里插入图片描述
在这里插入图片描述

  • 标准盒模型和IE盒模型的区别就是:标准盒模型的宽高指的是内容的宽高,而IE盒模型的宽高指的是内容,内边距,边框的总和。

  • 在CSS3中,可以使用box-sizeing:border-box将普通盒模型转化为IE盒模型。有时候我们已经设置了一个盒子的宽高,但是,如果想要改变border,这样盒子的大小就会发生改变,我们就可以将其转化为IE盒模型,就不用每次计算盒子内容大小了。

  • 在盒子模型中

    • box-sizeing:content-box表示标准盒模型(默认值)
    • box-sizeing:border-box表示IE盒模型(也就是怪异盒模型)

除此之外,还有:Flex弹性伸缩盒模型

在这里插入图片描述

2. display:none与visibility:hidden的区别

这两个属性都是让元素隐藏不可见

区别:

(1)在渲染树中

  • display:none会让元素完全中渲染树中消失,渲染的时候不会占据任何空间;
  • visibility:hidden不会让元素从渲染树中消失,渲染的元素还会占据相应的空间,只是内容不可见

(2)继承

  • display:none是非继承属性,他的子孙节点会随着父节点从渲染树消失,通过修改子孙节点的属性也无法显示。
  • visibility:hidden是继承属性,子孙节点消失是由于继承了hidden,通过设置visibility:visible可以让子孙节点显示。

(3)修改常规文档流中的元素的display通常会造成文档的重排,但是修改visibility属性只会造成本元素的重绘

(4)如果使用读屏器,设置为display:none的内容不会被读取,设置为visibility:hidden的内容会被读取。visibility:hidden

3. 说一说CSS的sprite(精灵图)

概念:

精灵图就是将多个小图片拼接在一个图片中,使用的时候通过background-position元素尺寸调节需要显示的背景图案。

优点:

  • 减少HTTP请求数,在一定程度上提高了页面的加载速度
  • 减少图片的体积,因为每个图片都有一个头信息,把多个图片放在一起,会共用一个头信息,较少了图片的字节数
  • 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。
  • 减少了图片命名的困扰,只要给一张或几张图片命名即可

缺点:

  • 维护比较麻烦,如果页面背景有一点改变,就需要修改整个合并的图片
  • 合并比较麻烦,需要将多张图片有序的合理的合并为一张图片,还要预留一定的空间,防止出现不必要的背景
  • 在宽屏或者高分辨率屏幕下的自适应页面,如果图片不够宽,就可能出现背景断裂的情况

4. position的属性值有哪些?

属性值 概述
absolute 生成绝对定位的元素,相对于static定位以外的一个父元素进行定位
relative 生成相对定位的元素,相对于其原来的位置进行定位
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位
static 默认值,没有定位,元素出现在正常的文档流中
inherit 规定从父元素继承position属性的值

5. PNG、GIF、JPG、WEBP的区别以及如何选择?

(1)GIF

  • GIF图片只存储8位索引,最多支持256色,
  • 采用无损压缩,尺寸较小
  • 支持透明和简单动画

适用于:色彩简单的logo,icon,线框图,简单的动画

(2)JPG

  • 采用有损压缩,可以控制压缩的质量
  • 采用直接色,色彩丰富
  • 不支持透明

适用于:色彩丰富的图片、渐变图像

(3)PNG

  • png-8是采用无损压缩,基于8位索引色的位图格式,比gif的透明的支持更好,同等质量下大小也更小,但是不支持动画。适用于图标,背景,按钮。
  • png-24采用无损压缩,是基于直接色的位图格式,大小相对以上几种更大,但是图片质量高,适用于源文件或者需要二次编辑的图片格式的保存。

(4)WEBP

  • 由Google开发,体积更小
  • 支持有损压缩和无损压缩
  • 支持透明和动画

适用于:支持webp的APP或网页

格式 优点 缺点 适用场景
gif 文件小,支持动画、透明,无兼容性问题 只支持256种颜色 色彩简单的logo、icon、动图
jpg 色彩丰富,文件小 有损压缩,反复保存图片质量下降明显 色彩丰富的图片/渐变图像
png 无损压缩,支持透明,简单图片尺寸小 不支持动画,色彩丰富的图片尺寸大 logo/icon/透明图
webp 文件小,支持有损和无损压缩,支持动画、透明 浏览器兼容性不好 支持webp格式的app和webview

6. CSS选择器有哪些?优先级?

选择器 格式
标签选择器 p
类选择器 #myclassname
id选择器 #myid
相邻兄弟选择器 h1+p
子选择器 ul>li
后代选择器 li a
通配符选择器 *
属性选择器 a[ref=“eee”]
伪类选择器 li:last-child

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器.例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:

h1 + p {margin-top:50px;}

对于选择器的优先级

  • 元素选择器:1
  • class选择器:10
  • id 选择器:100
  • 元素标签:1000

需要注意的是:

  • !important声明的样式的优先级最高
  • 如果优先级相同,则最后出现的样式生效
  • 继承得到的样式的优先级最低

属性继承性:

  • 可以继承的属性:font-size、font-family、color
  • 不可以继承的样式:border、padding、margin、width、height

7. 浮动相关

元素设置为浮动之后,display会自动变成block。

(1)什么时候需要清除浮动?

浮动造成的问题如下:

  • 父元素的高度无法撑开,影响与父级同级的元素
  • 与浮动元素同级的非浮动元素给跟随在它后面
  • 若一个元素浮动,则其前面的元素也需要浮动,否则会影响页面的结构

(2)如何清除浮动?

清除浮动的方式如下:

  • 给父级p定义height属性
  • 最后一个浮动元素之后添加一个空的p标签,并添加clear:both样式
  • 包含浮动元素的父级标签添加overflow:hidden或者overflow:auto


目录

      • 1. CSS3中的盒模型
      • 2. display:none与visibility:hidden的区别
      • 3. 说一说CSS的sprite(精灵图)
      • 4. position的属性值有哪些?
      • 5. PNG、GIF、JPG、WEBP的区别以及如何选择?
      • 6. CSS选择器有哪些?优先级?
      • 7. 浮动相关
        • (1)什么时候需要清除浮动?
        • (2)如何清除浮动?

1. CSS3中的盒模型

CSS3中的盒模型有以下两种:标准盒模型、IE盒模型

在这里插入图片描述
在这里插入图片描述

  • 标准盒模型和IE盒模型的区别就是:标准盒模型的宽高指的是内容的宽高,而IE盒模型的宽高指的是内容,内边距,边框的总和。

  • 在CSS3中,可以使用box-sizeing:border-box将普通盒模型转化为IE盒模型。有时候我们已经设置了一个盒子的宽高,但是,如果想要改变border,这样盒子的大小就会发生改变,我们就可以将其转化为IE盒模型,就不用每次计算盒子内容大小了。

  • 在盒子模型中

    • box-sizeing:content-box表示标准盒模型(默认值)
    • box-sizeing:border-box表示IE盒模型(也就是怪异盒模型)

除此之外,还有:Flex弹性伸缩盒模型

在这里插入图片描述

2. display:none与visibility:hidden的区别

这两个属性都是让元素隐藏不可见

区别:

(1)在渲染树中

  • display:none会让元素完全中渲染树中消失,渲染的时候不会占据任何空间;
  • visibility:hidden不会让元素从渲染树中消失,渲染的元素还会占据相应的空间,只是内容不可见

(2)继承

  • display:none是非继承属性,他的子孙节点会随着父节点从渲染树消失,通过修改子孙节点的属性也无法显示。
  • visibility:hidden是继承属性,子孙节点消失是由于继承了hidden,通过设置visibility:visible可以让子孙节点显示。

(3)修改常规文档流中的元素的display通常会造成文档的重排,但是修改visibility属性只会造成本元素的重绘

(4)如果使用读屏器,设置为display:none的内容不会被读取,设置为visibility:hidden的内容会被读取。visibility:hidden

3. 说一说CSS的sprite(精灵图)

概念:

精灵图就是将多个小图片拼接在一个图片中,使用的时候通过background-position元素尺寸调节需要显示的背景图案。

优点:

  • 减少HTTP请求数,在一定程度上提高了页面的加载速度
  • 减少图片的体积,因为每个图片都有一个头信息,把多个图片放在一起,会共用一个头信息,较少了图片的字节数
  • 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。
  • 减少了图片命名的困扰,只要给一张或几张图片命名即可

缺点:

  • 维护比较麻烦,如果页面背景有一点改变,就需要修改整个合并的图片
  • 合并比较麻烦,需要将多张图片有序的合理的合并为一张图片,还要预留一定的空间,防止出现不必要的背景
  • 在宽屏或者高分辨率屏幕下的自适应页面,如果图片不够宽,就可能出现背景断裂的情况

4. position的属性值有哪些?

属性值 概述
absolute 生成绝对定位的元素,相对于static定位以外的一个父元素进行定位
relative 生成相对定位的元素,相对于其原来的位置进行定位
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位
static 默认值,没有定位,元素出现在正常的文档流中
inherit 规定从父元素继承position属性的值

5. PNG、GIF、JPG、WEBP的区别以及如何选择?

(1)GIF

  • GIF图片只存储8位索引,最多支持256色,
  • 采用无损压缩,尺寸较小
  • 支持透明和简单动画

适用于:色彩简单的logo,icon,线框图,简单的动画

(2)JPG

  • 采用有损压缩,可以控制压缩的质量
  • 采用直接色,色彩丰富
  • 不支持透明

适用于:色彩丰富的图片、渐变图像

(3)PNG

  • png-8是采用无损压缩,基于8位索引色的位图格式,比gif的透明的支持更好,同等质量下大小也更小,但是不支持动画。适用于图标,背景,按钮。
  • png-24采用无损压缩,是基于直接色的位图格式,大小相对以上几种更大,但是图片质量高,适用于源文件或者需要二次编辑的图片格式的保存。

(4)WEBP

  • 由Google开发,体积更小
  • 支持有损压缩和无损压缩
  • 支持透明和动画

适用于:支持webp的APP或网页

格式 优点 缺点 适用场景
gif 文件小,支持动画、透明,无兼容性问题 只支持256种颜色 色彩简单的logo、icon、动图
jpg 色彩丰富,文件小 有损压缩,反复保存图片质量下降明显 色彩丰富的图片/渐变图像
png 无损压缩,支持透明,简单图片尺寸小 不支持动画,色彩丰富的图片尺寸大 logo/icon/透明图
webp 文件小,支持有损和无损压缩,支持动画、透明 浏览器兼容性不好 支持webp格式的app和webview

6. CSS选择器有哪些?优先级?

选择器 格式
标签选择器 p
类选择器 #myclassname
id选择器 #myid
相邻兄弟选择器 h1+p
子选择器 ul>li
后代选择器 li a
通配符选择器 *
属性选择器 a[ref=“eee”]
伪类选择器 li:last-child

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器.例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:

h1 + p {margin-top:50px;}

对于选择器的优先级

  • 元素选择器:1
  • class选择器:10
  • id 选择器:100
  • 元素标签:1000

需要注意的是:

  • !important声明的样式的优先级最高
  • 如果优先级相同,则最后出现的样式生效
  • 继承得到的样式的优先级最低

属性继承性:

  • 可以继承的属性:font-size、font-family、color
  • 不可以继承的样式:border、padding、margin、width、height

7. 浮动相关

元素设置为浮动之后,display会自动变成block。

(1)什么时候需要清除浮动?

浮动造成的问题如下:

  • 父元素的高度无法撑开,影响与父级同级的元素
  • 与浮动元素同级的非浮动元素给跟随在它后面
  • 若一个元素浮动,则其前面的元素也需要浮动,否则会影响页面的结构

(2)如何清除浮动?

清除浮动的方式如下:

  • 给父级p定义height属性
  • 最后一个浮动元素之后添加一个空的p标签,并添加clear:both样式
  • 包含浮动元素的父级标签添加overflow:hidden或者overflow:auto

相关教程推荐:CSS视频教程

以上是七道重要CSS面试题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除
CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

什么是CSS网格?什么是CSS网格?Apr 30, 2025 pm 03:21 PM

CSS网格是创建复杂,响应式Web布局的强大工具。它简化了设计,提高可访问性并提供了比旧方法更多的控制权。

什么是CSS Flexbox?什么是CSS Flexbox?Apr 30, 2025 pm 03:20 PM

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

我们如何使用CSS使网站迅速响应?我们如何使用CSS使网站迅速响应?Apr 30, 2025 pm 03:19 PM

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

CSS盒装属性有什么作用?CSS盒装属性有什么作用?Apr 30, 2025 pm 03:18 PM

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器