前端面试题(CSS篇六)

一、浏览器如何判断是否支持 webp 格式图片

(1)宽高判断法。通过创建image对象,将其src属性设置为webp格式的图片,然后在onload事件中获取图片的宽高,如果能够获取,则说明浏览器支持webp格式图片。如果不能获取或者触发了onerror函数,那么就说明浏览器不支持webp格式的图片。

(2)canvas判断方法。我们可以动态的创建一个canvas对象,通过canvas的toDataURL将设置为webp格式,然后判断返回值中是否含有image/webp字段,如果包含则说明支持WebP,反之则不支持。

资料参考:

《判断浏览器是否支持 WebP 图片》icon-default.png?t=N7T8https://blog.csdn.net/jesslu/article/details/82495061

《toDataURL()》icon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement/toDataURL

二、什么是 Cookie 隔离?(或者说:请求资源的时候不要让它带 cookie 怎么做)

网站向服务器请求的时候,会自动带上cookie这样增加表头信息量,使请求变慢。如果静态文件都放在主域名下,那静态文件请求的时候都带有的cookie的数据提交给server的,非常浪费流量,所以不如隔离开,静态资源放CDN。

因为cookie有域的限制,因此不能跨域提交请求,故使用非主要域名的时候,请求头中就不会带有cookie数据,这样可以降低请求头的大小,降低请求时间,从而达到降低整体请求延时的目的。

同时这种方式不会将cookie传入WebServer,也减少了WebServer对cookie的处理分析环节,提高了webserver的http请求的解析速度。

资料参考:

《CDN 是什么?使用 CDN 有什么优势?》icon-default.png?t=N7T8https://www.zhihu.com/question/36514327?rf=37353035

三、style 标签写在 body 后与 body 前有什么区别?

页面加载自上而下当然是先加载样式。写在body标签后由于浏览器以逐行方式对HTML文档进行解析,当解析到写在尾部的样式表(外联或写在style标签)会导致浏览器停止之前的渲染,等待加载且解析样式表完成之后重新渲染,在windows的IE下可能会出现FOUC现象(即样式失效导致的页面闪烁问题)

四、阐述一下 CSSSprites

将一个页面涉及到的所有图片都包含到一张大图中去,然后利用CSS的background-image,background-repeat,background
-position的组合进行背景定位。利用CSSSprites能很好地减少网页的http请求,从而很好的提高页面的性能;CSSSprites能减少图片的字节。

优点:

减少HTTP请求数,极大地提高页面加载速度
增加图片信息重复度,提高压缩比,减少图片大小
更换风格方便,只需在一张或几张图片上修改颜色或样式即可实现

缺点:

图片合并麻烦
维护麻烦,修改一个图片可能需要重新布局整个图片,样式

五、使用 rem 布局的优缺点?

优点:
在屏幕分辨率千差万别的时代,只要将rem与屏幕分辨率关联起来就可以实现页面的整体缩放,使得在设备上的展现都统一起来了。而且现在浏览器基本都已经支持rem了,兼容性也非常的好。

缺点:
(1)在奇葩的dpr设备上表现效果不太好,比如一些华为的高端机型用rem布局会出现错乱。
(2)使用iframe引用也会出现问题。
(3)rem在多屏幕尺寸适配上与当前两大平台的设计哲学不一致。即大屏的出现到底是为了看得又大又清楚,还是为了看的更多的问题。

资料参考:

《css3 的字体大小单位 rem 到底好在哪?》icon-default.png?t=N7T8https://www.zhihu.com/question/21504656

《VW:是时候放弃 REM 布局了》icon-default.png?t=N7T8https://www.jianshu.com/p/e8ae1c3861dc

《为什么设计稿是 750px》icon-default.png?t=N7T8https://blog.csdn.net/Honeymao/article/details/76795089

《使用 Flexible 实现手淘 H5 页面的终端适配》icon-default.png?t=N7T8https://github.com/amfe/article/issues/17

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/869732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode-动态规划-01背包

一、二维数组 1、状态转移方程: 不放物品i:由dp[i - 1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。(其实就是当物品i的重量大于背包j的重量时,物品i无法放进背包中&a…

IAR 编译优化等级详解

目录 1.编译时优化器何时介入 2.编译优化等级汇总 3.优化项解读 3.1 代码移动 3.2 函数内联 3.3 循环交换 3.4 循环展开 3.5 公用表达式消除 3.6 链接阶段的优化 4 小结 大家好,这里是快乐的肌肉。 最近在迁移工程到IAR编译器上,发现编译优化…

AI赛道成功的“小”AI平台,都在做什么?

在深入了解30多家跨界拓展AI赛道业务的企业后,我们发现大家对目前的AI市场存在一定程度的误解:即认为在AI领域想要分一杯羹,只需要搞几个API,把大语言模型、绘画、视频、数字人等功能都放上去,可能就有机会占一席之地了…

Android Camera Framework:从基础到高级

目录 基础知识1. Camera API 与 Camera2 API2. 权限 关键组件1. CameraManager2. CameraDevice3. CaptureRequest 和 CaptureSession 高级功能1. 实时滤镜2. 手动控制3. 高动态范围 (HDR) 和夜间模式 在现代移动应用开发中,相机功能已成为许多应用程序的核心组成部分…

递归 迷宫问题-java

1)findWay方法是为了找出走出迷宫的路径,找到返回true,否则返回false 2)(i,j)是老鼠的位置,初始化的位置为(1,1) 3)因为是递归找路&am…

Jitsi Meet指定用户成为主持人

前言 在Jitsi Meet进行会议的时候,我们有可能会使用到预约会议的这一个功能,预约会议的时候,我们希望我预约的会议,我就是主持人,而不希望其他人是主持人。 但是Jitsi Meet默认会认为第一个进入房间的是主持人&#…

2024年网络监控软件排名|10大网络监控软件是哪些

网络安全,小到关系到企业的生死存亡,大到关系到国家的生死存亡。 因此网络安全刻不容缓,在这里推荐网络监控软件。 2024年这10款软件火爆监控市场。 1.安企神软件: 7天免费试用https://work.weixin.qq.com/ca/cawcde06a33907e6…

【Linux】一文看懂Linux静态库和动态库

文章目录 一、静态库(Static Library)二、动态库(Dynamic Library)三、静态库和动态库的比较四、静态库的制作与使用五、动态库的制作与使用六、如何区分链接的是动态库还是静态库 在Linux系统编程中,库是一组预先编写…

【全面讲解下Foxit Reader】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

3年经验的B端产品经理,应该是什么水平?

问你一个问题:你觉得3年经验的B端产品经理,应该是什么水平?很多朋友可能也没有仔细想过,自己3年后应该达到一个什么水平?能做什么体量的业务?要能拿多少薪资? 前几天和一个B端产品经理聊天&…

SQL之delete、truncate和drop区别

MySQL删除数据的方式都有哪些? 常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE;二、从原理上讲 1、DELET…

24/07/09数据结构(3.1206)数组OJ单链表实现

先做几个练习回顾一下前两个博的 顺序表: 1.给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.不需要使用额外的数组空间,你必须在原地修改数组并使用O(1)额外空间的条件下完成. 给定 nums [0, 0, 1, 1 ,1, 2, 2, 3, 3, 4],…

ctfshow-web入门-文件上传(web161、web162、web163)远程包含

目录 1、web161 2、web162 3、web163 1、web161 先传配置文件,可以上传成功 因为我前面给的 .user.ini 都是带了图片头 GIF89a 的,前面的题这个图片头可以去掉,但是在这里如果去掉是不行的。 因此后面上传的东西我们都带上这个图片头&…

FPGA程序设计

在设计FPGA时,多运用模块化的思想取设计模块,将某一功能设计成module。 设计之前要先画一下模块设计图,列出输入输出接口,再进一步设计内部功能。 状态机要画图,确定每个状态和状态之间怎么切换。状态用localparam定…

宏碁F5-572G-59K3笔记本笔记本电脑拆机清灰教程(详解)

1. 前言 我的笔记本开机比较慢,没有固态,听说最近固态比较便宜,就想入手一个,于是拆笔记本看一下有没有可以安的装位置。(友情提示,在拆机之前记得洗手并擦干,以防静电损坏电源器件&#xff09…

视频版权音乐处理☞AI分离人声、音效、背景音乐的需求和进展-2024

随着互联网的普及和短视频的兴起,视频内容的全球各大平台分发越来越普遍。然而,不同国家和地区的音乐版权、不同社媒平台拥有的版权和处理政策都存在差异,因此同一个视频在多渠道分发的时候就会产生版权侵权风险。如何既能满足全球多渠道、多…

【UE5】调用ASR接口,录制系统输出。录制音频采样率不匹配

暂时测出window能用。阿里的ASR接口当前仅支持8000和16000。UE默认采样44100。

开源项目的机遇与挑战

随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。本文将从开源项目的发展趋势、参与开源的经验分享,以及开源项目的挑战三个方…

补码一位乘法原理(布斯编码详讲)

最近在看补码乘法的时候,感觉到很奇怪的一点,那就是补码的一位乘法,就是上网查了大量的资料都没有理解到它真正的原理,总感觉还是不会。那么,补码乘法的原理到底是什么呢?而让我们一直困惑的点是哪里呢&…

MySQL 常用语句

创建数据库 CREATE DATABASE database_name; 删除数据库 DROP DATABASE database_name; 选择数据库 USE database_name; 创建表 CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, column3 datatype constraints, .... ); …