首页 > 其他分享 >【前端八股面试】干货!!!

【前端八股面试】干货!!!

时间:2024-08-19 19:23:18浏览次数:11  
标签:flex 八股 元素 visibility 面试 干货 对齐 CSS 页面

slice与splice

  1. slice(开始索引(包含),结束索引(不包含)),返回slice中的新数组。不修改原数组。

例如:const arr = [1, 2, 3, 4, 5]; const newArr = arr.slice(1, 4);,将返回新的数组 [2, 3, 4]。

  1. splice(起始索引值(包含),结束索引值(包含),增加的元素),可删可添加可替换数组中元素。splice 改变原数组  splice是返回更新后的数组长度

例如:const arr = [1, 2, 3, 4, 5]; arr.splice(1, 2, 'a', 'b', 'c');,将返回被删除的元素组成的新数组 [2, 3],并修改原始数组为 [1, 'a', 'b', 'c', 4, 5]。

CSS有哪些方式可以隐藏页面元素

  1. opacity:0 占据空间可交互
  2. display:none 彻底隐藏元素,元素从文档流中消失,不占据空间不交互,不影响布局
  3. visibility:hidden 占据空间不交互
  4. overflow:hidden 隐藏元素溢出部分,占据空间不交互
  5. z-index:-999 层级为最底层,被覆盖
  6. transform:scale(0,0) 平面变换,元素缩为0,占据空间不交互

diaplay:none与visibility:hidden的区别:

  1. 修改display造成文档重排,修改visibility造成本元素重绘
  2. 读屏器不读取display:none的内容,读取visibility:hidden的内容
  3. display:none让元素从渲染树上消失渲染不占空间,visibility:hidden相反,只是内容不可见
  4. display:none非继承属性,子孙节点消失,修改子孙节点属性也无法显示;visibility:hidden继承属性,子孙节点设置visibility:visible可让子孙节点显示

em/px/rem/vh/vw的区别,pt/px

  1. px: 绝对单位,页面按精确像素展示
  2. %:相对于父元素的宽度比例
  3. em: 相对单位,基准点为父节点字条大小,若定义了font-size按自身计算(浏览器默认16px),整个页面1em不是一个固定值
  4. rem: 相对单位,相对于根节点html字体大小计算(html的font-size:20px的时候,那么此时的1rem=20px)
  5. vh、vw:页面视口大小布局

vw: 屏幕宽度x%

vh: 屏幕高度x%

vmin: vw、vh中较小的

vmax: vw、vh中较大的

  1. pt:pt是印刷单位,等于1/72英寸,通常用于打印样式。屏幕分辨率不固定,打印分辨率是固定的
  2. px:px是相对于屏幕分辨率的单位,通常用于打印样式。

flex布局

flex布局是一种响应式盒子模型的布局方式,可以用来实现各种复杂的页面布局和响应式设计。

flex是一个缩写属性,包含:

  1. flex-grow:1,默认0,有剩余空间也不放大;1表示会放大
  2. flex-shrink:0默认1,空间不足元素缩小
  3. flex-basis:默认auto,项目占据主轴空间的大小,定义在分配多余空间之前,用来设置元素宽,优先级高于width

flex-direction:指定子元素的排列方向,可以是 row(水平方向,默认值)、column(垂直方向)、row-reverse(水平方向,反向排列)或 column-reverse(垂直方向,反向排列)。

justify-content flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、space-between(两端对齐,项目之间间隔相等)、space-around(每个项目两侧的间隔相等)。

align-items flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)、baseline(基线对齐)、stretch(拉伸对齐,占满整个交叉轴)。

flex-wrap:定义子元素是否换行,可以是 nowrap(不换行,默认值)、wrap(换行)、wrap-reverse(反向换行)。

CSS提高性能的方法有哪些?

  1. 内联首屏关键CSS:
  1. 内联CSS关键代码使浏览器下载完html后立即渲染(渲染时间提前)
  1. 异步加载CSS:(CSS会阻塞渲染)
  • 使用JS将link标签插入head标签最后;

设置 link标签, media属性为noexis t(不阻塞页面下进行下载), 加载完后media值设为screen或 all后浏览器解析CSS;

rel属性将link元素 标记为alternate可选样式表,实现浏览器异步加载, 加载完后rel设回stylesheet;

  1. 资源压缩:

利用webpack、gulp/grunt、rollup等模块化工具,压缩CSS代码,文件变小,降低浏览器加载时间

  1. 合理使用选择器:

不要嵌套过多复杂选择器、id选择器不用再嵌套、通配符和属性选择器效率最低(勿用)

  1. 减少使用昂贵的属性:

页面重绘时,box-shadow、border-radius、filter、透明度、:nth-child等会降低浏览器渲染性能

  1. 不使用@import:

(CSS样式文件引入方式:link、@import)

  • 影响浏览器并行下载,页面加载时增加额外延迟
  • 多个@import导致下载顺序紊乱
  1. 其他

减少重排重绘、避免对可继承属性重复编写、精灵图合成所有icon图片减少http请求、小的icon转为base64编码、CSS3动画或过渡尽量使用transform和opacity实现,不要使用left top

标签:flex,八股,元素,visibility,面试,干货,对齐,CSS,页面
From: https://blog.csdn.net/m0_64019511/article/details/141328405

相关文章

  • MySQL面试相关精选
    一、数据库三大范式第一范式:1NF原子性列或者字段不能再分,要求属性具有原子性,不可再分解;单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。第二范式:2NF唯一性一张表只说一件事,是对记录的惟一性约束,要求记录有惟一标识。第三范式:3NF直接性数据不能存......
  • 【面试】事务的ACID特性有哪些?是如何保证的?
    面试模拟场景面试官:你能解释一下事务的ACID特性有哪些?是如何保证的?参考回答示例候选人:当然可以。事务的ACID特性是数据库系统中保证数据一致性和可靠性的关键特性。ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)的缩写。以下是每个......
  • 【面试】介绍几种常见的进程调度算法及其流程
    面试模拟场景面试官:你能介绍一下几种常见的进程调度算法及其流程吗?参考回答示例进程调度是操作系统管理进程的核心功能,负责在多任务环境中分配CPU时间给各个进程。常见的进程调度算法包括先来先服务(FCFS)、短作业优先(SJF)、优先级调度、轮转调度(RR)以及多级反馈队列调度等......
  • 【面试】阐述TCP和UDP的区别
    面试模拟场景面试官:你能阐述一下TCP和UDP的区别吗?###参考回答示例1.连接性TCP:面向连接(Connection-Oriented):TCP是一种面向连接的协议,在传输数据之前需要建立连接。在TCP通信过程中,客户端和服务器之间通过“三次握手”来建立连接,然后再进行数据传输,确保两者之间的......
  • .NET面试题系列(27)反射
    序言 应该场景数据库对象转实体 publicstaticList<T>TableToList<T>(DataTabletable)whereT:classORMAutoMapperSystem.TypeSystem.Type类对于反射起着核心的作用。但它是一个抽象的基类,Type有与每种数据类型对应的派生类,我们使用这个派生类的对象的方法、字段......
  • 该如何面对大量的简历筛选和繁琐的面试流程???
    在当今这个人才竞争激烈的时代,招聘工作变得越来越复杂和具有挑战性。HR在招聘过程中需要从成百上千的简历中筛选出符合岗位要求的候选人,然后面试官通过面试进一步评估他们的技能和文化适应性。过程不仅耗时而且效率低下,尤其是对于大型企业而言,面对海量的简历和面试,如何快速而准......
  • 常见面试题问题及答案
    常见面试题问题及答案1、什么是API端点(APIendpoint)?说说相关技术点用于访问特定资源或功能的网络地址或URI,代表了API的一个具体操作或服务,并定义了客户端与服务器之间进行交互的方式;1:URI(统一资源标识符),包含了协议(如HTTP/HTTPS)、主机名、路径、查询参数等2:请求方法,GET(获......
  • Mybatis的一些常用知识点(面试)
    什么是MyBatis?Mybatis是⼀个半ORM(对象关系映射)框架,它内部封装了JDBC。它让开发者在开发时只需要关注SQL语句本身,不需要花费精⼒去处理加载驱动、创建连接等繁杂的过程缺点:SQL语句的编写⼯作量较⼤SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库MyBat......
  • 【面试题 02.07. 链表相交 简单】
    题目:同:160.链表相交给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回null。图示两个链表在节点c1开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。示例1......
  • 2024年Java面试题最新整理
    一、Java基础部分面试题1.Java面向对象的三个特征封装:对象只需要选择性的对外公开一些属性和行为。继承:子对象可以继承父对象的属性和行为,并且可以在其之上进行修改以适合更特殊的场景需求。多态:允许不同类的对象对同一消息做出响应。篇幅限制下面就只能给大家展示小册部分内容......