【css系列】八股2023/6/18

news2025/1/11 20:40:02

1.说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

 css 像素:长度单位,在css规范中,长度单位分为两类:绝对单位 和 相对单位。

设备像素:物理像素,指设备能控制显示的最小物理单位。

设备独立像素:与设备逻辑无关的逻辑像素,代表通过程序控制使用的虚拟像素,是总体概念。

设备像素比 ( dpr ) = 设备像素 / 设备独立像素 

每英寸像素 ( ppi ) =值越大,图像越清晰。

2. 谈谈对BFC的理解 

BFC(Block Formatting Context) 块级格式化上下文

BFC的原理:

BFC内部的子元素,在垂直方向,边距会发生重叠。

BFC在页面中是独立的容器,外面的元素不会影响里面的元素,反之亦然。

BFC区域不与旁边float box 区域重叠。

计算BFC 的高度时,浮动的子元素也参与计算。

如何生成BFC,有以下几种方法:

方法1:overflow:不为visible,可以让属性是 hidden、auto。

方法2:浮动中:float 的属性值不为none。

方法3:定位中:只要position的值是 static 或者是 relative 即可,可以是 absolute 或 fixed,也就生成了一个BFC。

方法4:display 为 inline-block,table-cell, table-caption, flex, inline-flex

3.说说em/px/rem/vh/vw区别? 

CSS 单位
相对长度单位em、ex、ch、rem、vw、vh、vmin、vmax、%
绝对长度单位cm、mm、in、px、pt、pc

px:绝对单位,页面按精确像素展示

em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值

rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算

vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单

 4.什么是响应式设计?响应式设计的基本原理是什么?如何做?

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1. user-scalable=no">
  • width=device-width: 是自适应手机屏幕的尺寸宽度

  • maximum-scale:是缩放比例的最大值

  • inital-scale:是缩放的初始化

  • user-scalable:是用户的可以缩放的操作 

响应式设计通常会考虑一下几个方面:

  • 弹性盒子(包括图片、表格、视频)和媒体查询等技术
  • 使用百分比布局创建流式布局的弹性UI,同时使用媒体查询限制元素的尺寸和内容变更范围
  • 使用相对单位使得内容自适应调节
  • 选择断点,针对不同断点实现不同布局和内容展示

 5.CSS如何画一个三角形?原理是什么?

.border {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 50px 50px;
    border-color: transparent transparent #d9534f;
    position: relative;
}
.border:after {
    content:'';
    border-style: solid;
    border-width: 0 40px 40px;
    border-color: transparent transparent #96ceb4;
    position: absolute;
    top: 0;
    left: 0;
}

 

 6.css选择器有哪些?优先级?哪些属性可以继承?

!important > 内联样式 > ID选择器 > 类选择器/属性选择器/伪类选择器 > 元素选择器/伪元素选择器 > 关系选择器/通配符选择器

关于css属性选择器常用的有:

  • id选择器(#box),选择id为box的元素

  • 类选择器(.one),选择类名为one的所有元素

  • 标签选择器(div),选择标签为div的所有元素

  • 后代选择器(#box div),选择id为box元素内部所有的div元素

  • 子选择器(.one>one_1),选择父元素为.one的所有.one_1的元素

  • 相邻同胞选择器(.one+.two),选择紧接在.one之后的所有.two元素

  • 群组选择器(div,p),选择div、p的所有元素

7. 说说对Css预编语言的理解?有哪些区别?

css 预编译语言在前端里面有三大优秀的预编处理器,分别是:sass、less、stylus

  • 变量(variables)
  • 作用域(scope)
  • 代码混合( mixins)
  • 嵌套(nested rules)
  • 代码模块化(Modules)

8.让Chrome支持小于12px 的文字方式有哪些?区别?

Chrome中文版浏览器会默认设定页面的最小字号是12px,英文版没有限制。

zoom: 有兼容性问题,缩放会改变元素占据的空间大小,触发重排。 zoom: 0.8

-webkit-transform:scale():大部分浏览器支持,并且对英文、数字、中文 能够生效,缩放不会改变元素占据的空间大小,页面布局不会发生变化。-webkit-transform:scale(0.8);

-webkit-text-size-adjust:只对英文、数字生效。

html { -webkit-text-size-adjust: none;  } 

  • percentage:字体显示的大小;
  • auto:默认,字体大小会根据设备/浏览器来自动调整;
  • none:字体大小不会自动调整

9.怎么理解回流和重绘?什么场景下会触发?

  • 回流:布局引擎会根据各种样式计算每个盒子在页面上的大小与位置。
  • 重绘:当计算好盒模型的位置、大小及其他属性后,浏览器会根据每个盒子特性进行绘制。

浏览器解析渲染机制:

  • 解析HTML,生成DOM树,解析CSS,生成CSSOM树

  • 将DOM树和CSSOM树结合,生成渲染树(Render Tree)

  • Layout(回流):根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小)

  • Painting(重绘):根据渲染树以及回流得到的几何信息,得到节点的绝对像素

  • Display:将像素发送给GPU,展示在页面上

10. css中,有哪些方式可以隐藏页面元素?区别?

  • display: none
  • visible: hidden
  • opacity: 0
  • 设置height、weight 模型属性为0
  • position: absolute
  • clip-path    clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px); 元素不可见 占据页面空间 无法响应点击事件

重点:关于display: none visibility: hiddenopacity: 0的区别

display:nonevisibility:hiddenopacity:0
页面中不存在存在存在
重排不会不会
重绘不一定
自身绑定事件不触发不触发不触发
transition不支持支持支持
子元素可复原不能不能
被遮挡的元素可触发事件不能

11、如果要做优化,CSS提高性能的方法有哪些?

  • 内联首屏关键CSS
  • 异步加载CSS
  • 资源压缩
  • 合理使用选择器
  • 减少使用昂贵的属性
  • 不要使用@import

12、CSS3 新增了哪些新特性? 

 13、如何实现两栏布局,右侧自适应?三栏布局中间自适应呢?

两栏布局实现效果就是将页面分割成左右宽度不等的两列,宽度较小的列设置为固定宽度,剩余宽度由另一列撑满, 

  • 使用 float 左浮左边栏
  • 右边模块使用 margin-left 撑出内容块做内容展示
  • 为父级元素添加BFC,防止下方元素飞到上方内容

 14、元素水平垂直居中的方法有哪些?

  • 绝对定位法:top、left、right、bottom
  • 负margin 居中
  • margin 固定宽高居中
  • flex 居中
  • transform 居中
  • table-cell 
  • grid布局 flex布局

 15、对盒子模型的理解?

 一个盒子由四个部分组成:

content(内容)padding(内边距)border(边框)margin(外边距)

 16、CSS3动画有哪些?

transition

        linear ease ease-in  ease-out  

transform

        translate  scale  rotate  skew

animation

17、介绍下grid 网格布局

18、说说flexbox(弹性盒布局模型),以及适用场景?

flex-direction  flex-wrap  flex-flow justify-content  align-items  align-content

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

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

相关文章

计算机视觉的应用8-基于ResNet50对童年数码宝贝的识别与分类

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用8-基于ResNet50对童年数码宝贝的识别与分类&#xff0c;想必做完90后的大家都看过数码宝贝吧&#xff0c;里面有好多类型的数码宝贝&#xff0c;今天就给大家简单实现一下&#xff0c;他们的分类任…

计网大题(6/18)

1.奈奎斯特定理和香农公式 1.奈奎斯特 B1/T ,T是波特 &#xff0c;B成为波特率 奎氏定理&#xff1a;R2Wlog2&#xff08;N&#xff09; &#xff08;W是理想信道带宽&#xff0c;单位是hz&#xff09; 香农公式 R是最大信道容量 信道带宽是W 信噪比是S/N ,(S是平均信号功率…

kotlin学习(二)泛型、函数、lambda、扩展、运算符重载

文章目录 泛型&#xff1a;in、out、where型变&#xff08;variance&#xff09;不变&#xff08;Invariant&#xff09;协变&#xff08;Covariant&#xff09;Java上界通配符<? extends T>Kotlin的关键词 outUnsafeVariance 逆变&#xff08;Contravariant&#xff09…

Portraiture4.1智能磨皮滤镜插件下载安装使用教程

ps磨皮插件portraiture是一款用于修饰人像照片的插件&#xff0c;可以在Photoshop中使用。它可以通过智能算法来自动识别照片中的肤色区域&#xff0c;然后对其进行磨皮处理&#xff0c;使得肌肤更加光滑细腻。不需要像曲线磨皮、中性灰磨皮那样需要复杂的操作&#xff0c;轻轻…

JavaScript之函数 (七):认识JavaScript函数、函数的声明和调用、函数的递归调用、局部和全局变量、函数表达式的写法、立即执行函数使用

1. 认识JavaScript函数 1.1 程序中的foo、bar、baz 在国外的一个问答网站stackover flow中&#xff0c;常常会使用这几个次进行变量&#xff0c;函数&#xff0c;对象等等声明&#xff0c;地位如同张三&#xff0c;李四&#xff0c;王五。foo、bar这些名词最早从什么时候、地…

【MySQL入门】-- 认识MySQL存储引擎

目录 1.MySQL存储引擎有什么用&#xff1f; 2.MySQL的存储引擎有哪些&#xff1f;分别有什么特点&#xff1f; 3.存储引擎的优缺点 4.关于存储引擎的操作 5. 存储引擎的选择&#xff1f; 6.InnoDB和MyISAM区别&#xff1f; 7.官方文档 1.MySQL存储引擎有什么用&#xff…

2022 年第十二届 MathorCup 高校数学建模挑战赛D题思路

目录 一、前言 二、问题背景 三、问题 四、解题思路 &#xff08;1&#xff09;针对问题1&#xff1a; &#xff08;2&#xff09;针对问题2&#xff1a; &#xff08;3&#xff09;针对问题3&#xff1a; 五、附上几个典型代码 &#xff08;1&#xff09;K-means算法…

文献阅读:Foundation Transformers

文献阅读&#xff1a;Foundation Transformers 1. 文章简介2. 模型结构 1. Sub-LN2. Initialization 3. 实验效果 1. NLP任务 1. 语言模型上效果2. MLM模型上效果3. 翻译模型上效果 2. Vision任务上效果3. Speech任务上效果4. 图文任务上效果 4. 结论 & 思考 文献链接&…

卡尔曼滤波器使用原理以及代码编写

注&#xff1a;要视频学习可以去B站搜索“DR_CAN”讲解的卡尔曼滤波器&#xff0c;深有体会&#xff01; 一、为啥需要卡尔曼滤波器 卡尔曼滤波器在生活中应用广泛&#xff0c;因为在我们生活中存在着不确定性&#xff0c;当我去描述一个系统&#xff0c;这个不确定性就包涵一…

源码编译LAMP与论坛安装

目录 Apache网站服务&#xff08;著名的开源Web服务软件&#xff09; Apache的主要特点 软件版本 如何创建论坛 安装相关服务Apache 安装MySQL数据库 安装PHP框架 然后进行论坛安装 第一步 先进入到MySQL内 第二步 授权bbs数据库 第三步 刷新数据库 第四步 解压指定…

【Windows】虚拟串口工具VSPD7.2安装

【Windows】虚拟串口工具VSPD7.2安装 1、背景2、VSPD7.2安装3、创建虚拟串口 1、背景 ​Virtual Serial Ports Driver​是由著名的软件公司Eltima制作的一款非常好用的​虚拟串口工具​&#xff0c;简称&#xff1a;VSPD。 VSPD其功能如同 Windows机器上COM 串行端口的仿真器…

Go-unsafe详解

Go语言unsafe包 Go语言的unsafe包提供了一些底层操作的函数&#xff0c;这些函数可以绕过Go语言的类型系统&#xff0c;直接操作内存。虽然这些函数很强大&#xff0c;但是使用不当可能会导致程序崩溃或者产生不可预料的行为。因此&#xff0c;使用unsafe包时必须小心谨慎。 …

小白必看!渗透测试的8个步骤

渗透测试与入侵的区别 渗透测试&#xff1a;以安全为基本原则&#xff0c;通过攻击者以及防御者的角度去分析目标所存在的安全隐患以及脆弱性&#xff0c;以保护系统安全为最终目标。 入侵&#xff1a;通过各种方法&#xff0c;甚至破坏性的操作&#xff0c;来获取系统权限以…

C++ 教程(15)——数组(包含实例)

C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 数组的声明并不是声明一个个单独的变量&#xff0c;比如 number0、number1、...、number99&#xff0c;而是声…

[架构之路-215]- 系统分析-领域建模基本概念

目录 1. 什么是领域或问题域 2. 什么面向对象的“类” 》 设计类 3. 什么是概念类 4. 什么是领域建模 5. 领域建模与DDD&#xff08;领域驱动架构设计&#xff09;的关系 6. 领域建模的UML方法 7. 领域建模的案例 其他参考&#xff1a; 1. 什么是领域或问题域 领域&a…

Spring AOP之MethodInterceptor原理

文章目录 引言Spring AOP组成先看一下Advice 示例提问 原理 引言 之前我们讨论过了HandlerInterceptor&#xff0c;现在我们来看一下MethodInterceptor。 MethodInterceptor是Spring AOP中的一个重要接口,用来拦截方法调用&#xff0c;它只有一个invoke方法。 Spring AOP组成…

Laya3.0游戏框架搭建流程(随时更新)

近两年AI绘图技术有了长足发展&#xff0c;准备把以前玩过的游戏类型重制下&#xff0c;也算是圆了一个情怀梦。 鉴于unity商用水印和启动时间的原因&#xff0c;我决定使用Laya来开发。目前laya已经更新到了3.0以上版本&#xff0c;就用目前比较新的版本。 之后关于开发中遇到…

HashMap学习:1.7 迁移死循环分析(通俗易懂)

前言 JDK1.7由于采用的头插法&#xff0c;所以多线程情况下可能会产生死循环问题。 正文 头插法 就是每次从旧容器中的hash桶中取出数据后&#xff0c;放到新容器的头节点问题&#xff0c;如果此时头结点位置为空&#xff0c;直接放置即可&#xff0c;如果不为空将头节点的数…

C语言strncpy的使用缺陷和实现,strncat的使用缺陷和实现,strncmp的使用和实现。

1.strncpy 函数原型&#xff1a; char *strncpy( char *strDest, const char *strSource, size_t count );char *strDest 目标字符串首元素地址const char *strSource 源字符串(需要拷贝过去的字符串)size_t count 拷贝字符的个数char *strncpy 拷贝结束后&#xff0c;返回目…

Micormeter实战

Micrometer 为基于 JVM 的应用程序的性能监测数据收集提供了一个通用的 API&#xff0c;支持多种度量指标类型&#xff0c;这些指标可以用于观察、警报以及对应用程序当前状态做出响应。 前言 可接入监控系统 监控系统的三个重要特征&#xff1a; 维度&#xff08;Dimensio…