css层叠关系

news/2025/1/8 22:03:31/

文章目录

  • cascading
    • 声明冲突
    • 应用
      • 重置样式表
      • a元素的类选择器顺序问题

cascading

cascading – 层叠
解决声明冲突的过程,浏览器会自动处理;就是计算样式的权重,权重大的就被选择;

声明冲突

是指多个选择器选中同一个标签,如果属性名相同属性不同则会产生冲突,如果发生冲突浏览器会触发自己的层叠机制。层叠过程分成3个过程:依次从比较重要性、比较特殊性、比较原次序来触发层叠机制:

  1. 比较重要性

    1. 作者样式中!important属性样式
    2. 作者样式表中的普通样式
    3. 浏览器默认样式表的样式
  2. 比较特殊型
    总体规则就是看选择器,选择器针对的范围越小,那么对应的选择器越特殊,那么久选择对应的声明冲突的选择器样式。
    行内样式 > id选择器 > 类、伪类选择器、属性选择器 > 元素、伪元素选择器
    计算逻辑就是通过选择器计算出一个4位数,最终那个选择器的数值大就用那个选择器的声明冲突的属性:

    1. 千位:如果是内联样式,记1,否则记0
    2. 百位:等于选择器中所有id选择器的数量
    3. 十位:等于选择器中所有类选择器、属性选择器、伪类选择器的数量
    4. 个位:等于选择器中所有元素选择器、伪元素选择器的数量
      以上的这些数量,逢256进1,测试样式如下:
     <style>a {/* 0001 */color: red;}div ul a {/* 0003 */color: green;}#mydiv #myul a {/* 0201 */color: gray;}#mydiv #myul .mylink {/* 0210 */color: #008c8c;}#mydiv #myul a:link {/* 0211 */color: chocolate;}</style>
    
     <div id="mydiv"><ul id="myul"><li><a href="https://1234455.com" class="mylink">比较特殊性</a></li></ul></div>
    
  3. 比较顺序
    浏览器从上到下分析代码,后面的css覆盖前面的css样式

应用

重置样式表

书写一些作者样式,覆盖浏览器的默认样式:用重置样式表覆盖浏览器默认样式表,然后再编写样式表覆盖重置样式表样式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tGeZTnKp-1692416057143)(images/resetCSS.png)]
重置样式表就是先重置样式表,保证在每个浏览器中的显示效果一样,然后在这个默认的样式表基础上编写个人的样式表。重置样式表的意义就在于使重置样式表可以复用,不然每个项目的样式表都要考虑浏览器的默认样式表。

a元素的类选择器顺序问题

  1. a:link
  2. a:visited
  3. a:hover
  4. a:active
    这4中选择器的优先级是一样的,那么后出现的会覆盖前面的,当多种情况出现时,要按照预期正确显示,就要按照上面的顺序进行css编写;

http://www.ppmy.cn/news/1043582.html

相关文章

四、内存管理

1、为什么需要自己实现内存管理 (1)RTOS涉及的内核对象&#xff1a;task、queue、semaphores和event group等。为了让FreeRTOS更容 易使用&#xff0c;这些内核对象一般都是动态分配&#xff1a;用到时分配&#xff0c;不使用时释放。使用内存的动态管理功能&#xff0c;简化了…

python:tkinter + cef 模仿 mdict 界面

cefpython3 其上游是C开发的CEF&#xff08;基于webkit、V8&#xff09;&#xff0c; CEF 即 (Chromium Embedder Framework)&#xff0c; 是基于Google Chromium项目的开源 Web browser控件(WebView)。 pip install cefpython3 cefpython3-66.1-py2.py3-none-win_amd64.whl (…

神经网络基础-神经网络补充概念-62-池化层

概念 池化层&#xff08;Pooling Layer&#xff09;是深度学习神经网络中常用的一种层级结构&#xff0c;用于减小输入数据的空间尺寸&#xff0c;从而降低模型的计算复杂度&#xff0c;减少过拟合&#xff0c;并且在一定程度上提取输入数据的重要特征。池化层通常紧跟在卷积层…

Android 面试笔记整理-Binder机制

作者&#xff1a;浪人笔记 面试可能会问到的问题 从IPC的方式问到Binder的优势为什么zygote跟其他服务进程的通讯不使用BinderBinder线程池和Binder机制 等等这些问题都是基于你对Binder的理解还有对其他IPC通讯的理解 IPC方式有多少种 传统的IPC方式有Socket、共享内存、管道…

华纳云:搭建服务器镜像运行环境的步骤

搭建服务器镜像运行环境涉及多个步骤&#xff0c;包括选择操作系统、配置软件和服务、进行安全设置等。以下是一个基本的指南&#xff0c;可以帮助您开始搭建服务器镜像运行环境&#xff1a; 选择操作系统&#xff1a; 根据您的需求和偏好&#xff0c;选择适合的操作系统。常见…

java forEach中不能使用break和continue的原因

1.首先了解break和continue的使用范围和作用 1.1使用范围 break适用范围&#xff1a;只能用于switch或者是循环语句中。当然可以用于增强for循环。 continue适用范围: 用于循环语句中。 1.2作用 break: 1. break用于switch语句的作用是结束一个switch语句。 2. break用于循…

插入排序优化——超越归并排序的超级算法

插入排序及优化 插入排序算法算法讲解数据模拟代码 优化思路一、二分查找二、copy函数 优化后代码算法的用途题目&#xff1a;数星星&#xff08;POJ2352 star&#xff09;输入输出格式输入格式&#xff1a;输出格式 输入输出样例输入样例输出样例 题目讲解步骤如下AC 代码 插入…

[bug] 记录version `GLIBCXX_3.4.29‘ not found 解决方法

在使用mediapipe 这个库的时候&#xff0c;首次使用出现 GLIBCXX_3.4.29’ not found 错误&#xff0c; 看起来是安装mediapipe 的时候自动升级了 matplotlib 这个库&#xff0c;导致依赖的 libstd.so 版本不满足了&#xff0c;GLIBCXX_3.4.29 is an object from libstdc.so.…