CSS知识点

CSS基础

 CSS选择器的优先级是怎样的?✨

CSS选择器的优先级是:内联 > ID选择器 > 类选择器 > 标签选择器 到具体的计算层⾯,优先级是由 A 、B、C、D 的值来决定的,其中它们的值计算规则如下: A 的值等于 1 的前提是存在内联样式, 否则 A = 0; B 的值等于 ID选择器 出现的次数; C 的值等于 类选择器 和 属性选择器 和 伪类 出现的总次数; D 的值等于 标签选择器 和 伪元素 出现的总次数 。 就⽐如下⾯的选择器,它不存在内联样式,所以A=0,不存在id选择器B=0,存在⼀个类选择器C=1,存在三个标签选择器 D=3,那么最终计算结果为: {0, 0, 1 ,3}

按照这个结算⽅式,下⾯的计算结果为: {0, 1, 0, 0}

我们的⽐较优先级的⽅式是从A到D去⽐较值的⼤⼩,A、B、C、D权重从左到右,依次减⼩。判断优先级时,从左到右,⼀⼀⽐较,直到⽐较出最⼤值,即可停⽌。 ⽐如第⼆个例⼦的B与第⼀个例⼦的B相⽐,1>0,接下来就不需要⽐较了,第⼆个选择器的优先级更⾼。

link和@import的区别?

link属于XHTML标签,⽽@import是CSS提供的。 ⻚⾯被加载时,link会同时被加载,⽽@import引⽤的CSS会等到⻚⾯被加载完再加载。 import只在IE 5以上才能识别,⽽link是XHTML标签,⽆兼容问题。link⽅式的样式权重⾼于@import的权重。 使⽤dom控制样式时的差别。当使⽤javascript控制dom去改变样式的时候,只能使⽤link标签,因为@import不是 dom可以控制的。

有哪些⽅式(CSS)可以隐藏⻚⾯元素?

opacity:0 :本质上是将元素的透明度将为0,就看起来隐藏了,但是依然占据空间且可以交互 visibility:hidden : 与上⼀个⽅法类似的效果,占据空间,但是不可以交互了 overflow:hidden : 这个只隐藏元素溢出的部分,但是占据空间且不可交互 display:none : 这个是彻底隐藏了元素,元素从⽂档流中消失,既不占据空间也不交互,也不影响布局 z-index:-9999 : 原理是将层级放到底部,这样就被覆盖了,看起来隐藏了 transform: scale(0,0) : 平⾯变换,将元素缩放为0,但是依然占据空间,但不可交互 还有⼀些靠绝对定位把元素移到可视区域外,或者⽤clip-path进⾏裁剪的操作过于Hack,就不提了。

em\px\rem区别? px:绝对单位,⻚⾯按精确像素展示。 em:相对单位,基准点为⽗节点字体的⼤⼩,如果⾃身定义了font-size按⾃身来计算(浏览器默认字体是16px),整个⻚⾯内1em不是⼀个固定的值。 rem:相对单位,可理解为”root em”, 相对根节点html的字体⼤⼩来计算,CSS3新加属性,chrome/firefox/IE9+⽀持

块级元素⽔平居中的⽅法? 如果使⽤Hack的话,⽔平居中的⽅法⾮常多,我们只介绍主流的,奇葩的⻅拓展阅读 margin:0 auto ⽅法 flex布局,⽬前主流⽅法 table⽅法

还有⼀些通过position+(margin|transform)等⽅法的不⼀样列举了,⾮重点没必要。拓展阅读: 16种⽅法实现⽔平居中垂直居中

CSS有⼏种定位⽅式?

static: 正常⽂档流定位,此时 top, right, bottom, left 和 z-index 属性⽆效,块级元素从上往下纵向排布,⾏级元素从左向右排列。 relative:相对定位,此时的『相对』是相对于正常⽂档流的位置。 absolute:相对于最近的⾮ static 定位祖先元素的偏移,来确定元素位置,⽐如⼀个绝对定位元素它的⽗级、和祖 ⽗级元素都为relative,它会相对他的⽗级⽽产⽣偏移。 fixed:指定元素相对于屏幕视⼝(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变,⽐如那种回到顶部的按钮⼀般都是⽤此定位⽅式。 sticky:粘性定位,特性近似于relative和fixed的合体,其在实际应⽤中的近似效果就是IOS通讯录滚动的时候的 『顶屁股』。 ⽂字描述很难理解,可以直接看代码

如何理解z-index?✨

CSS 中的z-index属性控制重叠元素的垂直叠加顺序,默认元素的z-index为0,我们可以修改z-index来控制元素的图层位置,⽽且z-index只能影响设置了position值的元素。 我们可以把视图上的元素认为是⼀摞书的层叠,⽽⼈眼是俯视的视⻆,设置z-index的位置,就如同设置某⼀本书在这摞书中的位置。 顶部: 最接近观察者 … 3 层 2 层 1 层 0 层 默认层 -1 层 -2 层 -3 层 … 底层: 距离观察者最远

可以结合这个例⼦理解z-index

如何理解层叠上下⽂?✨ 是什么?

层叠上下⽂是HTML元素的三维概念,这些HTML元素在⼀条假想的相对于⾯向(电脑屏幕的)视窗或者⽹⻚的⽤户的z 轴上延伸,HTML元素依据其⾃身属性按照优先级顺序占⽤层叠上下⽂的空间。

如何产⽣?

触发⼀下条件则会产⽣层叠上下⽂: 根元素 (HTML), z-index 值不为 “auto”的 绝对/相对定位, ⼀个 z-index 值不为 “auto”的 flex 项⽬ (flex item),即:⽗元素 display: flex|inline-flex, opacity 属性值⼩于 1 的元素(参考 the specification for opacity), transform 属性值不为 “none”的元素, mix-blend-mode 属性值不为 “normal”的元素, filter值不为“none”的元素, perspective 值 不 为 “none” 的 元 素 , isolation 属性被设置为 “isolate”的元素, position: fixed 在 will-change 中指定了任意 CSS 属性,即便你没有直接指定这些属性的值(参考 这篇⽂章) -webkit-overflow-scrolling 属性被设置 “touch”的元素 拓展阅读:层叠上下⽂-张鑫旭

清除浮动有哪些⽅法?

空 div ⽅ 法 :

Clearfix ⽅法:上⽂使⽤.clearfix类已经提到overflow: auto或overflow: hidden⽅法,使⽤BFC 在flex已经成为布局主流之后,浮动这种东⻄越来越少⻅了,毕竟它的副作⽤太⼤

你对css sprites的理解,好处是什么? 是什么 ?

雪碧图也叫CSS精灵, 是⼀CSS图像合成技术,开发⼈员往往将⼩图标合并在⼀起之后的图⽚称作雪碧图。

如何操作? 使⽤⼯具(PS之类的)将多张图⽚打包成⼀张雪碧图,并为其⽣成合适的 CSS。 每张图⽚都有相应的 CSS 类,该类定义了background-image、background-position和background-size属性。 使⽤图⽚时,将相应的类添加到你的元素中。

好处: 减少加载多张图⽚的 HTTP 请求数(⼀张雪碧图只需要⼀个请求) 提前加载资源

不⾜: CSS Sprite维护成本较⾼,如果⻚⾯背景有少许改动,⼀般就要改这张合并的图⽚ 加载速度优势在http2开启后荡然⽆存,HTTP2多路复⽤,多张图⽚也可以重复利⽤⼀个连接通道搞定

你对媒体查询的理解? 是什么

媒体查询由⼀个可选的媒体类型和零个或多个使⽤媒体功能的限制了样式表范围的表达式组成,例如宽度、⾼度和颜 ⾊。媒体查询,添加⾃CSS3,允许内容的呈现针对⼀个特定范围的输出设备⽽进⾏裁剪,⽽不必改变内容本身,⾮常适合web⽹⻚应对不同型号的设备⽽做出对应的响应适配。

如何使⽤?

媒体查询包含⼀个可选的媒体类型和,满⾜CSS3规范的条件下,包含零个或多个表达式,这些表达式描述了媒体特 征,最终会被解析为true或false。如果媒体查询中指定的媒体类型匹配展示⽂档所使⽤的设备类型,并且所有的表达式的值都是true,那么该媒体查询的结果为true.那么媒体查询内的样式将会⽣效。

拓展阅读:深⼊理解CSS Media媒体查询

你对盒模型的理解✨ 是什么?

当对⼀个⽂档进⾏布局(lay out)的时候,浏览器的渲染引擎会根据标准之⼀的 CSS 基础框盒模型(CSS basic box model),将所有元素表示为⼀个个矩形的盒⼦(box)。CSS 决定这些盒⼦的⼤⼩、位置以及属性(例如颜⾊、背景、边框尺⼨…)。

盒模型由content(内容)、padding(内边距)、border(边框)、margin(外边距)组成。

标准盒模型和怪异盒模型有什么区别?✨

在W3C标准下,我们定义元素的width值即为盒模型中的content的宽度值,height值即为盒模型中的content的⾼度值。因此,标准盒模型下: 元素的宽度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

⽽IE怪异盒模型(IE8以下)width的宽度并不是content的宽度,⽽是border-left + padding-left + content的宽度值 + padding-right + border-right之和,height同理。 在怪异盒模型下: 元素占据的宽度 = margin-left + width + margin-right

虽然现代浏览器默认使⽤W3C的标准盒模型,但是在不少情况下怪异盒模型更好⽤,于是W3C在css3中加⼊ box- sizing 。

此演示来源于拓展阅读⽂章

拓展阅读:深⼊理解盒模型

谈谈对BFC的理解✨ 是什么?

书⾯解释:BFC(Block Formatting Context)这⼏个英⽂拆解 Box: CSS布局的基本单位,Box 是 CSS 布局的对象和基本单位, 直观点来说,就是⼀个⻚⾯是由很多个 Box 组成的,实际就是上个问题说的盒模型 Formatting context:块级上下⽂格式化,它是⻚⾯中的⼀块渲染区域,并且有⼀套渲染规则,它决定了其⼦元素将如何定位,以及和其他元素的关系和相互作⽤ 简⽽⾔之,它是⼀块独⽴的区域,让处于BFC内部的元素与外部的元素互相隔离

如何形成?

BFC触发条件: 根元素,即HTML元素position: fixed/absolute float 不 为 none overflow不为visible display的值为inline-block、table-cell、table-caption

作⽤是什么?

防⽌margin发⽣重叠

两栏布局,防⽌⽂字环绕等

防⽌元素塌陷

拓展阅读:深⼊理解BFC

为什么有时候⼈们⽤translate来改变位置⽽不是定位?

translate()是transform的⼀个值。改变transform或opacity不会触发浏览器重新布局(reflow)或重绘(repaint),只会 触发复合(compositions)。⽽改变绝对定位会触发重新布局,进⽽触发重绘和复合。transform使浏览器为元素创建⼀个 GPU 图层,但改变绝对定位会使⽤到 CPU。 因此translate()更⾼效,可以缩短平滑动画的绘制时间。 ⽽translate改变位置时,元素依然会占据其原始空间,绝对定位就不会发⽣这种情况。拓展阅读:CSS3 3D transform变换

伪类和伪元素的区别是什么? 是什么?

伪类(pseudo-class) 是⼀个以冒号(:)作为前缀,被添加到⼀个选择器末尾的关键字,当你希望样式在特定状态下才被呈现到指定的元素时,你可以往元素的选择器后⾯加上对应的伪类。 伪元素⽤于创建⼀些不在⽂档树中的元素,并为其添加样式。⽐如说,我们可以通过::before来在⼀个元素前增加⼀些 ⽂本,并为这些⽂本添加样式。虽然⽤户可以看到这些⽂本,但是这些⽂本实际上不在⽂档树中。

区别 其实上⽂已经表达清楚两者区别了,伪类是通过在元素选择器上加⼊伪类改变元素状态,⽽伪元素通过对元素的操作进 ⾏对元素的改变。 我们通过 p::before 对这段⽂本添加了额外的元素,通过 p:first-child 改变了⽂本的样式。

拓展阅读:伪类与伪元素

你对flex的理解?✨

web应⽤有不同设备尺⼨和分辨率,这时需要响应式界⾯设计来满⾜复杂的布局需求,Flex弹性盒模型的优势在于开发 ⼈员只是声明布局应该具有的⾏为,⽽不需要给出具体的实现⽅式,浏览器负责完成实际布局,当布局涉及到不定宽度,分布对⻬的场景时,就要优先考虑弹性盒布局

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

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

相关文章

MySQL InnoDB存储引擎的优点有哪些?

MySQL InnoDB存储引擎的优点有哪些? 在MySQL数据库管理系统中,InnoDB是一种流行的存储引擎,提供了许多重要的功能和优势,使其成为许多应用的首选存储引擎。以下是使用InnoDB表的一些主要好处: 1. 崩溃恢复 如果服务…

报告,已成功揪出三害:英语、谷歌、ChatGPT

互联网风云变幻,最近网上的壮士们经过不懈努力,成功揪出作家莫言为一害,微博上的壮士们给出的理由是“如果莫言是个好人,会给他发诺贝尔文学奖?” 此风波的始作俑者来自某大V,他信誓旦旦要起诉莫言老师&…

Java实现从本地读取CSV文件数据

一、前言 最近项目中需要实现这样一个功能,就是从本地读取CSV文件,并以指定行作为标题行,指定行开始作为数据读取行,读取数据并返回给前端,下面具体说下是如何通过java实现。 二、如何实现? 1.引入相关mav…

【深度学习笔记】6_7 门控循环单元(GRU)

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 6.7 门控循环单元(GRU) 上一节介绍了循环神经网络中的梯度计算方法。我们发现,当时间步数较大或者…

【Objective -- C】—— 自引用计数

【Objective -- C】—— 自引用计数 一. 内存管理/自引用计数1.自引用计数2.内存管理的思考方式自己生成的对象,自己持有非自己生成的对象,自己也能持有不再需要自己持有的对象时释放无法释放非自己持有的对象 3.alloc/retain/release/dealloc实现4. aut…

全链路Python环境迁移

全链路Python环境迁移 在当前的Python环境中,安装一些库以后,如果换了一套Python环境,难道再来一次不停的pip install?当然不是。 第一步,使用pip freeze(冻结)备份当前Python库的环境 pip f…

智慧公厕系统的运作过程

智慧公厕是一种新型的未来城市公共厕所,通过物联网、互联网、大数据、云计算、自动化控制等技术,实现公共厕所使用、运营、管理、养护的全过程全方位信息化。 那么,智慧公厕是如何运作的?智慧公厕的运作过程包括什么技术&#xf…

C++ : std::is_same和std::is_same_v

std::is_same和std::is_same_v是C标准库中的类型特性&#xff0c;用于在编译时检查两个类型是否相同。它们都属于<type_traits>头文件。这两个工具非常有用&#xff0c;特别是在模板编程和编译时类型检查中&#xff0c;它们可以帮助实现基于类型的条件编译和编译时决策。…

【Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令】

Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令 1、名词解释 1.1 CUDA CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的用于并行计算的平台和编程模型。CUDA旨在利用NVIDIA GPU&#xff08;图形处理单元&#xff09;的强大计算…

【哈希】Leetcode 49、 字母异位词分组【中等】

字母异位词分组 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”…

windows/linux 自动登录ssh的脚本

1、如果是cmd环境下&#xff0c;则要编写vbs脚本来实现。 Set ws CreateObject("WScript.Shell") ws.run "ssh zyh192.168.2.183" wscript.sleep 1000 ws.sendkeys("123456") ws.sendkeys("{ENTER}") wscript.sleep 1000 ws.SendKey…

使用R语言进行聚类分析

一、样本数据描述 城镇居民人均消费支出水平包括食品、衣着、居住、生活用品及服务、通信、文教娱乐、医疗保健和其他用品及服务支出这八项指标来描述。表中列出了2016年我国分地区的城镇居民的人均消费支出的原始数据&#xff0c;数据来源于2017年的《中国统计年鉴》&#xf…

Publii和GitHub:搭建个人网站的完美组合

在数字时代&#xff0c;拥有一个个人网站已经非常普遍了&#xff0c;但是&#xff0c;很多人因为技术难题而望而却步。现在&#xff0c;有了Publii&#xff0c;这一切都将变得简单。Publii是一个静态网站生成器&#xff0c;它允许你在本地计算机上创建和管理内容&#xff0c;然…

ARM中汇编语言的学习(加法、乘法、除法、左移、右移、按位与等多种命令操作实例以及ARM的 N、Z、C、V 标志位的解释)

汇编概述 汇编需要学习的大致框架如下&#xff1a; 汇编中的符号 1.指令&#xff1b;能够北嘁肷梢惶?2bit机器码&#xff0c;并且能够被cpui识别和执行 2.伪指令&#xff1a;本身不是指令&#xff0c;编译器可以将其替换成若干条指令 3.伪操作&#xff1a;不会生成指令…

如何修复advapi32.dll丢失无法启动程序的问题

如果你在运行Windows程序时遇到了“advapi32.dll丢失无法启动程序”的错误消息&#xff0c;那么这意味着你的计算机缺少这个DLL文件。在本文中&#xff0c;我们将提供一些解决方案&#xff0c;帮助你解决这个问题并恢复计算机的正常运行。 一.advapi32.dll丢失电脑的提示 关于…

软件项目试运行方案

一、 试运行目的 &#xff08;一&#xff09; 系统功能、性能与稳定性考核 &#xff08;二&#xff09; 系统在各种环境和工况条件下的工作稳定性和可靠性 &#xff08;三&#xff09; 检验系统实际应用效果和应用功能的完善 &#xff08;四&#xff09; 健全系统运行管理体制&…

宏碁掠夺者:4K144Hz显示器,让你爽翻天

大家好&#xff0c;我又来了。 买了PS5后&#xff0c;我发现这样的主机放在客厅里可玩性不太高&#xff08;我没机会玩&#xff09;。 毕竟家里还有今年要上小学的孩子。 每天回家打卡交作业都让我发疯。 客厅里放一台PS5无疑是每天对孩子最大的影响&#xff08;也划破了我的心…

vue3+vite

安装vue3vite https://cn.vitejs.dev/guide/ vite官网 需要安装高版本的nodejs http://nodejs.cn/download/ Vite 需要 Node.js 版本 18&#xff0c;20。然而&#xff0c;有些模板需要依赖更高的 Node 版本才能正常运行&#xff0c;当你的包管理器发出警告时&#xff0c;请注意…

vue 下载的插件从哪里上传?npm发布插件详细记录

文章参考&#xff1a; 参考文章一&#xff1a; 封装vue插件并发布到npm详细步骤_vue-cli 封装插件-CSDN博客 参考文章二&#xff1a; npm发布vue插件步骤、组件、package、adduser、publish、getElementsByClassName、important、export、default、target、dest_export default…

智能驾驶规划控制理论学习08-自动驾驶控制模块(轨迹跟踪)

目录 一、基于几何的轨迹跟踪方法 1、基本思想 2、纯追踪 3、Stanly Method 二、PID控制器 三、LQR&#xff08;Linear Quadratic Regulator&#xff09; 1、基本思想 2、LQR解法 3、案例学习 基于LQR的路径跟踪 基于LQR的速度跟踪 4、MPC&#xff08;Mode…