前端常见css的面试题目

前端常见css的面试题目

随着疫情的不断好转,各地都开始逐步的复工,当然对我们来说,也马上迎来所谓的金三银四跳槽季。在此,分享自己在前端领域中积累的一些经验,供自己温故知新。  

对于前端来说,涉及的知识面广,内容繁多,但是万变不离其宗,主要也就是围绕着html(5),css(less,scss,sass,styus,css3),js(es5,es6),以及常见的几大热门框架vue,react等,话不多说,直接开始进入主题。

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

1.请说出几个html5新特性

答:html5增加的新特性具体为:

立即学习“前端免费学习笔记(深入)”;

1、新增的语义/结构化标签,如增加了footer,article,main,nav等;
2、新增的input的type类型和属性,如:email,tel,number等;
3、HTML5专有的API 地理位置 本地存储 缓存等
4、新的图形标签 svg canvas 二者区别
5、新的多媒体标签 video audio source
6、废弃的一些元素标签,如:font
7、自定义元素标签
8、DOCTYPE 和字符编码charset声明

2.z-index的使用

答:z-index是用于设置标签的层级关系,使用z-index的时候需要同时设置标签的position属性(如relative或者absolute或者fixed都可),标签的默认z-index为0,可以设置负数,值越大,越在顶部

3.position的属性以及使用方式

答:position是css的定位属性,其主要包括以下几个不同的属性值,具体如下:

absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。 

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,”left:20” 会向元素的 left 位置添加 20 像素。 

static

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

inherit

规定应该从父元素继承 position 属性的值。

4.float的使用

答:属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。具体如下:

float造成的效果使元素本身变成了类似于inline-block的元素使包裹它的元素忽略它的高度,即父元素没有了高度如:给子元素box设置了height:100px;此时的父元素height也是100px。float的影响float使元素脱离了文档流按照指定的方向发生了移动,直到它的外边缘碰到包含框或者另一个浮动的边框为止。浮动只会影响他后面的元素,如果上面的元素不浮动,他也不会上去的 如果父元素太窄,无法容纳所有的浮动元素,无法容纳的浮动元素会换行显示。以换行的那个元素为基准,如果有浮动元素的高度大于换行的那个元素,那么当换行元素换行时会被高的那个元素”卡住”5.清除浮动影响的方式

答:float会造成文档流的破坏,因此,需要消除float所造成的影响一般有如下几种方案解决:

针对子元素:给浮动的子元素后面再加一个元素,加上一个clear:both属性即可正常显示,缺点是随意添加了一个空元素,不符合代码规范针对父元素:给父元素后面添加一个相邻的空元素,设置clear属性,但只是让后面的元素正常显示,并没有撑开父元素的高度针对父元素:给父元素设置高度,可以正常显示,但扩展性不好,因为一般都是由里面的内容来撑开高度针对父元素:给父元素设置display: inline-block,可以正常显示,但父元素的margin:auto失效了,而且会发现上下两个部分会出现间隙针对父元素:给父元素设置overflow: hidden,可以正常显示了,但需要配合宽度,否则会默认占满一行。6.css动画属性(如使用css制动一个旋转三角形)

答:制作一个三角形可以直接使用border的属性,具体为可以设置盒子的高宽度为0px,然后设置对应宽度的不同border的颜色属性,三角形对应的底边设置为具体的三角形颜色,其对应变不设置或者设置为宽度为0 另外两个斜边设置为transparent

旋转动画会涉及到css的两个属性,分别为:

1)transition:动画属性,可以写四个值 分别为对应动画的属性名称或者直接设置all、动画完成的时间(单位为s或者ms)、动画的变化曲线、动画开始的时间

2)transform:旋转属性 主要有rotate(弧度旋转分别还有rotate3d,rotateX,rotateY,rotateZ),translate(同理有四个),scale(同理有四个)

7.正规盒子模型和非正规盒子模型

答:盒子模型主要是计算标签的宽度或高度不一致,标准的盒子模型的包括:margin,border,padding以及内容的宽度,即:盒子的实际宽度=内容的左右margin+左右border+左右padding+内容的实际宽度;而在css3中引入了box-sizing属性,可以改变标准盒子模型的计算方式,具体为:设置box-sizing:border-box的时候,盒子的实际宽度=内容的左右margin+内容的实际宽度,当然可以直接设置box-sizing:content-box的时候即可恢复正常的标准盒子模型

8.flex弹性布局

答:1.设置盒子的display属性为flex,或者line-flex,其对应还有六个css属性,分别为:

1)flex-direction:设置子元素的排列方式(row,column,row-reverse,column-reverse)

2)flex-warp:设置子元素的是否换行(nowarp,warp,warp-reverse)

3)flex-flow:flex-direction和flex-warp的缩写,默认为row nowarp

4)justify-content:设置子元素的水平排列方式(flex-start,flex-end,center,span-around,span-between)

5)align-items:设置子元素的垂直方式(flex-start,flex-end,center,stretch,baseline)

6)align-content:设置多个轴线的排列方式(flex-start,flex-end,center,spand-around,spand-between,stretch)

2. 对应的子元素项目也拥有自身的六个css属性,分别为:

1)order:设置元素的排列权重 值越大越在后

2)flex-grow:设置元素的放大比例

3)flex-shrink:设置元素的缩小比例

4)flex-basis:设置多余空间项目主轴所占比例空间

5)flex:flex-grow和flex-shrink和flex-basis的缩写方式 默认为0 1 auto

6)align-self:设置子元素自己的垂直排列方式,默认为盒子的align-items的值

:warning::设置flex布局后,子元素的float,clear,vertical-align都无效

9.grid网格布局

答:1. 设置盒子的网格布局需要设置display为grid或者line-grid,其对应包括以下属性:

1)grid-template-columns:定义每一列的宽度

2)grid-template-rows:定义每一行的高度

3)grid-row-gap:定义行之间的间隙

4)grid-column-gap:定义列之间的间隙

5)grid-gap:定义行和列之间的间隙缩写

6)grid-teamplate-areas:定义一个区域由多个单元格组成

7)grid-auto-flow:定义容器排列顺序

8)justify-items:定义子元素的内容水平排列顺序

9)align-items:定义子元素的内容垂直排列顺序

10)place-items:定义子元素的内容水平和垂直顺序的缩写方式

11)justify-content:定义容器(网格)的水平排列顺序

12)align-content:定义容器(网格)的垂直排列顺序

13)place-content:定义容器的水平和垂直排列顺序的缩写方式

2. 子元素的属性包括:

1)grid-column-start:列开始的位置

2)grid-column-end:列结束的位置

3)grid-row-start:行开始的位置

4)grid-row-end:行结束的位置

5)grid-column:列开始和结束位置

6)grid-row:行开始和结束的位置

7)grid-area:定义元素放置在哪个区域

8)justify-self:定义元素自己的水平排列方式

9)align-self:定义元素自己的垂直排列方式

10)place-self:定义元素自己的水平和垂直排列方式

:warning::当设置为网格布局后,子元素的float,inline-block,table-cell,column-*属性全部失效

10.常见居中方案

答:

1. 行内元素水平居中:直接使用text-align:center

2. 行内元素垂直居中:vertical-align:middle并设置父级元素的行高为父级元素的高度

3. 固定宽度的元素 水平居中使用:magin:0 auto

4. flex弹性布局:设置justify-content:center水平居中,align-items:垂直居中

5. 通过padding属性进行垂直居中

6. 设置父级元素为:display:table-cell,vertical-align:middle

7. 通过伪元素设置垂直居中:设置父级元素一个伪元素 并设置其为inline-block,同时设置vertical-align:middle

8. 高度确定的时候:绝对定位+margin来垂直居中

9. 高度不确定的时候:绝对定位+transform,具体为:设置需要垂直居中的元素为:position:absolute,top:50%,transform:translateY(-50%)

10. 通过flex-duration:column来垂直居中:display:flex,flex-duration:column,justify-content:center

水平垂直居中方法:

1. 父级元素高度已知,子元素高宽固定(高度可不固定):text-align:center,line-height:父级高度

2.绝对定位+margin实现垂直水平居中,需要知道子元素高宽度

3. 绝对定位+transform实现垂直水平居中,可以不知道子元素高宽度:position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)

4. 使用display为table,子元素为display:table-cell;vertical-align:center;text-align:center子子元素设置为vertical-align:center

5. 使用父元素的伪元素进行垂直居中(父元素需要知道高度),设置伪元素的高度为100%,并设置vertical-align:middle,display:inline-block;子元素设置vertical-align:center;display:inline-block(子元素水平居中可以采用text-align:center或者margin:0 auto)

6. 子元素设置为margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;

11.伪元素的使用

答:

常见伪类——:hover,:link,:active,:target,:not(),:focus。常见伪元素——::first-letter,::first-line,::before,::after,::selection

::before和::after下特有的content,用于在css渲染中向元素逻辑上的头部或尾部添加内容。

这些添加不会出现在DOM中,不会改变文档内容,不可复制,仅仅是在css渲染层加入。

所以不要用:before或:after展示有实际意义的内容,尽量使用它们显示修饰性内容,例如图标

12.css选择器

答:通配符选择器,标签选择器,类选择器,id选择器,属性选择器,空格选择器 大于选择器 加号选择器

13.p设置padding为100%的表现形式

答:不管是标准模式还是box-sizing模式下,padding都为元素的总宽度是部分,所以此时p的表现为对应p的颜色

14.em、rem、px的用法

答:

em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。rem相对的只是HTML根元素的font-size的大小来进行计算px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。15.margin的用法及注意事项

答:margin在使用的时候因为会出现相邻两个标签之间的margin进行合并,即设置上下两个标签的margin-top和margin-bottom的时候,会进行自动的合并,以最大的那个属性值为两者之间的实际间隔

16.列举几个常见的css3的属性及用途

答:常见的有:border-radius:设置标签的圆角;box-shadow:设置阴影,box-sizing:改变盒子模型等

17.less和sass的用比较

答:

不同之处Less环境较Sass简单

Sass的安装需要安装Ruby环境,Less基于Javascript,是需要引入Less.js来处理代码输出css到浏览器,也可以在开发环节使用Less,然后编译成css文件,直接放在项目中。

Less使用较Sass简单

Less并没有裁剪CSS原有的特性,而是在现有CSS语法的基础上,为CSS加入程序式语言的特性。

Sass功能较Less强大

1、sass有变量和作用域

2、sass有函数的概念

3、进程控制:条件、循环遍历、继承、引用

4、数据结构:数组、map

Less和Sass处理机制不一样

前者是通过客户端处理的,后者是通过服务端处理,相比较之下前者解析会比后者慢一点。

关于变量在Less和Sass中的唯一区别就是Less用@,Sass用$相同之处

Less和Sass在语法上有些共性,比如下面这些:

1、混入(Mixins)——class中的class;

2、参数混入——可以传递参数的class,就像函数一样;

3、嵌套规则——Class中嵌套class,从而减少重复的代码;

4、运算——CSS中用上数学;

5、颜色功能——可以编辑颜色;

6、名字空间(namespace)——分组样式,从而可以被调用;

7、作用域——局部修改样式;

8、JavaScript 赋值——在CSS中使用JavaScript表达式赋值。

当然,在涉及到css的时候还会询问有关css预处理语言,如less,scss等,可自行查看相应的资料,在此不做过多的讲解

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

以上就是前端常见css的面试题目的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1615723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
2023年CSS面试题汇总(最新)
上一篇 2025年12月24日 05:03:28
谈谈css中的3种预处理器
下一篇 2025年12月24日 05:03:58

相关推荐

  • 小程序轮播图图片自适应:不用JavaScript,如何让图片充满49%宽度容器且高度自适应?

    小程序轮播图图片自适应:无需javascript,让图片充满49%宽度容器且高度自适应! 许多小程序开发者都面临着图片自适应的挑战。本文将解决一个实际案例:在宽度49%,高度200px的容器中,实现轮播图图片宽度100%填充容器,高度自适应,且不使用mode=”widthFix”属性(因Bug无法使…

    2026年8月30日
    100
  • VSCode怎么把Markdown保存_VSCode导出和转换Markdown文件格式教程

    答案是使用自动保存、Git版本控制和插件如Markdown PDF与Pandoc可高效保存并转换Markdown;通过相对路径管理图片、自定义CSS或Pandoc模板可避免导出格式错乱。 VSCode保存Markdown文件非常直接,它有自动保存功能,手动Ctrl+S也随时可用。至于导出和转换,这通…

    2026年8月30日
    100
  • 数智共振!三七互娱与华为构筑文娱产业新生态

    当人工智能、5g与云计算等数字技术以前所未有的方式重构文娱产业格局,沉浸式体验、个性化推荐以及全球化分发逐渐成为新常态,数字基建已成为推动文娱产业升级、连接全球用户的关键动力。 在数智文娱创新领域,总部设于广州的全球知名文娱企业三七互娱,依托“文化+科技”双轮驱动战略,在智慧办公空间建设、全球文化I…

    2026年8月29日
    100
  • 点击进入ao3网页版通道 ao3网页版经典同人永久收藏

    AO3是同人爱好者的宝藏平台,因其用户友好的标签系统、非营利性质和对创作自由的尊重而备受青睐。通过 archiveofourown.org 可直接访问,支持精准搜索、自定义界面皮肤、整本加载与多格式下载,便于顺畅浏览与永久收藏优质同人作品。 访问AO3的网页版其实非常直接,它就是那个能让你一头扎进无…

    2026年8月29日
    200
  • mPDF 中单页内容输出的挑战与策略

    在使用 mPDF 将 HTML 导出为 PDF 时,用户常希望所有内容能保持在单个页面内。然而,mPDF 对自动分页的控制能力有限,且不提供“孤行”或“孤儿行”保护机制。这意味着,若内容自然超出页面边界,mPDF 将自动分页,难以强制所有内容在单页显示。理解其分页机制的局限性是实现预期输出的关键。 …

    2026年8月29日
    200
  • 安谋科技CEO陈锋:立足全球标准与本土创新,赋能AI计算“芯”时代

    安谋科技CEO陈锋:立足全球标准与本土创新,赋能AI计算“芯”时代安谋科技CEO陈锋:立足全球标准与本土创新,赋能AI计算“芯”时代安谋科技CEO陈锋:立足全球标准与本土创新,赋能AI计算“芯”时代安谋科技CEO陈锋:立足全球标准与本土创新,赋能AI计算“芯”时代

    7月11日,2025中国集成电路设计创新大会暨ic应用生态展(icdia2025)在苏州金鸡湖国际会议中心隆重开幕。安谋科技(中国)有限公司(以下简称“安谋科技”)ceo陈锋受邀出席大会高峰论坛,并发表题为《立足全球标准与本土创新,赋能ai计算“芯”时代》的主旨演讲。围绕当前ai大模型技术的发展趋势…

    2026年8月29日 用户投稿
    000
  • yii2asset使用cdn

    在 Yii2 中使用 CDN 加速资源可以:注册一个 CDN 服务,并在其中设置 CDN 区域和缓存规则。在 Yii2 配置文件中配置 CDN:添加 CDN URL、启用链接资产、指定要加速的包。例如,使用 Bootstrap 资产时,可将其 CDN 配置为 ‘//cdn.example…

    2026年8月29日
    100
  • 百度浏览器兼容模式切换 解决网页显示问题的实用指南

    兼容模式可解决百度浏览器访问老旧网站时的显示问题,通过切换至IE内核模拟渲染。2. 网页异常多因历史遗留技术与现代标准不兼容,兼容模式用Trident内核适配旧站,极速模式用Blink内核支持现代网页。3. 布局错乱、功能失效、资源无法加载等现象提示需切换兼容模式,点击地址栏右侧IE图标选择即可。 …

    2026年8月29日
    000
  • laravel8 的优化点

    Laravel 8 针对性能优化提供了以下选项:缓存配置:使用 Redis 缓存驱动、缓存门面、缓存视图和页面片段。数据库优化:建立索引、使用查询范围、使用 Eloquent 关系。JavaScript 和 CSS 优化:使用版本控制、合并和缩小资产、使用 CDN。代码优化:使用 Composer …

    2026年8月29日
    100
  • iaravel 如何学习

    学习 Laravel 的步骤有:具备 PHP 基础知识。安装 Laravel 框架。了解 Laravel 架构。学习基本语法:路由、控制器、视图、模型。构建小型应用练习框架使用。参阅官方文档获取详细指引。加入社区交流心得、寻求帮助。保持更新,关注新特性。 如何学习 Laravel Laravel 是…

    2026年8月29日
    000
  • VSCode盒子背景怎么居中_VSCode界面元素居中显示教程

    答案:通过Zen模式结合手动调整窗口大小,可实现VSCode代码区域的视觉居中。进入Zen模式(Ctrl+K Z)隐藏非编辑元素,再将窗口拖窄并置于屏幕中央,使代码居中显示,提升专注度;也可使用“Centered Editor”类插件强制居中,或利用系统窗口管理功能优化布局。配合主题、字体、面板位置…

    2026年8月29日
    100
  • 如何解决Laravel项目中生成PDF文档的问题?spatie/laravel-pdf助你轻松实现!

    可以通过一下地址学习composer:学习地址 在 laravel 项目中,生成 pdf 文档是一个常见的需求,尤其是在需要生成报表、发票或其他文档时。然而,传统的生成 pdf 的方法往往复杂且难以实现现代化布局。最近,我在项目中遇到了这样的问题:需要生成一个包含复杂布局的发票 pdf,传统方法难以…

    用户投稿 2026年8月29日
    500
  • VSCode怎么编写地图定位_VSCode集成地图API开发位置服务应用教程

    答案是集成地图API实现定位需选择服务商、引入SDK、初始化地图并调用定位功能。具体为:在VSCode中创建Web项目,引入百度等地图API的SDK,通过HTML页面加载地图容器,使用JavaScript初始化地图实例,并结合浏览器Geolocation API或地图SDK自带控件获取位置,最后添加…

    2026年8月29日
    100
  • ThinkPHP 6 环境配置(Nginx/Apache + PHP 8)

    配置 thinkphp 6 环境需要在 nginx 或 apache 上结合 php 8 进行设置。1) nginx 配置:编辑 nginx.conf 文件,设置 server 块以正确处理 php 文件。2) apache 配置:在 httpd.conf 文件中添加 virtualhost 配置,…

    2026年8月29日
    200
  • Mac+IDEA+百度富文本UEditor

    Mac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditorMac+IDEA+百度富文本UEditor

    最近,我在项目中需要嵌入一个富文本编辑器,考虑到百度ueditor的强大功能,决定使用它。然而,从%ignore_a_1%+eclipse环境转到mac+idea后,遇到了几个问题。经过一番努力,终于解决了这些问题,现分享我的经验。 环境:Mac + IDEA + UEditor 基于 Maven+…

    2026年8月29日 用户投稿
    200
  • 如何解决HTML解析问题?使用paquettg/php-html-parser可以!

    可以通过一下地址学习composer:学习地址 在开发一个需要从网页中提取特定数据的项目时,我遇到了一个棘手的问题:如何高效地解析和操纵html内容。尝试了几种方法后,我发现这些方法要么过于复杂,要么不够灵活,无法满足我的需求。最终,我找到了paquettg/php-html-parser这个库,它…

    用户投稿 2026年8月29日
    400
  • VSCode怎么更改鼠标颜色_VSCode自定义鼠标指针颜色与样式教程

    答案:可通过修改VSCode设置自定义光标颜色、样式、粗细及闪烁方式以提升编码体验。具体包括在settings.json中配置editor.cursorStyle、editor.cursorWidth、editor.cursorBlinking,以及通过workbench.colorCustomiz…

    2026年8月28日
    100
  • 推荐几款好用的文本编辑器

    推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器推荐几款好用的文本编辑器

    作为程序员,编写和查看代码是日常工作的重要部分。今天,我将为大家介绍几款实用的文本编辑器。 Sublime Text 是一款轻量、简洁、高效且跨平台的编辑器。 Sublime Text的特色功能包括: 出色的扩展功能,官方称为安装包(Package)。它没有传统的右侧滚动条,而是用代码缩略图代替,这…

    2026年8月28日 用户投稿
    300
  • 如何解决PHP中生成随机内容的问题?使用pragmarx/random库可以!

    可以通过一下地址学习composer:学习地址 在开发一个php项目时,我需要生成各种随机内容,包括字符串、数字和符合特定模式的文本。这个需求看似简单,但实际上却充满了挑战。最初,我尝试使用php的内置函数如rand()和mt_rand(),但这些函数生成的随机数不够安全,无法满足我的需求。此外,我…

    用户投稿 2026年8月28日
    100
  • 如何清理浏览器缓存_各浏览器缓存清除指南

    清理浏览器缓存是指删除浏览器为加速网页加载而存储的临时文件,如图片、css、javascript等;2. 主要目的是解决网页显示错乱、加载旧内容等问题,并释放硬盘空间;3. 操作核心是进入浏览器设置或使用快捷键,选择清除数据类型时务必勾选“缓存的图片和文件”;4. 不同浏览器操作路径略有差异:chr…

    2026年8月28日
    200

发表回复

登录后才能评论
关注微信