面试 CSS 框架八股文十问十答第二期

面试 CSS 框架八股文十问十答第二期

作者:程序员小白条,个人博客

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!

⭐点赞⭐收藏⭐不迷路!⭐

1)对盒模型的理解

盒模型是指在网页布局中,每个元素被看作一个矩形的盒子,这个盒子包含了元素的内容(content)、内边距(padding)、边框(border)、和外边距(margin)。盒模型分为标准盒模型和IE盒模型,主要的区别在于它们计算宽度和高度的方式不同。

  • 标准盒模型:元素的宽度和高度仅包括内容框,不包括内边距、边框和外边距。
  • IE盒模型:元素的宽度和高度包括了内容框、内边距和边框,但不包括外边距。

2)为什么有时候⽤translate来改变位置⽽不是定位?

使用 translate 来改变位置相比使用定位(position 属性)有一些优势:

  • 性能优势translate 是在 GPU 层面执行的,因此在动画等高性能需求场景下,使用 translate 通常比使用定位更加流畅。
  • 不影响文档流translate 不会改变元素在文档流中的位置,因此对其他元素的布局不会产生影响,而定位可能会导致文档流的重新排列。
  • 更容易进行硬件加速:由于 translate 是在 GPU 上执行的,可以更容易地利用硬件加速,提高动画性能。

3)li 与 li 之间有看不见的空白间隔是什么原因引起的?如何解决?

这是因为 HTML 中的换行和空格等空白字符导致的。这些空白字符会被解释成文本节点,造成 li 元素之间产生额外的空白。

解决方法有多种:

  • 删除 HTML 代码中的空白字符:将 li 标签写在一行,避免空格和换行。

    <ul><li>Item 1</li><li>Item 2</li><li>Item 3</li>
    </ul>
    
  • 使用 CSS 设置负 margin 或者 font-size:通过设置负 margin 或者将父元素的 font-size 设置为 0 来消除空白。

    ul {font-size: 0;
    }
    li {font-size: 16px; /* 恢复字体大小 */
    }
    

4)CSS3中有哪些新特性

CSS3 引入了许多新特性,其中一些主要包括:

  • Flexbox 布局:提供了一种更加灵活的布局方式,适用于不同屏幕尺寸和设备。
  • Grid 布局:允许开发者以网格形式布局页面,更直观和灵活。
  • 过渡(Transitions)和动画(Animations):用于实现更丰富的交互和动画效果。
  • 多列布局:通过 column-countcolumn-gap 等属性实现多列文本布局。
  • 媒体查询:使得样式能够根据设备的不同特性而进行调整,实现响应式设计。
  • 自定义字体(@font-face):允许开发者使用自定义字体,而不依赖于用户的计算机上已安装的字体。

5)替换元素的概念及计算规则

替换元素是指一些具有内容、但在渲染时会被替换为其他内容的元素,如 imginputvideo 等。这些元素的内容通常由外部资源定义,而不是由文档本身提供。

替换元素的计算规则包括:

  • 宽度和高度:如果在 CSS 中指定了宽度和高度,则按照指定的值进行渲染,否则根据实际内容大小渲染。
  • 外边距和内边距:外边距和内边距同样按照 CSS 中的规则进行计算。
  • 替换元素的默认尺寸:每个替换元素都有一个默认的尺寸,比如 img 的默认宽度和高度是实际图片的尺寸。

替换元素在布局时会遵循普通流,但由于其内容可能来自外部资源,其尺寸的计算会根据具体情况而有所不同。

6)常见的图片格式及使用场景

常见的图片格式包括:

  • JPEG(Joint Photographic Experts Group):适用于照片和复杂图像,支持高压缩比,但会导致图像失真。常用于摄影和图像展示。
  • PNG(Portable Network Graphics):支持透明背景,无损压缩,适用于图标、透明图像和图形。通常用于网页设计和UI元素。
  • GIF(Graphics Interchange Format):支持动画,但色彩表现较差,适用于简单动画和图标。
  • SVG(Scalable Vector Graphics):矢量图形格式,可缩放且不失真,适用于图标和矢量图形,尤其在响应式设计中常用。
  • WebP:谷歌开发的图像格式,结合了JPEG和PNG的优点,支持高压缩比和透明度,但不被所有浏览器支持。

不同的格式适用于不同的场景,要根据具体需求选择合适的图片格式。

7)对 CSSSprites 的理解

CSS Sprites 是一种将多个小图标或图片合并到一个大图中,然后通过CSS来控制显示其中某一部分的技术。它的优点包括:

  • 减少HTTP请求数量:将多个图片合并成一个,减少了浏览器向服务器发出的HTTP请求,提高页面加载速度。
  • 减少图像加载延迟:通过一次请求加载所有图像,减少了延迟,提高了用户体验。
  • 节省带宽:减少了图像的总体积,节省了带宽成本。
  • 方便管理:通过CSS控制哪个部分的图像显示,方便管理和维护。

CSS Sprites常用于图标、按钮、小图等元素的制作和展示。

8)什么是物理像素,逻辑像素和像素密度,为什么在移动端开发时需要用到@3x, @2x这种图片?

  • 物理像素(Physical Pixel):是显示设备上的实际物理点,它们组成了屏幕上的图像。
  • 逻辑像素(Logical Pixel):是指开发者在设计页面时使用的抽象像素单位,通常与物理像素不一一对应。在高分辨率屏幕上,一个逻辑像素可能对应多个物理像素。
  • 像素密度(Pixel Density):是指每英寸(或每厘米)上的物理像素数量,通常以DPI(每英寸像素数)或PPI(每英寸点数)来表示。高像素密度屏幕有更多的物理像素,因此能够显示更多细节。

在移动端开发中,因为不同设备有不同的像素密度,为了保证图像在不同设备上的清晰度,需要提供多个版本的图像。通常使用 @3x@2x@1x 等后缀来表示不同分辨率的图像,以确保在高分辨率屏幕上显示清晰,同时节省带宽和加载时间。

9)margin 和 padding 的使用场景

  • Margin(外边距):用于控制元素与周围元素之间的间距。常用于在元素之间创建空白区域,控制元素的外部间距,以调整页面布局。
  • Padding(内边距):用于控制元素的内容与元素边框之间的间距。常用于控制元素的内部间距,以改变内容与边框的距离。

具体使用场景包括:

  • Margin:用于在元素之间创建间隔、调整元素在页面中的位置、垂直居中元素等。
  • Padding:用于调整元素内部内容与边框之间的距离,控制文本或元素内部的排列和间距。

10)对line-height 的理解及其赋值方式

Line-height 是用于控制行间距(行高)的CSS属性。它可以影响文本行的垂直间距,从而影响文本的整体布局和可读性。

  • Line-height 的值可以是一个无单位的数字,表示行高与当前文本字体大小的倍数。例如,line-height: 1.5; 表示行高是字体大小的1.5倍。
  • Line-height 也可以是一个具体的长度单位,如像素(px)、百分比(%)等,用于精确控制行高的具体大小。
  • 如果将 line-height 设置为正常(line-height: normal;),它会采用默认的行高,通常由浏览器决定,以保持最佳的可读性。

适当调整 line-height 可以改善文本的排版,使其更易阅读。较大的行高可以提高文本的可读性,较小的行高可以节省空间。在响应式设计中,通常根据不同屏幕尺寸和字体大小来调整 line-height 的值。

开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system

已 300 + Star!

⭐点赞⭐收藏⭐不迷路!⭐

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

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

相关文章

张维迎《博弈与社会》纳什均衡与囚徒困境博弈(2)囚徒困境博弈

囚徒困境大家应该都比较熟悉了&#xff0c;我觉得这篇的意义大概在与&#xff0c;经济学术语的运用&#xff1f; 囚徒困境&#xff1a;个人理性与集体理性的矛盾 假定有两个犯罪嫌疑人共同作案。警察抓住他们以后&#xff0c;分开拘押&#xff0c;并告诉他们&#xff1a;可以选…

Chiplet,汽车“芯”风向

异构集成、高速互联、算力灵活可扩展正在成为新一轮汽车芯片竞争的焦点。尤其是随着以ChatGPT为代表的大数据、大模型产品在车端的落地&#xff0c;对于芯片的要求还在持续提升。 本周&#xff0c;12家日本汽车制造商&#xff08;包括丰田、日产、本田等&#xff09;、零部件制…

设计与实现基于Java+MySQL的考勤发布-签到系统

课题背景 随着现代经济的迅速发展&#xff0c;电子考勤签到服务已经渗透到人们生活的方方面面&#xff0c;成为不可或缺的一项服务。在这个背景下&#xff0c;线上签到作为考勤签到的一种创新形式&#xff0c;为用户提供了便捷的操作方式&#xff0c;使得任务签到、个人签到记…

mac 窗口管理器

1、下载地址 链接: https://pan.baidu.com/s/1uINZgeoR4zBWgCtTvAi8zA?pwdvvfm 提取码: vvfm 2、配置可以直接网上搜教程

代码随想录算法训练营第35天 | 860.柠檬水找零 406.根据身高重建队列 452.用最少数量的箭引爆气球

柠檬水找零 局部最优&#xff1a;收到20元时优先找零10元5元&#xff0c;不够再找零3个5元&#xff0c;因为5元可以找零20和10&#xff0c;更有用。全局最优&#xff1a;完成所有的找零。 class Solution { public:bool lemonadeChange(vector<int>& bills) {int fi…

c++的发展史、缺省参数、命名空间你了解吗?

1.c的发展历史概述 1.1.什么是c C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的 程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机…

TypeScript实战系列之强力爆破泛型的困扰

目录 介绍开始如何理解泛型语法泛型约束泛型默认值练习后续 介绍 泛型在typescript 中使用频率相当高&#xff0c;也给了初学者相当大的阻碍。希望这一篇文章&#xff0c;能帮助你们爆破它。 开始 下面通过模拟实现一个简易版本的axios来引入泛型的使用 // axios.ts type M…

如何在centos7上配置为桥接模式

一、打开虚拟机的设置页面&#xff0c;设置虚拟机桥接模式如图&#xff1a;选择桥接模式&#xff08;复制物理网络连接可选&#xff09; 二、net0对应桥接模式的配置&#xff0c;如下方式选择 三、 在 CentOS 7 中&#xff0c;通过编辑网络配置文件来配置网络参数。找到 /etc…

(九)springboot实战——springboot3下的webflux项目参数验证及其全局参数验证异常处理

前言 在上一节内容中&#xff0c;我们介绍了如何在webflux项目中自定义实现一个全局的异常处理器ErrorWebExceptionHandler&#xff0c;正常情况下其可以处理我们系统的运行时异常&#xff0c;但是无法处理参数验证的异常WebExchangeBindException&#xff0c;所以这里提供另外…

Java 继承

继承概述 继承是面向对象的又一大特征&#xff0c;也是实现软件复用的重要手段。多个类中存在相同属性和行为时&#xff0c;将这些内容抽取到单独一个类中&#xff0c;那么多个类无需再定义这些属性和行为&#xff0c;只要继承那一个类即可。 继承的特点 Java 的继承通过 exte…

最大K长度子数组(c++题解)

题目描述 给定一个整数序列a1,a2 &#xff0c;a3...请你计算长度为 K 的最大连续子数组。 注意&#xff1a;这里的长度为 K&#xff0c;表示连续子数组的元素个数为 K&#xff0c;这里的最大是指 K 个元素的和最大。 输入格式 第一行包含两个整数&#xff1a;N,K。 接下来…

算法随想录第四十八天打卡| 198.打家劫舍 , 213.打家劫舍II , 337.打家劫舍III

详细布置 今天就是打家劫舍的一天&#xff0c;这个系列不算难&#xff0c;大家可以一口气拿下。 198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution(…

STM32 E18-D80NK红外避障传感器

E18-D80NK-N是一款红外光电传感器&#xff0c;它同时具备发射和接收功能。通过对发射光进行调制后发出&#xff0c;并通过接收头对反射光进行解调输出。 E18-D80NK-N采用了透镜来增强传感器的性能&#xff0c;使其能够检测更远的距离。根据红外光的特性&#xff0c;不同颜色的…

拒掉了一个双 985 的面试者

下班路上&#xff0c;和一个大佬聊天&#xff0c;他说今天面试&#xff0c;拒掉了一个双 985 的候选人。 候选人背景很好&#xff0c;本科和硕士都是 985 院校毕业&#xff0c;并且是除了清北浙之外&#xff0c;排名非常靠前的 985院校。 本硕专业都是计算机专业&#xff0c;…

Spring Boot + security + jwt 测试安全策略

一、测试概述 主要目的是测试security的用法。因测试搭建mysql和redis比较麻烦&#xff0c;所以我这里将自定义的jwt和用户信息缓存到程序的内存中。 本人测试的项目比较混乱&#xff0c;Spring Boot父类只标出有用的依赖。其子类用的版本为jdk11。后续会继续深入oauth2&#x…

数据库之TiDB基础讲解

文章目录 1 TiDB1.1 引言1.2 TiDB介绍1.3 系统架构1.3.1 TIDB Server1.3.2 PD Server1.3.3 TIKV Server1.3.4 TiKV如何不丢失数据1.3.5 分布式事务支持 1.4 与MySQL的对比1.5 性能测试1.5.1 测试一1.5.2 系统测试报告 2 1 TiDB 1.1 引言 当我们使用 Mysql 数据库到达一定量级…

IP代理协议有哪些?爬虫代理如何被合理使用?

随着互联网的普及和发展&#xff0c;IP代理作为一种网络代理方式&#xff0c;越来越受到人们的关注。IP代理协议是网络代理的一种规范&#xff0c;它规定了代理服务器与客户端之间进行通信的规则。了解IP代理协议对于使用代理的人来说非常重要&#xff0c;因为它可以帮助我们更…

调试小结:PHY初始化前后Link Status是否能正确反应网线插上、拔下状态

1 说明 为了验证是否需要初始化PHY才能检测到网线插上、拔下&#xff0c;这里我们对比初始化PHY&#xff08;LAN8720&#xff09;前后&#xff0c;插拔网线PHY寄存器1的bit2的是否按照预期变化来进行测试。 我们查看的PHY寄存器是1的bit2&#xff0c;定义如下&#xff1a; 2…

springboot的actuator

1、actuator简介 微服务的特点决定了功能模块的部署是分布式的&#xff0c;大部分功能模块都是运行在不同的机器上&#xff0c;彼此通过服务调用进行交互&#xff0c;前后台的业务流会经过很多个微服务的处理和传递&#xff0c;出现了异常如何快速定位是哪个环节出现了问题&am…

STM32 CAN接口中断处理与性能优化技巧

在基于STM32的CAN接口中&#xff0c;中断处理是一个非常重要的部分&#xff0c;它可以帮助我们实时地处理接收到的数据和处理其他CAN事件。为了优化CAN接口的性能&#xff0c;以下是一些中断处理和性能优化的技巧&#xff1a; ✅作者简介&#xff1a;热爱科研的嵌入式开发者&am…