面试必考15道CSS3基础面试题(含答案)

15 篇文章 0 订阅
1 篇文章 0 订阅


前言

随着CSS的不断的发展,现在出现了CSS3,CSS3是CSS(层叠样式表)技术的升级版本,于1999年开始制订,2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块;CSS3的新特征有很多,例如圆角效果、图形化边界、块阴影与文字阴影、使用RGBA实现透明效果、渐变效果、使用@Font-Face实现定制字体、多背景图、文字或图像的变形处理(旋转、缩放、倾斜、移动)、多栏布局、媒体查询等。


提示:以下是本篇文章正文内容,下面案例可供参考

1、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的??

  • 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
  • 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin

2、box-sizing属性?

  • 用来控制元素的盒子模型的解析模式,默认为content-box
  • context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽
  • border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽

3、CSS选择器有哪些?优先级顺序?哪些属性可以继承?

  • CSS选择器:
    id选择器(#myid)、
    类选择器(.myclassname)、
    标签选择器(div, h1, p)、
    相邻选择器(h1 + p)、
    子选择器(ul > li)、
    后代选择器(li a)、
    通配符选择器(*)、
    属性选择器(a[rel=“external”])、
    伪类选择器(a:hover, li:nth-child)

  • CSS选择器优先级顺序:
    -!important > 行内样式(比重1000)> ID 选择器(比重100) > 类选择器(比重10) > 标签(比重1) > 通配符 > 继承 > 浏览器默认属性

  • CSS可以继承属性:
    font-size, font-family, color

  • CSS不可以继承属性:
    border, padding, margin, width, height

什么是 !important:
CSS 中的 !important 规则用于增加样式的权重;
!important 与优先级无关,但它与最终的结果直接相关,使用一个 !important 规则时,此声明将覆盖任何其他声明。

4、垂直居中几种方式有哪些?

  • 单行文本: line-height = height
  • 图片: vertical-align: middle;
  • absolute 定位: top: 50%;left: 50%;transform: translate(-50%, -50%);
  • flex: display:flex; margin:auto(自由水平居中)

5、display:none和visibility:hidden的区别?

  • display:none :隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当他从来不存在。
  • visibility:hidden :隐藏对应的元素,但是在文档布局中仍保留原来的空间。

6、position的值, relative和absolute分别是相对于谁进行定位的?

  • relative:相对定位,相对于自己本身在正常文档流中的位置进行定位。
  • absolute:生成绝对定位,相对于最近一级定位不为static的父元素进行定位
  • fixed: 固定定位,相对于浏览器窗口或者frame进行定位。(老版本IE不支持)
  • static:默认值,没有定位,元素出现在正常的文档流中。
  • sticky:生成粘性定位的元素,容器的位置根据正常文档流计算得出。

7、常见兼容性问题?

  • 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一。
  • Chrome 中文界面下默认会将小于 12px 的文本强制按照 12px 显示,
    可通过加入 CSS 属性 -webkit-text-size-adjust: none; 解决.

8、CSS3新增伪类有那些?

  • p:first-of-type 选择属于其父元素的首个元素
  • p:last-of-type 选择属于其父元素的最后元素
  • p:only-of-type 选择属于其父元素唯一的元素
  • p:only-child 选择属于其父元素的唯一子元素
  • p:nth-child(2) 选择属于其父元素的第二个子元素
  • :enabled :disabled 表单控件的禁用状态。
  • :checked 单选框或复选框被选中

9、display有哪些值?说明他们的作用?

  • inline(默认)–内联
  • none – 隐藏
  • block – 块显示
  • table – 表格显示
  • list-item – 项目列表
  • inline-block – 与 display: inline 相比,主要区别在于 display: inline-block 允许在元素上设置宽度和高度。

10、CSS3有哪些新特性?

  • 文字阴影:text-shadow: 5px 5px 5px #FF0000;(水平阴影,垂直阴影,模糊距离,阴影颜色)
  • font-face属性:定义自己的字体
  • 圆角(边框半径):border-radius 属性用于创建圆角
  • 边框图片:border-image: url(border.png) 30 30 round
  • 盒阴影:box-shadow: 10px 10px 5px #888888

11、 position跟display、overflow、float这些特性相互叠加后会怎么样?

  • display属性规定元素应该生成的框的类型;
  • position属性规定元素的定位类型;
  • float属性是一种布局方式,定义元素在哪个方向浮动。

类似于优先级机制:position:absolute/fixed优先级最高,有他们在时,float不起作用,display值需要调整。float 或者absolute定位的元素,只能是块元素或表格。

11、BFC 是什么?

BFC 即 Block Formatting Contexts (块级格式化上下文),它属于普通流,即:元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML 文档中的位置决定。
可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。
只要元素满足下面任一条件即可触发 BFC 特性

  • body 根元素
  • 浮动元素:float 除 none 以外的值
  • 绝对定位元素:position (absolute、fixed)
  • display 为 inline-block、table-cells、flex
  • overflow 除了 visible 以外的值 (hidden、auto、scroll)

12、DIV布局的三种方式?

常规流式布局:

  • 元素按照自身HTML元素定义的位置显示(怎么写的怎么显示)
  • 元素按照自身的常规显示特性显示
    浮动布局:
  • 左浮动 float:left;
  • 右浮动 float:right;
    定位布局:
  • 静态定位:position:static;(默认值),不写position相当于写上position:static;以前没学定位的时候其实都是静态定位,元素在它原本的位置显示,即使加了top、left等也不起作用。
  • 相对定位:position: relative;相对定位是相对于自身的原始位置进行平移,如果设置position:relative;表示相对定位。z-index:值越大越在上面

注意:z-index必须加在已经定位的元素上才起作用。

  • 绝对定位: position: absolute;子容器相对于父容器的定位,如果没有父容器,则相对于body定位。

13、设置元素浮动后,该元素的display值是多少?

  • 自动变成display:block

13、全屏滚动的原理是什么?用到了CSS的哪些属性?

原理:有点类似于轮播,整体的元素一直排列下去,假设有5个需要展示的全屏页面,那么高度是500%,只是展示100%,剩下的可以通过transform进行y轴定位,也可以通过margin-top实现

  • overflow:hidden
  • transition:all 1000ms ease

14、 ::before 和 :after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用?

  • 单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。
  • ::before就是以一个子元素的存在,定义在元素主体内容之前的一个伪元素。并不存在于dom之中,只存在在页面之中。
  • :before:after 这两个伪元素,是在CSS2.1里新出现的。起初,伪元素的前缀使用的是单冒号语法,但随着Web的进化,在CSS3的规范里,伪元素的语法被修改成使用双冒号,成为::before ::after

15、你对line-height是如何理解的?

  • 行高是指一行文字的高度,具体说是两行文字间基线的距离。
  • CSS中起高度作用的是heightline-height,没有定义height属性,最终其表现作用一定是line-height。
  • 单行文本垂直居中:把line-height值设置为height一样大小的值可以实现单行文字的垂直居中,其实也可以把height删除。
  • 多行文本垂直居中:需要设置display属性为inline-block。

总结

以上就是今天要整理的CSS3面试内容,本文仅仅简单介绍了当前CSS3面试的一部分的面试题,并且还有很多关于前端CSS3面试题还有很多,希望大家多多交流探讨,喜欢的可以点赞加关注,后续我会更新更多关于前端开发编程的内容

  • 2
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript CSS面试题是一种常见的面试题目,用于测试面试者对JavaScript和CSS的基本知识的掌握程度。这些问题涵盖了JavaScript的基本数据类型、基本规范、继承方式、作用域链、this关键字、eval函数、window对象、document对象、null和undefined的区别、事件机制、闭包、严格模式、对象判断、new操作符、JSON、延迟加载、跨域问题、页面编码、模块化开发、call和apply方法、DOM操作、数组方法、内存泄漏、Cookie隔离、Flash与Ajax交互、XML与JSON的区别等等。这些问题可以帮助面试者展示他们对JavaScript和CSS的理解和应用能力。\[1\]同时,CSS3中引入了双冒号(::)用于伪元素,而单冒号(:)用于伪类。伪元素和伪类的区别在于伪元素是在当前规范中引入的,而伪类是已经存在的。伪元素的插入内容可以出现在其他内容前或后,而伪类则不具备这个功能。\[2\]此外,为了清除浮动,可以在结尾处添加一个空的div标签,并使用clear:both属性来清除浮动,让父级div自动获取高度。但是这种方法会增加无意义的标签,语义化差。\[3\] #### 引用[.reference_title] - *1* *2* [148 CSS 与 JavaScript 基础面试题](https://blog.csdn.net/QXXXD/article/details/115460560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [CSS+JS面试题](https://blog.csdn.net/m0_47224321/article/details/121240648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值