当前位置: 首页 > news >正文

CSS面试题

1. 盒模型

页面渲染时, dom 元素所采用的 布局模型 。可通过 box-sizing 进行设置。

根据计算宽高的区域可分为

content-box ( W3C 标准盒模型)

border-box ( IE 盒模型)

padding-box

margin-box (浏览器未实现)

2. BFC

块级格式化上下文, 是⼀个独立的渲染区域,让处于 BFC 内部的元素与外部

的元素相互隔离,使内外元素的定位不会相互影响。

IE下为 Layout , 可通过 zoom:1 触发

触发条件:

根元素

position: absolute/fixed

display: inline-block / table

float 元素

ovevflow !== visible

规则:

属于同⼀个BFC的两个相邻Box垂直排列

属于同⼀个 BFC 的两个相邻 Box 的 margin 会发生重叠

BFC 中子元素的 margin box 的左边, 与包含块 (BFC) border box 的左边相接触

(子元素 absolute 除外)

BFC 的区域不会与 float 的元素区域重叠

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

文字层不会被浮动层覆盖,环绕于周围

应用:

阻止 margin 重叠

可以包含浮动元素 —— 清除内部浮动(清除浮动的原理是两个 div 都位于同⼀个 BFC 区

域之中)

自适应两栏布局

可以阻止元素被浮动元素覆盖

3.层叠上下文

元素提升为⼀个比较特殊的图层,在三维空间中 (z轴) 高出普通元素⼀等。

触发条件

根层叠上下文( html )

position

css3 属性

flex

transform

opacity

filter

will-change

webkit-overflow-scrolling

层叠等级:层叠上下文在z轴上的排序

在同⼀层叠上下文中, 层叠等级才有意义

z-index 的优先级最高

4. 居中布局

行内元素: text-align: center

块级元素: margin: 0 auto

absolute + transform

flex + justify-content: center

垂直居中

line-height: height

absolute + transform

flex + align-items: center

table

水平垂直居中

absolute + transform

flex + justify-content + align-items

5. 选择器优先级

!important > 行内样式 > #id > .class >

选择器 从右往左 解析

tag > * > 继承 > 默认

6.去除浮动影响, 防止父级高度塌陷

通过增加尾元素清除浮动

:after / <br> : clear: both

创建父级 BFC

父级设置高度

7.link 与 @import 的区别

link 功能较多, 可以定义 RSS ,定义 Rel 等作用, 而 @import 只能用于加载 css

当解析到 link 时, 页面会同步加载所引的 css , 而 @import 所引用的 css 会等到页

面加载完才被加载

@import 需要 IE5

link 可以使用 js

以上才能使用

动态引入, @import 不行

8. CSS预处理器(Sass/Less/Postcss)

CSS 预处理器的原理: 是将类 CSS 语言通过 Webpack 编译 转成浏览器可

读的真正 CSS 。在这层编译之上, 便可以赋予 CSS 更多更强大的功能, 常

用功能:

嵌套

变量

循环语句

条件语句

自动前缀

单位转换

mixin 复用

面试中⼀般不会重点考察该点,⼀ 般介绍下自己在实战项目中的经验即可~

9.CSS动画

transition: 过渡动画

transition-property : 属性

transition-duration : 间隔

transition-timing-function : 曲线

transition-delay : 延迟

常用钩子: transitionend

animation / keyframes

animation-name : 动画名称,对应 @keyframes

animation-duration : 间隔

animation-timing-function : 曲线

animation-delay : 延迟

animation-iteration-count : 次数

infinite : 循环动画

animation-direction : 方向

alternate : 反向播放

animation-fill-mode : 静止模式

forwards : 停止时,保留最后⼀帧

backwards : 停止时, 回到第⼀帧

both : 同时运用 forwards / backwards

常用钩子: animationend

动画属性: 尽量使用动画属性进行动画, 能拥有较好的性能表现

translate

scale

rotate

skew

opacity

color

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 学习笔记一
  • JVM—HotSpot虚拟机对象探秘
  • 2024年第五届华数杯全国大学生数学建模竞赛【ABC题】完整思路
  • Python从入门到精通(第十章——1 类和对象)
  • 基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能
  • 【C++】数组案例 五只小猪称体重
  • C#中DataTable新增列、删除列、更改列名、交换列位置
  • 代码随想录算法训练营第37天|完全背包理论基础、518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶版)
  • 【深度学习】深度学习基本概念、工作原理及实际应用案例
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • 微信小程序之behaviors
  • 刷题——不同路径的数目
  • Python基础学习笔记(一)
  • 记录一次网站疑似被劫持的排查
  • 数据治理五部曲
  • 【React系列】如何构建React应用程序
  • es6(二):字符串的扩展
  • flutter的key在widget list的作用以及必要性
  • java中的hashCode
  • js算法-归并排序(merge_sort)
  • js写一个简单的选项卡
  • nfs客户端进程变D,延伸linux的lock
  • Object.assign方法不能实现深复制
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • springMvc学习笔记(2)
  • SSH 免密登录
  • Vue.js源码(2):初探List Rendering
  • 力扣(LeetCode)21
  • 前端面试之CSS3新特性
  • 前嗅ForeSpider中数据浏览界面介绍
  • 算法-图和图算法
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • linux 淘宝开源监控工具tsar
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • #define 用法
  • #laravel 通过手动安装依赖PHPExcel#
  • #Spring-boot高级
  • #window11设置系统变量#
  • $NOIp2018$劝退记
  • (2)STM32单片机上位机
  • (26)4.7 字符函数和字符串函数
  • (4)STL算法之比较
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (六)激光线扫描-三维重建
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (七)Flink Watermark
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (一) 初入MySQL 【认识和部署】
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .bat文件调用java类的main方法
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Framework .NET Core与 .NET 的区别