CSS面试题汇总-程序员宅基地

技术标签: css  前端  

先别着急,看看下面这些小标题,是否能完整回答上来?不会的直接点标题跳转^v^

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

2、伪类和伪元素有什么区别?列举常用的伪类和伪元素?css选择器优先级是什么?

3、几种常见的css布局?通过什么方式实现?

4、网页中应该使用奇数还是偶数的字体?为什么呢?字体单位有哪些?

5、BFC是什么?有什么用?开发中的应用是什么?

6、知道css有个content属性吗?有什么作用?有什么应用?

7、如何居中一个div?垂直居中有哪些方法?水平居中有哪些方法?垂直水平居中呢?如何居中一个浮动元素?如何让绝对定位的div居中?

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

9、你对line-height是如何理解的?三种赋值方式有何区别?(带单位、纯数字、百分比)

10、回流和重绘分别是什么?触发条件?性能影响?如何减少回流和重绘?

11、link与@important的区别?


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

· 有两种:怪异(IE)盒子模型、W3C盒子模型;

盒模型:content、padding、border、margin

区别:IE的content部分把border和padding部分算了进去

IE8及其以下版本浏览器,未声明DOCTYPE,内容宽高会包含内填充和边框,成为怪异盒模型( IE盒模型 )

标准(W3C)盒模型:元素宽度 = width + padding +  margin + border

怪异(IE)盒模型:元素宽度 = width + margin

标准浏览器通过设置css3的box-sizing:border-box,触发怪异模式解析宽高。

box-sizing常用的属性有哪些?分别有什么作用?

box-sizing: content-box; 默认的标准(W3C)盒模型

box-sizing:border-box;怪异盒模型

box-sizing:inherit;继承父元素box-sizing属性的值


 2、伪类和伪元素有什么区别?列举常用的伪类和伪元素?css选择器优先级是什么?

伪类和伪元素:共同作用是给元素添加一些特殊的效果或样式

 伪类:用于选择某个元素的特定状态

伪元素:用于创建一些虚拟的元素

伪类:

:hover 用于选择鼠标悬停在元素上时的状态
:active 用于选择元素被激活(例如被点击)时的状态

: focus 用于聚焦时改变状态

: focus-within 元素或者其子元素聚焦时都会匹配

:vistied a是否访问过

:enabled 和:disabled 能访问和不能访问

    注意:a标签设置disabled属性无效,而非a元素配合pointer-events: none实现

:readonly 和:readwrite,匹配是否设置了readonly属性的输入框元素

    注意:只对input和textarea有效

:root 匹配的就是html根元素标签

:first-child和:last-child 用于匹配父元素的第一个/最后一个子元素

:only-child 匹配只有一个子元素的元素

:nth-child(n) 和:nth-last-child(n) 匹配第n个子元素/匹配从后往前数第n个子元素

   注意:

   :nth-child(odd/even) 奇数/偶数

   :nth-child(-n + 3) 匹配前三个元素

:first-of-type 和:last-of-type 匹配那些具有相同标签的第一个/最后一个子元素

:only-type-of 匹配子元素中标签类型与selector元素一致且只有一个的selector元素

   注意:匹配:only-child的元素一定匹配:only-of-type,反之则不一定

:nth-of-type() 和nth-last-type() 匹配那些具有相同标签的第n个/从后往前数n个

:not() 否定伪类

   注意:

:not()伪类自身优先级为0,最终的优先级由()的选择器表达式决定

:not()伪类可以不断级联,如input:not(:disabled):not(:read-only){ }

:is() 可以把括号中的选择器依次分配出去,对于那种复杂的有很多逗号分隔的选择器非常有用

  注意::is()最终的优先级由()的选择器表达式决定

伪元素:

::first-letter 表示第一个字母

::first-line 表示第一行

::selection 选中的内容

::before 元素的开始位置

::after 元素的结束位置

选择器优先级:

!important > id > class > tag   注意:!important 比内联优先级高


 3、几种常见的css布局?通过什么方式实现?

单列布局: 没什么要点,用margin :auto达到水平居中即可

.contenter {
    margin: auto;
}

双列布局


4、网页中应该使用奇数还是偶数的字体?为什么呢?字体单位有哪些?

偶数字号相对更容易和web设计的其他部分构成比例关系。

px:固定值

em:继承父级元素的字体大小,默认1em=16px。em = 像素值 / 父级font-size

rem:相对长度单位,可以做移动适配

html {
    font-size: 20px;
}

<div style="font-size: 1rem;">111</div> //20px
<div style="font-size: 2rem;">222</div> //40px

注意:如何做移动适配:以设计稿400px为例,移动设备 / 设计稿宽度 * x = x px,x为任意整数值


5、BFC是什么?有什么用?开发中的应用是什么?

BFC: 块级格式上下文block formatting context ,是一个独立的渲染区域,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响

应用:

阻止margin重叠;自适应两栏布局;可以阻止元素被浮动元素覆盖;可以包含浮动元素(清除内部浮动)

BFC布局规则:浮动的元素会被父级计算高度(父级元素触发了BFC)

非浮动元素不会覆盖浮动元素的位置(非浮动元素触发了BFC)

margin不会传递给父级(父级触发BFC)

属于同一个BFC的两个相邻元素上下margin会重叠


6、知道css有个content属性吗?有什么作用?有什么应用?

content属性专门应用在before/after伪元素上,用来插入生成内容。最常见的是利用伪类来清除浮动

.clearfix:after {
    content:".";       //这里利用到了content属性
    display:block;
    height:0;
    visibility:hidden;
    clear:both;  //清除左右两边的浮动
 }

7、如何居中一个div?垂直居中有哪些方法?水平居中有哪些方法?垂直水平居中呢?如何居中一个浮动元素?如何让绝对定位的div居中?

水平居中:

1、flex+margin:auto

2、flex+justify-content :center 

3、定位 + bottom + right + top + left 0 + margin : auto

4、grid + justify-self :center + align-self :center

5、定位 + left 50%  + margin-left - 一半的px值

垂直居中:

1、line-height 

水平垂直居中:

1、absolute +  bottom + right + top + left 0 + margin : auto

2、absolute +  left 50% + top 50% + margin-left/top - 一半的px值

3、flex+justify-content :center + align-items:center


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

原理类似于轮播图,超出的部分隐藏,滚动时显示

可能用到的css属性:overflow: hidden; transform: translate(100%, 100%); display:none


9、你对line-height是如何理解的?三种赋值方式有何区别?(带单位、纯数字、百分比) 

line-height 指一行字的高度,包含了字间距,实际上是下一行基线到上一行基线的距离

如果一个标签没有定义height属性,那么其最终表现的高度是由line-height决定的

一个内容没有设置高度,那么撑开容器高度的是line-height而不是容器内的文字内容

把line-height值设为height一样大可以实现单行文字的垂直居中

line-height 和 height 都能撑开一个高度,height会触发haslayout,而line-height不会


10、回流和重绘分别是什么?触发条件?性能影响?如何减少回流和重绘?

重绘:当元素的样式改变需要浏览器重新绘制样式

回流:当元素的大小、隐藏、位置改变,需要浏览器重新计算元素几何信息,以及重新渲染页面时,会影响当前元素,祖先元素和后代元素。

触发条件:

  • 添加或删除可见的DOM元素
  • 元素尺寸改变
  • 内容变化,例如用户在input框中输入文字
  • 页面渲染初始化
  • 浏览器窗口尺寸改变 —— 触发重排(回流)。

性能影响:

  • 回流比重绘的代价要高。回流的过程比重绘复杂,因为它涉及到更多的计算。
  • 回流必将引发重绘,而重绘不一定会引发回流。

如何减少回流和重绘:

使用transform替代top。
使用visibility替换display: none —— 因为前者只会触发重绘,后者会触发回流(重排)。
不要使用table布局,因为可能很小的一个小改动会导致整个table的重新布局。
避免在循环中对DOM进行频繁操作,可以使用documentFragment进行批量操作。

container.style.padding = '20px'; //触发回流,改变元素大小
container.style.borderWidth = '5px';
//使用cssText合并成一次操作
container.style.cssText = 'padding: 20px; border-width: 5px;';
let list = document.getElementById('list'),
    frag = document.createDocumentFragment(),
    items = ['Item 1', 'Item 2', 'Item 3'];

// 使用DocumentFragment作操作
items.forEach(item => {
    let li = document.createElement('li');
    li.textContent = item;
    frag.appendChild(li);
});

// 把DocumentFragment一次性添加到DOM中,减少页面回流
list.appendChild(frag);

11、link与@import的区别? 

1、link是HTML方式,@import是css方式

2、link最大限度支持并行下载,@import过多嵌套导致串行下载,出现FOCU(文档样式短暂失效)

3、link可以通过rel = “ alternate stylesheet”指定候选样式

4、浏览器对link支持早于@import,可以使用@import对老浏览器隐藏样式

5、@import必须在样式规则之前,可以在css文件中引用其他文件

6、总体来说,link优于@import

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48447023/article/details/137949951

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文