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

番外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联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...