当前位置: 首页 > 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. 模板化…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

大数据学习(132)-HIve数据分析

​​​​🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言&#x1f4…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...