番外02:前端八股文面试题-CSS篇
一:CSS基础
1:CSS选择器及其优先级
2:display的属性值及其作用
属性值 | 作用 |
none | 元素不显示,并且会从文档流中移除 |
block | 块类型,默认元素为父元素宽度,可设置宽高,换行显示 |
inline | 行内元素类型,默认宽度为内容宽度,不可设置宽高,同行显示 |
inline-block | 默认宽度为内容宽度,可以设置宽高,同行显示 |
list-item | 像块类型元素一样显示,并添加样式列表标记 |
table | 此元素会作为块级表格来显示 |
inherit | 规定应该从父元素继承dispaly属性的值 |
3:display的block、inline和inline-block的区别
(1)block:会独占一行 🔜 多个元素另起一行 🔜 可以设置width,height,margin和padding属性
(2)inline:元素不会独占一行 🔜 设置width,height无效 🔜 水平方向可设置margin和padding 🔜 垂直方向不可以。
(3)inline-block:对象设置为inline对象 🔜 对象的内容作为block呈现
(4)行内元素和块级元素的特点
1):行内元素
- 设置宽高无效
- 可以设置水平方向的margin和padding,垂直方向不可以
- 不会自动换行
2):块级元素
- 可以设置宽高
- 设置margin和padding都有效
- 可以自动换行
- 多个块状,默认排列从上到下
4:隐藏元素的方法有哪些
属性值 | 占据空间 | 响应绑定监听事件 |
display:none | 不会在页面中占据位置 | 不响应 |
visibility:hidden | 占据空间 | 不响应 |
opacity:0 | 占据空间 | 响应 |
position:absolute | 元素移除可视区域 | - |
z-index:负值 | 元素被其余元素遮盖 | - |
clip/clip-path | 占据位置 | 不响应 |
transform:scale(0,0) | 占据位置 | 不响应 |
5:link和@import的区别
两者都是外部引用CSS的方式,区别如下:
link | @import |
XHTML标签,除了加载CSS外,还可以定义RSS等事务 | 只能加载CSS |
引用CSS时,页面载入时同时加载 | 页面完全载入以后加载 |
无兼容问题 | 低版本浏览器不支持 |
支持使用JavaScript控制DOM去改变样式 | 不支持 |
6:display:none与visibility:hidden的区别
两个属性都是让元素隐藏,不可见
(1)在渲染树中
display:none 元素从渲染树中消失,不会占据空间
visibility:hidden 不会让元素从渲染树中消失,会占据响应的空间
(2)是否继承属性
display:none 非继承属性 🔜 子孙节点会随着父节点从渲染树消失 🔜 修改子节点的属性也无法显示。
visibility:hidden 继承属性 🔜 子孙节点消失继承了hidden 🔜 设置visibility:visible
可以让子孙节点显示.
(3)修改文档流 🔜 display会重排 🔜 visibility会重绘
(4)使用读屏器 🔜 display:none的内容不会被读取 🔜 visibility:hidden的内容会读取
7:伪元素和伪类的区别和作用?
伪元素:内容元素的前后插入额外的元素和样式,这些元素并不会在文档中生成
伪类:将特殊的效果添加到特定选择器上
总结:伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进⾏对元素的改变。
8: 对盒模型的理解
CSS3中盒模型分为两种:标准盒子模型、IE盒子模型
四部分组成:margin,border,padding,content
标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同:
- 标准盒模型的width和height属性的范围只包含了content,
- IE盒模型的width和height属性的范围包含了border、padding和content。
可以通过修改元素的box-sizing属性来改变元素的盒模型
-
box-sizeing: content-box
表示标准盒模型(默认值) -
box-sizeing: border-box
表示IE盒模型(怪异盒模型)
9:margin和padding的使用场景
(1)需要在border外侧添加空白,且空白处不需要背景(色)时:margin
(2)需要在border内测添加空白,且空白处需要背景(色)时:padding
10:z-index属性在什么情况下会失效
(1)父元素position为relative时,子元素的z-index失效。
(2)元素没有设置position,属性为非static属性
(3)元素设置z-index的同时还设置了float浮动
二:页面布局
1:常见的CSS布局单位
px,%,em.rem,vw/vh
(1)px:页面布局的基础 🔜 终端屏幕所能显示的最小区域
(2)%:可以使得浏览器组件中的宽高 🔜 随着浏览器的变化而变化
(3)em,rem:
em:相对于父元素
rem:相对于根元素
(4)vw / vh与视图窗口有关的单位
2:px,em,rem的区别及使用场景
px:固定的像素,一旦设置了就无法适应页面大小而改变
em和rem相对于px更具灵活性 🔜 相对长度单位 🔜 长度不是固定的,更适用于响应式布局
em相对于父元素,rem相对于根元素
3:两栏布局的实现
左边一栏宽度固定,右边一栏宽度自适应
(1)浮动 🔜 左边元素宽度设置200px,向左浮动 🔜 右边元素margin-left:200px,宽度auto
(2)flex布局 🔜 左边固定宽度200px 🔜 右边设置为flex:1
4:三栏布局的实现
左右两栏宽度固定,中间自适应布局
(1)绝对定位:左右两栏设置为绝对定位,中间设置对应方向大小的margin的值
(2)flex布局:左右栏设置固定大小,中间一栏设置flex:1
(3)利用浮动:左右栏设置固定大小 + 设置对应方向的浮动 🔜 中间一栏设置左右两个方向的margin
5:水平垂直居中的实现
(1)绝对定位:top:50%,left:50%;transform:translate(-50%,-50%)
(2)绝对定位:四方向设置为0 🔜 margin:auto(宽高固定)
(3)flex布局:align-item:center / justify-content:center
6:对flex布局的理解及其使用场景
(1)flex-direction属性决定主轴的方向
(2)flex-wrap:一条轴线排不下,如何换行
(3)flex-flow:flex-direction和flex-wrap属性的简写形式
(4)justify-content:定义了项目在主轴上的对齐方式
(5)align-items:项目在交叉轴上的如何对齐
(6)align-content:多根轴线的对齐方式
flex布局是CSS3新增的一种布局方式,可以通过将一个元素的display属性值设置为flex从而使它成为一个flex容器,它的所有子元素都会成为它的项目。一个容器默认有两条轴:一个是水平的主轴,一个是与主轴垂直的交叉轴。可以使用flex-direction来指定主轴的方向。可以使用justify-content来指定元素在主轴上的排列方式,使用align-items来指定元素在交叉轴上的排列方式。还可以使用flex-wrap来规定当一行排列不下时的换行方式。对于容器中的项目,可以使用order属性来指定项目的排列顺序,还可以使用flex-grow来指定当排列空间有剩余的时候,项目的放大比例,还可以使用flex-shrink来指定当排列空间不足时,项目的缩小比例。
相关文章:
番外02:前端八股文面试题-CSS篇
一:CSS基础 1:CSS选择器及其优先级 2:display的属性值及其作用 属性值作用none元素不显示,并且会从文档流中移除block块类型,默认元素为父元素宽度,可设置宽高,换行显示inline行内元素类型&a…...
Redis Copilot:基于Redis为AI打造的副驾工具
我们最近发布了Redis Copilot,以帮助开发者更快地使用Redis构建应用。我们的使命是使应用程序快速运行,并简化构建过程。为此,Redis Copilot作为您的AI助手,能够让您更迅速地完成与Redis相关的任务。您今天就可以在Redis Insight中…...
JavaScript遍历对象的7种方式
注:纯手打,如有错误欢迎评论区交流! 转载请注明出处:https://blog.csdn.net/testleaf/article/details/145523427 编写此文是为了更好地学习前端知识,如果损害了有关人的利益,请联系删除! 本文章…...
如何避免NACK重传风暴
策略 1,10 次 NACK 模块对同一包号的最大请求次数,超过这个最大次数限制,会把该包号移出 nack_list,放弃对该包的重传请求。 策略 2,20 毫秒 NACK 模块每隔 20 毫秒批量处理 nack_list,获取一批请求包号…...

并发工具CountDownLatch、CyclicBarrier、Semaphore
文章目录 学习链接CountDownLatchCountDownLatch类的作用类的主要方法介绍图解await和countDown方法两个典型用法注意点总结示例CountDownLatchDemo1CountDownLatchDemo2CountDownLatchDemo1And2 CyclicBarrierCyclicBarrier循环栅栏CyclicBarrier和CountDownLatch的区别示例Cy…...

十二. Redis 集群操作配置(超详细配图,配截图详细说明)
十二. Redis 集群操作配置(超详细配图,配截图详细说明) 文章目录 十二. Redis 集群操作配置(超详细配图,配截图详细说明)1. 为什么需要集群-高可用性2. 集群概述(及其搭建)3. Redis 集群的使用4. Redis 集群故障恢复5. Redis 集群的 Jedis 开发(使用Java…...

网络工程师 (26)TCP/IP体系结构
一、层次 四层: 网络接口层:TCP/IP协议的最底层,负责网络层与硬件设备间的联系。该层协议非常多,包括逻辑链路和媒体访问控制,负责与物理传输的连接媒介打交道,主要功能是接收数据报,并把接收到…...

TensorFlow域对抗训练DANN神经网络分析MNIST与Blobs数据集梯度反转层提升目标域适应能力可视化...
全文链接:https://tecdat.cn/?p39656 本文围绕基于TensorFlow实现的神经网络对抗训练域适应方法展开研究。详细介绍了梯度反转层的原理与实现,通过MNIST和Blobs等数据集进行实验,对比了不同训练方式(仅源域训练、域对抗训练等&am…...
保姆级教程--DeepSeek部署
以DeepSeek-R1或其他类似模型为例,涵盖环境配置、代码部署和运行测试的全流程: 准备工作 1. 注册 Cloud Studio - 访问 [Cloud Studio 官网](https://cloudstudio.net/),使用腾讯云账号登录。 - 完成实名认证(如需长期使用…...
机器学习之心的创作纪念日
机缘 今天,是我成为创作者的第1460天。 在这段时间里,获得了很大的成长。 虽然日常忙碌但还在坚持创作、初心还在。 日常 创作已经成为我生活的一部分,尤其是在我的工作中,创作是不可或缺的,创作都是核心能力之一。…...
VeryReport和FastReport两款报表软件深度分析对比
在当今数据驱动的商业环境中,报表软件已经成为企业管理和数据分析的重要工具。无论是中小型企业还是大型企业,都需要依赖高效的报表工具来快速生成、分析和展示数据。市面上有许多报表工具,其中VeryReport和FastReport是两款备受关注的报表软…...
libtorch的c++,加载*.pth
一、转换模型为TorchScript 前提:python只保存了参数,没存结构 要在C中使用libtorch(PyTorch的C接口),读取和加载通过torch.save保存的模型( torch.save(pdn.state_dict()这种方式,只保存了…...

去除 RequestTemplate 对象中的指定请求头
目录 目标实现获取 RequestTemplate 对象去除请求头 目标 去除 RequestTemplate 对象中的指定请求头,如 Authorization 等。 实现 获取 RequestTemplate 对象 获取 RequestTemplate 对象的方式有很多种,如 通过 feign 虚拟客户端配置器: …...

b s架构 网络安全 网络安全架构分析
目录 文章目录 目录网络安全逻辑架构 微分段(Micro-segmentation)防火墙即服务(Firewall asa Service ,FWaaS)安全网络网关(Secure web gateway)净化域名系统(Sanitized Domain Na…...

【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型
欢迎关注[【AIGC论文精读】](https://blog.csdn.net/youcans/category_12321605.html)原创作品 【DeepSeek论文精读】1. 从 DeepSeek LLM 到 DeepSeek R1 【DeepSeek论文精读】2. DeepSeek LLM:以长期主义扩展开源语言模型 【DeepSeek论文精读】3. DeepS…...
Spring Boot和SpringMVC的关系
Spring Boot和SpringMVC都是Spring框架的一部分,但它们的作用和使用方式有所不同。为了更好地理解它们的关系,我们可以从以下几个方面进行详细说明: 1. SpringBoot的作用 SpringBoot是一个开源框架,它的目的是简化Spring应用程序…...

java基础4(黑马)
一、方法 1.定义 方法:是一种语法结构,它可以把一段代码封装成一个功能,以便重复使用。 方法的完整格式: package cn.chang.define;public class MethodDemo1 {public static void main(String[] args) {// 目标:掌…...

nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug
nodejs 视频切片上传,本地正常,线上环境导致磁盘爆满bug 原因: 然后在每隔一分钟执行du -sh ls ,发现文件变得越来越大,即文件下的mp4文件越来越大 最后导致磁盘直接爆满 排查原因 1、尝试将m3u8文件夹下的所有视…...
注意力机制(Attention Mechanism)和Transformer模型的区别与联系
注意力机制(Attention Mechanism) 和 Transformer 模型 是深度学习领域中的两个重要概念,虽然它们紧密相关,但有着明显的区别。下面我们将从 定义、作用、结构 和 应用 等多个维度来分析这两者的区别与联系。 1. 定义 注意力机制(Attention Mechanism): 注意力机制是一…...

C++,设计模式,【单例模式】
文章目录 一、模式定义与核心价值二、模式结构解析三、关键实现技术演进1. 基础版(非线程安全)2. 线程安全版(双重检查锁)3. 现代C++实现(C++11起)四、实战案例:全局日志管理器五、模式优缺点深度分析✅ 核心优势⚠️ 潜在缺陷六、典型应用场景七、高级实现技巧1. 模板化…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

Linux入门课的思维导图
耗时两周,终于把慕课网上的Linux的基础入门课实操、总结完了! 第一次以Blog的形式做学习记录,过程很有意思,但也很耗时。 课程时长5h,涉及到很多专有名词,要去逐个查找,以前接触过的概念因为时…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点
中科院1区顶刊|IF14:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...