2023年最新前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新 5

简介: 2023年最新前端面试题汇总大全(含答案超详细,HTML,JS,CSS汇总篇)-- 持续更新

41.什么是FOUC?如何避免?

FOUC: 即无样式内容闪烁,也可以称为文档样式短暂失效,主要就是指HTML已加载而样式表并未加载,此后样式表再加载而产生的闪烁现象。


如何避免:


样式表前置 : 根据浏览器渲染的顺序,将CSS在中引入或者嵌入

尽量使用link避免使用@import、

42.清除浮动的方式,各自优缺点?

额外标签法: 给谁清除浮动,就在其后额外添加一个空白标签


优点: 通俗易懂,书写方便。(不推荐使用)

缺点: 添加许多无意义的标签,结构化比较差。

父级添加overflow方法: 可以通过触发BFC的方式,实现清楚浮动效果。


优点: 简单、代码少、浏览器支持好


缺点: 内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素。不能和position配合使用,因为超出的尺寸的会被隐藏。


使用after伪元素清除浮动: :after方式为空元素的升级版,好处是不用单独加标签了。


优点: 符合闭合浮动思想,结构语义化正确,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)

缺点: 由于IE6-7不支持

43.在网页中的应该使用奇数还是偶数的字体?为什么呢?

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

44.如果需要手动写动画,你认为最小时间间隔是多久,为什么?(阿里)

多数显示器默认频率是60Hz,即1秒刷新60次,所以理论上最小间隔为1/60*1000ms = 16.7ms

45.base64的原理及优缺点?

优点可以加密,减少了HTTTP请求

缺点是需要消耗CPU进行编解码

46.流体布局,圣杯布局,双飞翼布局?

圣杯布局和双飞翼布局的区别:


相同点

两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局,并且中间部分在HTML代码中要写在前边,这样它就会被优先加载渲染。

不同点

主要的不同之处就是在解决中间部分被挡住的问题时,采取的解决办法不一样。圣杯布局是在父元素上设置了padding-left和padding-right,在给左右两边的内容设置position为relative,通过左移和右移来使得左右两边的内容得以很好的展现,而双飞翼布局则是在中间这个div的外层又套了一个div来放置内容,在给这个中间的div设置margin-left和margin-right 。

47.postcss的作用

PostCSS是一个使用JS插件转换CSS的工具。这些插件可以支持变量和混合、transpile未来CSS语法、内联图像等。


作用:


支持未来的css: 使用cssnext书写未来的css(postcss-cssnext plugin)

编译速度大大提升。PostCSS 声称比预处理器快 3-30 倍。

丰富的插件系统,解放你的双手。

css模块化,将作用域限制于组件内,避免了全局作用域的问题,再也不用担心样式名重复了

Postcss属于css后处理器,动态编译css,也就是说,在运行的时候进行编译。


48.css有个content属性吗?有什么作用?有什么应用?

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


49.水平居中方法

元素为行内元素,设置父元素text-align:center

如果元素宽度固定,可以设置左右margin为auto;

绝对定位和移动: absolute + transform

使用flex-box布局,指定justify-content属性为center

display设置为tabel-ceil

50.详细说一说css3的animation,transition

animation

css3的animation是css3新增的动画属性,这个css3动画的每一帧是通过@keyframes来声明的,keyframes声明了动画的名称,通过from、to或者是百分比来定义动画过程

每一帧动画元素的状态,通过animation-name来引用这个动画,同时css3动画也可以定义动画运行的时长、动画开始时间、动画播放方向、动画循环次数、动画播放的方式,

这些相关的动画子属性有:

animation-name定义动画名

animation-duration定义动画播放的时长

animation-delay定义动画延迟播放的时间

animation-direction定义 动画的播放方向

animation-iteration-count定义播放次数

animation-fill-mode定义动画播放之后的状态

animation-play-state定义播放状态,如暂停运行等

animation-timing-function定义播放的方式,如恒速播放、减速播放等。

transition

transition-property :规定设置过渡效果的css属性名称

transition-duration :规定完成过渡效果需要多少秒或毫秒

transition-timing-function :指定过渡函数,规定速度效果的速度曲线

transition-delay :指定开始出现的延迟时间

51.什么是css Hack?常见Hack

描述:是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以达到应用不同的CSS样式的目的。


常见hack:


属性级Hack:比如IE6能识别下划线“”和星号“*”,IE7能识别星号“*”,但不能识别下划线””,而firefox两个都不能认识。

选择符级Hack:比如IE6能识别html .class{},IE7能识别+html .class{}或者*:first-child+html .class{}。

IE条件注释Hack:IE条件注释是微软IE5开始就提供的一种非标准逻辑语句。

52.浏览器是怎样解析CSS选择器的?

浏览器解析 CSS 选择器的方式是从右到左

53.抽离样式模块怎么写,说出思路

CSS可以拆分成2部分:公共CSS 和 业务CSS:

网站的配色,字体,交互提取出为公共CSS。这部分CSS命名不应涉及具体的业务

对于业务CSS,需要有统一的命名,使用公用的前缀。可以参考面向对象的CSS

54.元素竖向的百分比设定是相对于容器的高度吗?

不是


无论是竖向还是横向的百分比设定都是相对于容器的宽度。我们可以通过margin和padding来进行验证


55.全屏滚动的原理是什么? 用到了CSS的那些属性?

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

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

56.设置元素浮动后,该元素的 display 值会如何变化

设置元素浮动后,该元素的 display 值自动变成 block


57.display:inline-block 什么时候会显示间隙?

相邻的 inline-block 元素之间有换行或空格分隔的情况下会产生间距

非 inline-block 水平元素设置为 inline-block 也会有水平间距

可以借助 vertical-align:top; 消除垂直间隙

可以在父级加 font-size:0; 在子元素里设置需要的字体大小,消除垂直间隙

把 li 标签写到同一行可以消除垂直间隙,但代码可读性差

58.pageX,clientX,screenX,offsetX区别?

pageX/Y: 对于整个页面来说,包括了被卷去的body部分的长度


clientX/Y: 点击位置距离当前body可视区域的x,y坐标


screenX/Y: 点击位置距离当前电脑屏幕的x,y坐标


offsetX/Y: 相对于带有定位的父盒子的x,y坐标

bbd6b4c095f44d67a103687b51d652fb.png

59.如何对不同IE版本浏览器做兼容测试?

使用工具切换IE版本,然后在IE浏览器运行测试


60.border- radius详解

在开发中我们经常通过正方形设置border- radius:50%来实现圆


border-radius参数选择:


border-radius:10px;将创建四个大小一样的圆角

border-radius:10px 15px 10px 15px; 四个值分别表示左上角、右上角、右下角、左下角

border-radius:10px 15px; 第一个值表示左上角、右下角;第二个值表示右上角、左下角

border-radius:10px 15px 5px; 第一个值表示左上角;第二个值表示右上角、左下角;第三个值表示右下角。

61.让页面里的字体变清晰,变细用CSS怎么做?

-webkit-font-smoothing: antialiased;


63.CSS3渐变?

CSS3 定义了两种类型的渐变(gradients):


线性渐变 - 向下/向上/向左/向右/对角方向

径向渐变 -(Radial Gradients)- 由它们的中心定义

线性渐变:


语法:background-image:linear-gradientdirection,color-stop1,color-stop2,……);

direction:渐变方向/角度,可选(45deg,to bottom,to top,to right,to left,to left top…)

color-stop:选择颜色rgba可以设置透明度,也可以设置色标点区域 例:rgba(255,255,255,0.3) 20%

径向渐变:


语法:background-image: radial-gradient(shape size at position, start-color, …, last-color);

shape 参数定义了形状。它可以是值 circle 或 ellipse。其中,circle 表示圆形,ellipse 表示椭圆形。默认值是 ellipse。

size:主要用来确定径向渐变的结束形状大小。如果省略了,其默认值为“farthest-corner”

at position起点:中心点的位置,可以是关键字(水平方向–left,center,right, 垂直方向–top,center,bottom),具体数值或百分比。

64.响应式布局和自适应布局的区别 ?

响应式布局是指通过CSS媒体查询,根据不同设备或视口宽度设置不同的样式来适应不同屏幕大小,实现页面的自动调整和优化。响应式布局可以使网站在桌面、平板电脑和手机等多种设备上都能够以最佳的显示效果呈现。

自适应布局是指根据屏幕尺寸选择合适的布局方式,使页面在不同设备上看起来更加美观和可读性更好。自适应布局相对来说更加固定一些,它的页面布局通常是由几个固定的布局组成,在不同的屏幕尺寸下选择不同的布局组合来进行展示,而不是像响应式布局那样直接改变样式。

65.z-index失效的几种情况

position属性未设置或值为static:如果要使用z-index属性,您需要首先将元素的position属性设置为relative、absolute或fixed。否则,即使设置了z-index,也无法使其生效。

父元素的z-index值高于子元素:当一个父元素和它的子元素都设置了z-index时,子元素的z-index可能会失效。

浮动元素的z-index失效:当使用浮动元素时,z-index属性可能不起作用。这是因为浮动本身就具有一定的层叠性质,并且浮动元素之间的堆叠顺序由它们在文档流中的先后顺序决定。

66.float之后display值改为?

block


67.css中的锚点

<a name="go">来我这里</a>
......
<a href="#go">我来了</a>

可以使用id属性来替代name属性 , 使用id来定义锚点,可以定位针对任何标签来定位。name属性只能针对a标签来定位。


68.移动端1px问题解决方案

利用 css 的 伪元素::after + transfrom 进行缩放

优点:全机型兼容,实现了真正的1px,而且可以圆角。适用于老项目。

缺点:暂用了after 伪元素,可能影响清除浮动。

设置viewport的scale值

优点:全机型兼容,直接写1px不能再方便。

缺点:适用于新的项目,老项目可能改动大。

使用组件库vant/ant-design-mobile

69.阻止移动端H5开发浏览器默认左右滑动行为

html{
    touch-action:none;
}
//此时上下左右都不可滑动
--------改动
html{
touch-action:none;
touch-action:pan-y;
}

70.CSS中 定位position 和 transform 移动元素的比较

性能方面:transform性能远高于position


通过translate移动,元素依然会占据其原始空间。如果通过position移动则会改变位置触发重绘


71.margin-left:auto,margin-right:auto,margin:auto区别

margin-left:auto 右对齐


margin-right:auto 左对齐


margin:auto 居中


72.css全屏滚动

overflow-y;overflow-x;scroll-snap-type;scroll-snap-align;必要属性

<style>
        html,
        body {
            height: 100%;
            margin: 0;
        }
        ul {
            margin: 0;
            /* scroll-behavior: smooth 让页面在滚动时拥有平滑的过渡效果,而不是瞬间跳转 */
            scroll-behavior: smooth;
            font-size: 40px;
            width: 100%;
            height: 100%;
            /* 
            overflow-y: auto 表示当内容超出元素的高度时,元素会显示垂直方向的滚动条以便用户浏览。如果内容不超出元素的高度,则不会显示滚动条。
            overflow-x: hidden 则表示当内容超出元素的宽度时,元素不会显示水平方向的滚动条,同时超出部分的内容也将被隐藏。
            */
            overflow-y: auto;
            overflow-x: hidden;
            border: 1px solid #000;
            /* 
            scroll-snap-type: y mandatory; 表示在垂直方向上开启滚动对齐功能,并强制要求元素对齐到滚动容器的边缘。这样可以确保每个子元素都在独立的、整数倍的位置停留,从而实现更加规整的页面布局。
            */
            scroll-snap-type: y mandatory;
            /*设置父级*/
            padding: 0;
        }
        li {
            height: 100%;
            width: 100%;
            flex-shrink: 0;
            /* 
            scroll-snap-align: center; 则表示对齐方式为中心对齐,当子元素的中心点(水平轴和垂直轴的中心点)与滚动容器的中心点重合时,就会触发对齐效果。
            */
            scroll-snap-align: center;
            /*子级设置*/
            text-align: center;
        }
        li:nth-child(1) {
            background-color: teal;
        }
        li:nth-child(2) {
            background-color: gold;
        }
        li:nth-child(3) {
            background-color: green;
        }
    </style>
  <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
目录
相关文章
|
1天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
1天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
1天前
|
前端开发 JavaScript UED
【专栏:HTML 与 CSS 前端技术趋势篇】Web 性能优化:CSS 与 HTML 的未来趋势
【4月更文挑战第30天】本文探讨了CSS和HTML在Web性能优化中的关键作用,包括样式表压缩、选择器优化、DOM操作减少等策略。随着未来趋势发展,CSS模块系统、自定义属性和响应式设计将得到强化,HTML新特性也将支持复杂组件构建。同时,应对浏览器兼容性、代码复杂度和性能功能平衡的挑战是优化过程中的重要任务。通过案例分析和持续创新,我们可以提升Web应用性能,创造更好的用户体验。
|
1天前
|
移动开发 前端开发 UED
【专栏:HTML与CSS前端技术趋势篇】渐进式增强与优雅降级在前端开发中的实践
【4月更文挑战第30天】前端开发中的渐进式增强和优雅降级是确保跨浏览器、跨设备良好用户体验的关键策略。渐进式增强是从基础功能开始,逐步增加高级特性,保证所有用户能访问基本内容;而优雅降级则是从完整版本出发,向下兼容,确保低版本浏览器仍能使用基本功能。实践中,遵循HTML5/CSS3规范,使用流式布局和响应式设计,检测浏览器特性,并提供备选方案,都是实现这两种策略的有效方法。选择合适策略优化网站,提升用户体验。
|
1天前
|
前端开发 开发者 UED
【专栏:HTML与CSS前端技术趋势篇】网页设计中的CSS Grid与Flexbox之争
【4月更文挑战第30天】本文对比了CSS Grid和Flexbox两种布局工具。Flexbox擅长一维布局,简单易用,适合导航栏和列表;CSS Grid则适用于二维布局,能创建复杂结构,适用于整个页面布局。两者各有优势,在响应式设计中都占有一席之地。随着Web标准发展,它们的结合使用将成为趋势,开发者需掌握两者以应对多样化需求。
|
1天前
|
前端开发 JavaScript 搜索推荐
【专栏:HTML 与 CSS 前端技术趋势篇】HTML 与 CSS 在 Web 组件化中的应用
【4月更文挑战第30天】本文探讨了HTML和CSS在Web组件化中的应用及其在前端趋势中的重要性。组件化提高了代码复用、维护性和扩展性。HTML提供组件结构,语义化标签增进可读性,支持用户交互;CSS实现样式封装、布局控制和主题定制。案例展示了导航栏、卡片和模态框组件的创建。响应式设计、动态样式、CSS预处理器和Web组件标准等趋势影响HTML/CSS在组件化中的应用。面对兼容性、代码复杂度和性能优化挑战,需采取相应策略。未来,持续发掘HTML和CSS潜力,推动组件化开发创新,提升Web应用体验。
|
1天前
|
前端开发 UED
【专栏:HTML与CSS实战项目篇】创建一个具有复杂布局的电商详情页
【4月更文挑战第30天】构建复杂布局的电商详情页涉及页面结构规划、样式设计和交互效果实现。首先规划顶部导航栏、商品图片展示区、商品信息区、用户评价区和相关商品推荐区。在样式设计上,注重色彩搭配、字体选择、布局与间距及图片处理。交互效果包括图片放大、添加到购物车按钮、滚动监听和评论互动,以提升用户体验。实际开发中需考虑跨设备兼容性和用户体验优化。
|
1天前
|
移动开发 前端开发 JavaScript
【专栏:HTML与CSS实战项目篇】使用HTML5与CSS3制作一个动态表单验证页面
【4月更文挑战第30天】本文介绍了使用HTML5和CSS3创建动态表单验证页面的方法。首先,简述HTML5用于构建网页内容,CSS3用于描述样式。接着,分四步展示实现过程:1) 设计包含输入框和提示信息的表单结构;2) 使用CSS3创建样式,增强视觉效果;3) 使用JavaScript监听输入事件,动态验证表单并显示错误信息;4) 测试和调试确保跨平台兼容性。通过学习,开发者能掌握创建带验证功能的表单,提升用户体验。
|
1天前
|
前端开发 测试技术 UED
【专栏:HTML 与 CSS 实战项目篇】实现一个在线产品展示页面
【4月更文挑战第30天】本文介绍了使用HTML和CSS创建吸引人的在线产品展示页面的实战步骤,包括页面设计规划、HTML结构搭建、CSS样式设计、具体页面实现、交互效果添加、优化与提升。通过简洁布局、产品列表和详情页设计,实现易用且具吸引力的展示效果。优化图片和代码,提升性能,以助企业在数字时代脱颖而出。
|
1天前
|
编解码 前端开发 JavaScript
【专栏:HTML与CSS实战项目篇】打造一个动态新闻网站
【4月更文挑战第30天】构建动态新闻网站,运用HTML和CSS提升编程技能和网页设计理解。项目包括首页、新闻列表页和详情页,设计简洁易用,包含顶部导航、轮播图和新闻列表。页面布局注重吸引力和易用性,色彩搭配选用冷色调为主,辅以亮色点缀。字体选择清晰易读,布局保持整洁。交互效果如轮播图、导航栏高亮和响应式设计增强用户体验。本文提供基础新闻网站构建指南,为进一步功能扩展和优化打下基础。