前端面试题(19)|求职季面试题分享|答案

97 阅读3分钟

1、浏览器怎么知道CSS选择器要渲染哪个元素?

答:(1)解析HTML文档

(2)构建CSSOM(CSS对象模型)

(3)匹配选择器

(4)计算样式

(5)渲染树构建

(6)布局(回流)

(7)绘制(重绘)

2、清除浮动有哪些方式?

答:(1) 额外的清除元素:在浮动元素后添加一个空元素,并设置 clear: both; 属性。

(2)伪元素:在父元素上使用 :after 伪元素,并设置 content 和 display: table; 或 display: block; 来清除浮动。

(3)Flexbox:将父元素设置为Flex布局,这样子元素的浮动不会影响布局。

(4)Grid布局:将父元素设置为Grid布局,同样可以避免浮动影响。

(5)Overflow属性:给父元素设置 overflow: auto; 或 overflow: hidden; ,使其包含浮动子元素。

(6)双栏布局:使用双栏布局技术,其中一栏用于内容,另一栏用于清除浮动。

(7)BFC(块格式化上下文):通过某些CSS属性(如 overflow: hidden; )创建BFC,以包含浮动元素。

3、伪类和伪元素的区别?

答:(1)功能:伪类基于元素的状态,伪元素基于元素的位置。

(2)文档树:伪类不创建新节点,伪元素创建虚拟的新节点。

(3)使用场景:伪类常用于交互,伪元素常用于装饰。

4、margin下边距重叠问题?(块元素的父子元素之间外边距塌陷)

答:(1)问题:在CSS中,当两个垂直方向上的块级元素(block-level elements)相邻放置时,它们的垂直外边距(margin)可能会发生重叠现象,这种现象被称为“外边距折叠”(margin collapsing)。

(2)以下是外边距重叠的一些要点:相邻元素、外边距计算方式、方向性(垂直)、清除浮动、BFC。

5、Uniapp中怎么区分微信和支付宝?

答:(1)使用 uni.getEnv  API:这个API可以获取当前的运行环境,通过检查返回值来确定是微信小程序还是支付宝小程序。

(2)条件编译:Uniapp支持条件编译,可以使用 #ifdef MP-WEIXIN 和 #ifdef MP-ALIPAY 来编写特定于微信或支付宝的代码。

(3)平台特定的API调用:根据微信和支付宝提供的平台特定API来区分,因为它们可能有不同的API实现。

6、什么是预处理语言?

答:预处理语言通常指的是在实际编译或解释之前,对源代码进行处理的编程语言或工具。比如sass、less等。

7、遇到过哪些浏览器的兼容性问题?

答:(1)CSS前缀:

问题:某些CSS属性需要浏览器前缀,如 -webkit- 、 -moz- 等。

解决方法:使用Autoprefixer工具自动添加所需的前缀。

(2)Flexbox和Grid布局:

问题:旧版浏览器可能不支持Flexbox或CSS Grid。

解决方法:使用Flexbox或Grid的polyfills,或者回退到更传统的布局方法,如浮动(floats)。

(3)HTML5和CSS3特性:

问题:旧版浏览器可能不完全支持HTML5和CSS3。

解决方法:使用特性检测库(如Modernizr)来检测浏览器支持情况,并提供回退方案。

(4)JavaScript新特性:

问题:旧版浏览器可能不支持ES6+的新特性。

解决方法:使用Babel等工具将ES6+代码转译为ES5代码。

(5)跨域问题:

问题:不同浏览器对CORS的支持可能不同。

解决方法:确保服务器正确设置CORS头部,或者使用JSONP作为替代方案(仅限于GET请求)。

更多详情:爱米的前端小笔记(csdnxitujuejinzhiHuBaidu小红shu)同步更新,等你来看!都是利用下班时间整理的,整理不易,大家多多👍💛➕🤔哦!你们的支持才是我不断更新的动力!