前端面试题2022-CSS篇

news2025/1/8 12:03:23

关于前端面试的题,最近整理了一些干货,经常被问到的一些问题,出现频率比较高的问题,如有不足之处,请高调指出,(⭐代表难度,星星越多越难,以次类推),此篇文章为面试题的css篇

文章目录

  • CSS篇(20道)
      • 1、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?⭐
      • 2、垂直居中div盒子⭐
      • 3、position的值?display的值?⭐
      • 4、用CSS画出一个三角形,请描述方法和原理?⭐⭐
      • 5、CSS隐藏一个节点有哪几种方法?有什么区别?⭐
      • 6、请回答以下代码中box2总宽高⭐⭐
      • 7、用CSS 实现高度为0.5px像素的线条⭐
      • 8、怎么实现一行文字超出后省略?2行呢?3行呢?⭐
      • 9、对BFC的理解⭐⭐
      • 10、CSS长度单位⭐
      • 11、你是怎么去做移动端适配的⭐
      • 12、伪类和伪元素的区别⭐
      • 13、讲讲flex布局和你常用的几个属性⭐
      • 14、简述一些css3新特性⭐
      • 15、为什么大部分人做动画改变位置是用translate而不是定位?⭐⭐
      • 16、link和@import的区别?⭐⭐
      • 17、什么是重绘和回流
      • 18、简述CSS的执行顺序(权重)
      • 19、怎么清除浮动
      • 20、讲讲CSS3的动画


CSS篇(20道)

1、介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的?⭐

参考文献https://www.w3school.com.cn/css/css_boxmodel.asp
标准盒模型:外边距+边框+内边距+内容
低版本的怪异盒模型:边框+内边距+内容
使用box-sizing更改模型

2、垂直居中div盒子⭐

1、div绝对定位水平垂直居中 + 上下左右0

div{
  width: 200px;
  height: 200px;
  position:absolute;
  left:0;
  top: 0;
  bottom: 0;
  right: 0;
  margin: auto;
}

2、div绝对定位水平垂直居中 + margin负间距

div{
  width:200px;
  height:200px;
  position: absolute;
  left:50%;
  top:50%;
  margin-left:-100px;
  margin-top:-100px;
}

3、div绝对定位水平垂直居中 + transforms

div{
  width: 200px;
  height: 200px;
  position:absolute;
  left:50%;
  top:50%;
  transform: translate(-50%,-50%);
}

4、flex上下左右居中

.father{
  display:flex;
  justify-content:center;
  align-items:center;
}
.father>son{
  width: 200px;
  height: 200px;
}

5、利用table的vertical-align实现

.father {
  display: table-cell;
  vertical-align: middle;
}

3、position的值?display的值?⭐

position参考文献:https://www.w3school.com.cn/css/css_positioning.asp
display参考文献:
https://www.w3school.com.cn/cssref/pr_class_display.asp
position有5个属性 static、relative、fixed、absolute、sticky
display(讲几个常见的就好):
在这里插入图片描述

4、用CSS画出一个三角形,请描述方法和原理?⭐⭐

css画三角形可以用border、linear-gradient、clip-path等,这里只讲border,一般面试也是问这个。利用border这个特性我们跨域这么写

.triangle {
  width: 0;
  height: 0;
  border-left: 69px solid transparent;  
  border-right: 69px solid transparent;  
  border-bottom: 120px solid skyblue; 
}

5、CSS隐藏一个节点有哪几种方法?有什么区别?⭐

1.display:none(不占据空间,引起回流,没有点击事件,不能继承)
2.visibility:hidden(占据空间,引起重绘,没有点击事件,能够继承)
3.opacity:0(占据空间,没有回流重绘,有点击事件,能够继承)
4.position:absolute left:-9999px或top:-9999px; (脱离文档流,至于页面不可见区域内)
5.通过设置width:0+font-size:0;或heigh:0+font-size:0(缩小可视范围至0)
6.z-index为负值(隐藏在其他文档流之下)

6、请回答以下代码中box2总宽高⭐⭐

<!DOCTYPE html>
<html lang="en">
<head>
  <style>
    .box1 { width: 200px; height: 100px; background-color: red; }
    .box2 { width: 100px; height: 50px; padding: 10%; background-color: blue; }
  </style>
</head>
<body>
  <div class="box1">
    <div class="box2"></div>
  </div>
</body>
</html>

答案:考点在padding的百分比是以父元素的宽度而定padding为200*10% = 20,既上下左右都撑开20px,既width=100+20+20=140,height=50+20+20=90

7、用CSS 实现高度为0.5px像素的线条⭐

参考文献:https://www.w3school.com.cn/cssref/pr_transform.asp

p {
  border:1px solid #000000;
  transform:scale(0.5);
}

8、怎么实现一行文字超出后省略?2行呢?3行呢?⭐

 //主要代码为 text-overflow: ellipsis 和 line-clamp: 2;
 //一行
 white-space: nowrap;
 text-overflow: ellipsis;
 overflow: hidden;
 word-break: break-all;
 //两行
 text-overflow: -o-ellipsis-lastline;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-box-orient: vertical;

9、对BFC的理解⭐⭐

概念:Block Formatting Contexts 即块级格式化上下文,它是一个独立的渲染区域,
触发

  • 根元素
  • float属性不为none(如:left | right)
  • overflow的值不为visible(如:hidden | auto | scroll)
  • display属性值为inline-block | flex | inline-flex | table-cell | table-caption
  • position为absolute或fixed

应用

  • 解决margin叠加问题
  • 清除内部浮动
  • 重叠布局

10、CSS长度单位⭐

  • px系列
  • em rem系列
  • vw vh系列
  • %系列

11、你是怎么去做移动端适配的⭐

  1. 常见的 media+rem适配 + flex
  2. JS修改根px + rem适配 + flex
  3. 百分比或者vw/vh适配 + flex

12、伪类和伪元素的区别⭐

伪类用于定义元素的特殊状态。
伪元素用于设置元素指定部分的样式
伪类参考文献:https://www.w3school.com.cn/css/css_pseudo_classes.asp
在这里插入图片描述
伪元素参考文献:https://www.w3school.com.cn/css/css_pseudo_elements.asp
在这里插入图片描述

随便记几个就行哈

13、讲讲flex布局和你常用的几个属性⭐

弹性布局参考文献:https://www.w3school.com.cn/css/css3_flexbox.asp
常见的容器属性

  • flex-direction 切换布局方向是为row or cloumn
  • flex-wrap 决定是否能换行
  • flex-flow 同时设置 flex-direction 和 flex-wrap 属性的简写属性
  • justify-content 决定row布局
  • align-items 决定cloumn布局
  • align-content 用于对齐弹性线

14、简述一些css3新特性⭐

简单说一些例如,圆角、边框图像、边框背景、渐变、盒子阴影、图像比object-fit、动画、过度、弹性布局、媒体查询等

15、为什么大部分人做动画改变位置是用translate而不是定位?⭐⭐

top、left、width等改变是占用CPU时间
translate没有CPU时间,我看了很多帧,除了少部分帧有0.1ms左右的脚本执行时间之外,大部分帧的CPU时间都是0。他是占用系统 RAM 与 GPU(在移动设备上尤其有限)的内存

16、link和@import的区别?⭐⭐

参考文献:https://www.runoob.com/note/72255

<link rel="stylesheet" href="./index.css">
<style>
@import url("./index.css")
</style>
  1. 本质的差别:link 属于 XHTML 标签,而 @import 完全是 CSS 提供的一种方式。
  2. 加载顺序的差别: 当一个页面被加载的时候,link 引用的 CSS 会同时被加载,而 @import 引用的 CSS 会等到页面全部被下载完再被加载。所以有时候浏览 @import 加载 CSS 的页面时开始会没有样式,网速慢的时候还挺明显。
  3. 兼容性的差别: @import 是 CSS2.1 提出的,老浏览器Unsupported,@import 只有在 IE5 以上的才能识别,而 link 标签无此问题。
  4. 使用 do控制样式时的差别:当使用 javascript 控制 dom 去改变样式的时候,只能使用 link 标签,因为@import 不是 dom 可以控制的。

17、什么是重绘和回流

  • 重绘/重排:当页面元素的样式发生变化,但不影响该节点在文档流的几何信息时
  • 回流:当页面元素的几何属性或布局发生变化时
    回流一定会引发重绘,重绘不一定引发回流

18、简述CSS的执行顺序(权重)

CSS的选择器有很多种,而最终某个样式的值只能取其中一个,所以必然存在优先级和覆盖。

权重,简单地说就是为了便于我们计算优先级,给每种选择器赋予的一个值,权重值可以叠加计算,值越大优先级越高。

  1. 元素选择器和伪元素(权重值为1)
  2. 类选择器、属性选择器和伪类(权重值为10)
  3. ID选择器(权重值为100)
  4. 内联样式(权重值为1000)
  5. !important 权重值最高

19、怎么清除浮动

  1. clear:both
  2. 伪元素
  3. overflow

20、讲讲CSS3的动画

文献参考:https://www.w3school.com.cn/css/css3_animations.asp

/* 动画代码 */
@keyframes example {
  from {background-color: red;}
  to {background-color: yellow;}
}

/* 向此元素应用动画效果 */
div {
  width: 100px;
  height: 100px;
  background-color: red;
  animation-name: example;
  animation-duration: 4s;
}
  • @keyframes 规定动画模式。
  • animation 设置所有动画属性的简写属性。
  • animation-delay 规定动画开始的延迟。
  • animation-direction 定动画是向前播放、向后播放还是交替播放。
  • animation-duration 规定动画完成一个周期应花费的时间。
  • animation-fill-mode 规定元素在不播放动画时的样式(在开始前、结束后,或两者同时)。
  • animation-iteration-count 规定动画应播放的次数。
  • animation-name 规定 @keyframes 动画的名称。
  • animation-play-state 规定动画是运行还是暂停。
  • animation-timing-function 规定动画的速度曲线。

不需要背多全,只需要知道有这些东西,能够在使用的时候快速找到api文档的所在位置

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

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

相关文章

如何自动备份指定文件扩展名的文件?

关于文件扩展名 文件扩展名&#xff0c;一个点后跟几个字母&#xff0c;例如“.doc”或“.jpg”&#xff0c;构成计算机文档名称的结尾。保存文档时&#xff0c;请务必在单击“保存”之前输入文档名称和文件扩展名。 自动备份具有特定文件扩展名的文件 随着计算机的使用&…

第十章 鲁棒性检查(中)

文章目录10.5 时钟门控检查(Clock Gating Checks)高电平时钟门控(Active-High Clock Gating)10.5 时钟门控检查(Clock Gating Checks) 当一个门控信号&#xff08;gating signal&#xff09;可以控制逻辑单元中时钟信号&#xff08;clock signal&#xff09;的路径时&#xff…

最近面试遇到的面试题

先挖坑&#xff0c;有空再填坑&#xff01; 迭代器 生成器 常用高阶函数 MySQL 建索引几大原则 浅拷贝 深拷贝 区别 实现 Linux 进程名字 查看进程号 Linux 杀死一个进程 python Linux shell 脚本 数据库 主从复制 配置 nginx 权限设置 python 去除空行 pandas 保留最后一个空…

深入浅出 Swift 中的 some、any 关键字以及主关联类型(primary associated types)

问题现象 从 Swift 5.1 开始,Apple 陆续引入 some、any 关键字,并且从 Swift 5.7 开始对 any 关键字的用法做了增强,并且引入了主关联类型(primary associated types)的概念。 那么它们到底是什么意思?使用它们又能如何改进我们书写代码的范儿呢? 在本篇博文中,您将学…

自动依据你的数据库生成SQL练习题及答案,宝藏软件鉴赏

原创软件不易&#xff0c;方面多点赞、收藏、加关注鼓励&#xff01;后续领更多好用功能&#xff01; 引言 各位好&#xff0c;相信看见这篇文章的朋友&#xff0c;应该也去体验过了chatGPT了吧~&#xff0c;确实chatGPT拉近了我们与未来科技的距离&#xff0c;所有别人火也是…

电脑技巧:Microsoft Edge浏览器技巧介绍

目录 1、导入浏览器数据 2、Edge边栏 3、实用的扩展功能 4、创建集锦列表 4.1 集锦的作用 4.2 使用方法 5、查找优惠券 6、Edge效率省电模式 Microsoft Edge是Windows10操作系统预装的一款非常棒的浏览器和之前的IE不同&#xff0c;采用了谷歌浏览器内核&#xff0c;相…

项目的成功标准如何衡量?【一杯咖啡谈项目】

每个项目经理都想自己的项目能够成功&#xff0c;但是&#xff0c;什么才叫项目的成功&#xff0c;成功的定义是什么&#xff1f;项目成功标准是什么呢&#xff1f; 很多看似失败的项目其实是成功的&#xff0c;很多看似成功的项目其实是失败的。研究项目成功的标准&#xff0…

Chrome 扩展插件:如何开始一个插件的开发

欢迎点击查看个人站首发原文&#xff0c;访问个人站获取更多插件编程知识。 Chrome扩展插件基础是基于前端htmljs开发&#xff0c;然后通过官方提供的项目结构进行开发&#xff0c;需要注意的是&#xff0c;目前Chrome已经支持Manifest V3&#xff0c;FireFox仅仅支持Manifest …

【大数据入门核心技术-Impala】(一)Impala简介

目录 一、Impala介绍 二、Impala优势 三、Impala主要功能 一、Impala介绍 Impala是Cloudera公司主导开发的新型查询系统&#xff0c;它提供SQL语义&#xff0c;能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义&#xff0c;但由于Hive底层…

代码详细教程+文档+PPT+源码等]SSM框架美妆商城全套|电商购物计算机专业毕业论文java毕业设计网站

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之SSM美妆商城项目源码_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.com/itsz…

[附源码]Python计算机毕业设计SSM基于框架的在线健康系统设计与实现(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

DRF和vue跨域问题的解决

跨域不一定都会有跨域问题&#xff1a; 因为跨域问题是浏览器对于ajax请求的一种安全限制&#xff1a;一个页面发起的ajax请求&#xff0c;只能是与当前页域名相同的路径&#xff0c;这能有效的阻止跨站攻击。因此&#xff0c;跨域问题 是针对ajax的一种限制。 但是这却给我们…

Birdboot第二天 Request Response

目录 V4 HttpServletRequest保存请求内容 1.此类专门处理请求 把获取请求的readline()和拆分代码移动过来 2.ClientHandler客户端处理器实例化HttpServletRequest 3. 拆分的信息从局部变量 变成属性 4.建方法 解析请求行 消息头 消息正文 V5 发送响应 1.在客户端处理器 …

BI智慧仓储,带你体验数字化仓储物流管理

1、行业背景 智能仓储物流是以信息交互为主线&#xff0c;使用条形码、射频识别、传感器、全球定位系统等先 进的物联网技术&#xff0c;集成自动化、信息化、人工智能技术&#xff0c;通过信息集成、物流全过程优化 以及资源优化&#xff0c;使物品运输、仓储、配送、包装、装…

【小f的刷题笔记】(JS)链表 - 合并 k 个有序链表 LeetCode23 - 顺序合并暴力三种方法

【链表】 合并 k 个有序链表&#xff1a; &#x1f31f; 想办法从一堆节点中找到最小的那个节点 看了很多题解&#xff0c;主要是以下四种方法&#xff08;优先队列我还没有写出来&#xff0c;先遗留着&#xff09;&#xff1a; ✔ 顺序合并 ✔ 分治合并&#xff08;归并&a…

【单片机】矩阵键盘/定时器

目录 一、矩阵键盘 1、矩阵按键原理 1.1工作方式 1.2工作原理 1.3单片机IO口 2、矩阵键盘数字显示代码 3、矩阵键盘密码锁 二、定时器&#xff08;工作模式1&#xff09; 1、定时器的原理 2、寄存器 2.1模式选择寄存器TMOD&#xff08;不可位寻址&#xff09; 2.2…

CentOS 搭建 WordPress 站点

博客链接:https://www.aiiyx.cn 内容纲要 1. 版本相关2. 主要内容3. 安装并配置 PHP4. 安装并配置 WordPress5. 配置 Nginx6. 配置 MySQL7. 初始化 WordPress 1. 版本相关 WordPress 版本 5.9.3PHP 版本 8.1MySQL 版本 5.7Nginx 版本 1.18 2. 主要内容 由于我的 CentOS 服务…

ChatGPT:将你的微信变成智能聊天机器人!

天天用微信的你有没有做个这样一种设想&#xff1a;让最先进的人工智能算法帮你聊天! 这机器人可以回答各种问题&#xff0c;上知天文下知地理&#xff0c;甚至还能写代码。无论是哄女朋友&#xff0c;应付老婆&#xff0c;或者勾搭陌生小姐姐&#xff0c;都能做到24小时在线&…

一文带领大家了解什么是泛型

对于泛型&#xff01;其实大家了解不是很多&#xff0c;在各大高校的学习中&#xff0c;如果你不去深入的了解泛型&#xff0c;老师只是会一水儿过&#xff0c;并不会单独去带领大家了解&#xff01;&#xff01;那么&#xff0c;笔者结合自身的学习泛型的想法&#xff0c;结合…

2022年双十二拼多多百亿补贴有活动吗?如何领红包?

2022年双十二拼多多百亿补贴有活动吗?如何领红包? 拼多多的活动大家都很清楚&#xff0c;平常没有活动的时候&#xff0c;价格也是比较实惠的&#xff0c;除了拼团购物之外&#xff0c;拼多多还有百亿补贴&#xff0c;所以商品比其他平台都要便宜&#xff0c;双十二拼多多百亿…