CSS之选择器、优先级、继承

1.CSS选择器

常用的选择器

 <body>
    <div class="parent">
      <div id="one" style="background: blue" class="child">
        1
        <div class="one_one">11</div>
        <div style="background-color: blueviolet" class="one_two">12</div>
      </div>
      <div id="two" class="child">2</div>
      <div class="child three">3</div>
      <div class="child" data-dachao="daChao">4</div>
    </div>
  </body>
  <style>
    div {
      display: inline-block;
      font-size: 18px;
    }

    * {
      box-sizing: content-box;
      font-size: 30px;
    }

    #one,
    #two {
      background-color: red;
    }

    .parent div {
      background-color: yellow;
    }

    .parent > div {
      background-color: black;
    }

    .parent #two {
      background-color: purple;
    }

    #two + div {
      background-color: lightpink;
    }

    .three {
      display: inline;
    }

    div[data-dachao] {
      background-color: cyan;
      margin-left: 20px;
      position: relative;

      &::before {
        content: "^";
        color: brown;
        position: absolute;
        left: -10px;
        top: 0px;
      }

      &::after {
        content: "~";
        color: brown;
        position: absolute;
        right: -10px;
        top: 0px;
      }
    }

    .parent .child .one_two {
      background-color: darkslategray !important;
    }

    .parent {
      width: 400px;
      height: 200px;
      background-color: lightgray;
      box-sizing: border-box;
    }

    .child {
      width: 100px;
      height: 100px;
      background-color: green;
      margin: 0 10px 10px 0;
      box-sizing: border-box;
    }
  </style>

在这里插入图片描述

  • id选择器(#one): 选择id为one的元素;
  • 类选择器(.child): 选择类名为child的所有元素;
  • 标签选择器(div):选择标签为div的所有元素;
  • 后代选择器( .parent div):选择parent元素内部所有的div元素;
  • 子选择器( .parent > div):选择父元素为.parent的所有子div的元素,第一层的div不是所有的div;
  • 相邻同胞选择器( #two + div):选择紧接在#two 之后的div元素;
  • 属性选择器(div[data-dachao] ),选择属性有data-dachao的元素。
常用的伪元素

::before:在元素内容的前面插入新内容。常用于添加装饰性内容。
::after:在元素内容的后面插入新内容。同样常用于添加装饰性内容。
::first-letter:用于选取文本块的第一个字母,并可对其进行样式化。常用于排版设计,如"首字下沉"效果。
::first-line:用于选取文本块的第一行,并可对其进行样式化。常用于设置文章首行的文字特性,如字体、颜色等。
::selection:用于改变用户选中文字时的背景颜色和文字颜色等样式。
::placeholder:用于自定义输入框占位符的样式,比如更改文字颜色或字体大小。

常用的伪类

:hover:用于定义鼠标指针悬停在元素上时的样式。
:active:定义激活状态的元素样式(例如,鼠标点击链接或按钮时)。
:focus:用于定义元素获得焦点时(如通过tab键选中)的样式,常用于表单控件。
:checked:用于选中的单选按钮(radio)或复选框(checkbox)的样式。
:first-child:选择父元素的第一个子元素。
:last-child:选择父元素的最后一个子元素。
:nth-child(n):选择父元素的第n个子元素,n可以是数字、关键词或公式。
:not(selector):用于选择非特定项的元素,selector是任何有效的CSS选择器。
:link 和 :visited:分别用于定义未被访问过的链接和已被访问过的链接的样式。

当然还一些其他的伪类,伪元素,后续再总结。

2.优先级

!Important>行内样式>ID 选择器>类选择器>标签>继承>浏览器默认属性
  1. !Important优先级高于行内样式
  .parent .child .one_two {
      background-color: darkslategray !important;
    }
<div style="background-color: blueviolet" class="one_two">12</div>

.one_two颜色是darkslategray。

  1. 行内样式优先级高于ID 选择器
   <div id="one" style="background: blue" class="child">
    #one,
    #two {
      background-color: red;
    }

#one的颜色是blue。

  1. ID 选择器优先级高于类选择器
<div id="two" class="child">2</div>
 .parent #two {
      background-color: purple;
 }
.child {
      width: 100px;
      height: 100px;
      background-color: green;
      margin: 0 10px 10px 0;
}  

颜色是purple。

  1. 类选择器优先级高于标签
.three {
    display: inline;
}

div {
    display: inline-block;
}

.three行内元素。

  1. 标签优先级高于通配符
 * {
      box-sizing: content-box;
    }
 .parent {
      width: 400px;
      height: 200px;
      background-color: lightgray;
      box-sizing: border-box;
    }

    .child {
      width: 100px;
      height: 100px;
      background-color: green;
      margin: 0 10px 10px 0;
      box-sizing: border-box;
    }    

.parent .child的box-sizing: border-box。

  1. 继承优先级高于浏览器默认属性
div {
    display: inline-block;
    font-size: 18px;
}

* {
    box-sizing: content-box;
    font-size: 30px;
}

div {
    display: block;
}

浏览器默认属性优先级比较低, display: inline-block。

3.继承

可继承属性

这些属性常常与文本格式设置相关,例如:

color:文本的颜色。
font-family:字体系列。
font-size:字体大小。
font-style:字体样式(例如,斜体)。
font-variant:字体变体(例如,小型大写字母)。
font-weight:字体的粗细。
letter-spacing:字符间距。
line-height:行高。
text-align:文本对齐方式。
text-indent:文本缩进。
text-transform:文本转换(大写、小写、首字母大写等)。
visibility:元素的可见性(注意:即使父元素设置为visibility: hidden,子元素依然可以通过设置visibility: visible来显示自己)。
white-space:如何处理元素内的空白。

不可继承的CSS属性

这些属性大多与布局和盒模型相关,例如:

background:背景设置(包含background-color、background-image等)。
border:边框设置(包含border-width、border-style、border-color等)。
height:元素的高度。
width:元素的宽度。
margin:外边距。
padding:内边距。
position:定位方式(如absolute,relative)。
display:元素的显示类型(例如block,inline,flex)。
overflow:超出元素框的内容如何处理。
z-index:堆叠顺序。

特例和注意事项

有些属性虽然默认不继承,但可以通过明确设置inherit值来实现继承,如margin: inherit。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3 Element Plus 基于webstorm练习

提要 vue是前端框架&#xff0c;Elemen是组件库。前端框架和组件库的区别与联系 nodejs 脚本语言需要一个解析器才能运行&#xff0c;JavaScript是脚本语言&#xff0c;在不同的位置有不一样的解析器&#xff0c;如写入html的js语言&#xff0c;浏览器是它的解析器角色。而对…

浅谈业务场景中缓存的使用

业务场景中缓存的使用 一、背景二、缓存分类1.本地缓存2.分布式缓存 三、缓存读写模式1.读请求2.写请求 四、缓存穿透1.缓存空对象2.请求校验3.请求来源限制4.布隆过滤器 五、缓存击穿1.改变过期时间2.串行访问数据库 六、缓存雪崩1.避免集中过期2.提前更新缓存 七、缓存与数据…

TMGM公司官网介绍

TMGM主要提供外汇、贵金属、原油、股指等CFD产品&#xff0c;客户可以根据个人的交易习惯选择其中一种或多种进行投资。具体来说&#xff0c;TMGM的金融产品包括但不限于货币对、黄金、原油、股票指数等。此外&#xff0c;TMGM还提供多种账户类型以满足不同客户的交易需求。 请…

error MSB8008: 指定的平台工具集(v143)未安装或无效。请确保选择受支持的 PlatformToolset 值解决办法

右击解决方案&#xff0c;选择属性 将工具集为143的修改为其他&#xff0c;如图 重新编译即可运行

DDC技术:AIGC网络的革命性解决方案

2023年&#xff0c;人工智能生成内容&#xff08;AIGC&#xff09;技术将蓬勃发展&#xff0c;其中ChatGPT作为一个典型案例&#xff0c;在文本生成、代码开发和诗歌创作等多个领域引起行业变革。DDC技术对改变网络格局具有创新和突破性意义&#xff0c;很大程度上提升了效率和…

Python 读取pdf文件

Python 实现读取pdf文件简单示例。 安装命令 需要安装操作pdf的三方类库&#xff0c;命令如下&#xff1a; pip install pdfminer3K 安装过程如下&#xff1a; 引入类库 需要引入很多的类库。 示例如下&#xff1a; import sys import importlib importlib.reload(sys)fr…

汽车零部件制造业MES系统解决方案

一、​汽车零部件行业现状 随着全球汽车产业不断升级&#xff0c;汽车零部件市场竞争日趋激烈&#xff0c;从上游的钢铁、塑料、橡胶等生产到下游的主机厂配套制造&#xff0c;均已成为全球各国汽车制造大佬战略目标调整的焦点&#xff0c;其意欲在汽车零部件行业快速开疆扩土&…

蓝牙BLE学习-GAP

1.概述 GAP层&#xff08;Generic access profile-通用访问配置文件&#xff09;。GAP是对LL层payload&#xff08;有效数据包&#xff09;如何进行解析的两种方式的一种&#xff0c;而且也是最简单的一种。GAP简单的对LL payload进行一些规范和定义&#xff0c;因此GAP能实现的…

Compose高级别API动画指南

前文讲了Compose中的低级别API动画&#xff0c;与之对应的&#xff0c;还有高级别API动画&#xff0c;同样也符合Material-Design规范。所有高级别动画 API 都是在低级别动画 API 的基础上构建而成&#xff0c;其对应关系如图&#xff1a; 接下来就对其高级别API逐个分析&…

【王道数据结构】【chapter5树与二叉树】【P159t12】

设一棵二叉树的结点结构为(LLINK,INFO,RLINK)&#xff0c;ROOT为指向该二叉树根结点的指针&#xff0c;p和q分别为指向该二叉树中任意两个节点的指针&#xff0c;试编写算法ANCESTOR(ROOT,p,q,r)&#xff0c;找到p和q的最近公共祖先结点r #include <iostream> #include &…

Linux第54步_根文件系统第1步_编译busybox并安装_然后添加“根文件系统”的库

学习编译busybox&#xff0c;并安装&#xff0c;然后添加“根文件系统”的库。有人说busybox构建根文件系统&#xff0c;只适合学习&#xff0c;不适合做项目。 1、了解ubuntu的根文件系统 根文件系统的目录名为“/”&#xff0c;就是一个斜杠。 1)、输入“cd /回车”&…

算法学习——LeetCode力扣二叉树篇7

算法学习——LeetCode力扣二叉树篇7 236. 二叉树的最近公共祖先 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09; 描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点…

加速创新如何先从创意管理开始?

文章详细介绍了什么是创意管理以及它在组织中的重要性和最佳实践。创意管理是指在组织内捕捉、组织、评估和实施创意的过程。它通过建立一个结构化的系统&#xff0c;从员工、客户或其他利益相关者那里收集创意&#xff0c;并系统地审查和选择最有前景的创意进行进一步的开发或…

《区块链公链数据分析简易速速上手小册》第8章:实战案例研究(2024 最新版)

文章目录 8.1 案例分析&#xff1a;投资决策支持8.1.1 基础知识8.1.2 重点案例&#xff1a;股票市场趋势预测准备工作实现步骤步骤1: 加载和准备数据步骤2: 特征工程步骤3: 训练模型步骤4: 评估模型 结论 8.1.3 拓展案例 1&#xff1a;基于情感分析的投资策略准备工作实现步骤步…

【王道数据结构】【chapter5树与二叉树】【P159t14】

设有一棵满二叉树&#xff08;所有结点值均不同&#xff09;&#xff0c;已知其先序序列为pre&#xff0c;设计一个算法求其后序序列post #include <iostream> #include <stack> #include <queue> #include<string.h> typedef struct treenode{char da…

读十堂极简人工智能课笔记02_选对路径与犯错

1. 符号人工智能 1.1. 在符号处理中&#xff0c;单词被当成遵循一套规则、互相关联的符号 1.2. 符号人工智能让计算机能用单词来思考 1.3. 符号人工智能是最早、最成功的人工智能形式之一 1.4. 20世纪初的时候&#xff0c;伯特兰罗素、库尔特哥德尔和大卫希尔伯特等数学家就…

训练深度学习模型的过程

深度学习的训练过程是指通过大量的数据来调整神经网络的参数&#xff0c;以使其能够对输入数据进行准确的预测或分类. 训练神经网络的步骤 损失函数&#xff08;Loss Function&#xff09;是一个性能指标&#xff0c;反映神经网络生成接近期望值的值的程度。 损失函数直观上就…

书生浦语大模型实战营-课程笔记(1)

模型应用过程&#xff0c;大致还是了解的。和之前实习做CV项目的时候比起来&#xff0c;多了智能体这个环节。智能体是个啥&#xff1f; 类似上张图&#xff0c;智能体不太清楚。感觉是偏应用而不是模型的东西&#xff1f; 数据集类型很多&#xff0c;有文本/图片/视频。所以…

Vulnhub靶机:DC3

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;DC3&#xff08;10.0.2.56&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/dc-32,312…

洛谷C++简单题小练习day11—字母转换,分可乐两个小程序

day11--字母转换--2.14 习题概述 题目描述 输入一个小写字母&#xff0c;输出其对应的大写字母。例如输入 q[回车] 时&#xff0c;会输出 Q。 代码部分 #include<bits/stdc.h> using namespace std; int main() { char n;cin>>n;cout<<char(n-32)<…