CSS设计指南 笔记2

news/2024/11/17 16:36:06/

CSS设计指南 笔记2

2 CSS工作原理

当元素的同一个样式属性有多种样式值的时候,CSS靠层叠机制来决定最终应用哪种样式

CSS是一种先选择HTML元素,然后设定选中元素CSS属性的机制

CSS选择符和要应用的样式构成了一条CSS规则

2.1 剖析CSS规则

规则是一条完整的CSS指令,声明了要修改的元素和要应用给该元素的样式

为文档添加样式的三种方式

  • 行内样式

    • 写在元素标签里

    • 作用范围有限:只能影响所在的标签

    • 总会覆盖嵌入样式和链接样式

      <p>default
      </p><p sylte="font-size: 12px; font-weight: bold">use inline CSS styling
      </p>
      
  • 嵌入样式

    • 写在<style>标签里

    • 嵌入的CSS样式放在HTML文档的head元素中

    • 应用范围仅限于当前页面,会覆盖外部样式表中的样式

      <head><style type="text/css">h1 {font-size: 12px;}p {color: blue;}</style>
      </head>
      
  • 链接样式

    • 写在单独的CSS样式表(扩展名为.css的文本文件)中

    • 可以在任意多个HTML页面中链接同一个样式表文件

      <link href="styles.css" rel="stylesheet" type="text/css" />
      
  • @import指令:在样式表中链接其他样式表

    • @import指令必须出现在样式表中其他样式之前,否则不会被加载

      @import url(css/styles2.css)
      

CSS规则命名惯例

CSS规则由选择符和声明两部分组成

  • 选择符:指出规则所要选择的元素
  • 声明:
    • 属性:样式
    • 值:属性的一个新状态

扩展

  • 多个声明包含在一条规则里

  • 多个选择符组合在一起

  • 多条规则应用给一个选择符

选择符分类

  • 上下文选择符:基于祖先或同胞元素选择一个元素
  • ID和类选择符:基于id和class属性的值选择元素
  • 属性选择符:基于属性的有无和特征选择元素

2.2 上下文选择符

后代组合式选择符(descendant combinator selector)

  • 一组以空格分隔的标签名
  • 用于选择作为指定祖先元素后代的标签

标签1 标签2 {声明}

标签2是想要选择的目标

只有在标签1是其祖先元素(不一定是父元素)的情况下才会选中

2.3 特殊的上下文选择符

2.3.1 子选择符 >

标签1 > 标签2

标签2必须是标签1的子元素

2.3.2 紧邻同胞选择符 +

标签1 + 标签2

标签2必须紧跟在其同胞标签1的后面

2.3.3 一般同胞选择符 ~

标签1 ~ 标签2

标签2必须跟(不一定紧跟)在其同胞标签1的后面

2.3.4 通用选择符 *

通用选择符*是一个通配符,匹配任何元素

一般在使用时会同时使用另一个选择符

非子选择符

section * a {font-size: 1.3em;}

任何时section孙子元素,而非子元素的a都会被选中;a的父元素是什么,没有关系

2.4 ID和类选择符

可以不用考虑文档的层次结构,只要为元素添加id和class属性

2.4.1 类属性

HTML元素的class属性

  • 类选择符
    .类名

  • 标签带类选择符

    • 把标签名和类选择符写在一起

    • p.classname {color: red;}
      
  • 多类选择符

    • .class1.class2 {font-size: 120%;}
      
    • 两个类名之间没有空格:只想选择同时具有这两个类名的元素,而不是“祖先/后代”关系

2.4.2 ID属性

#specialId {CSS样式声明}
  • ID可以用在页内导航链接中

2.4.3 什么时候用ID,什么时候用类

  • 什么时候用ID
    • ID在页面中唯一地标识一个元素,可以在CSS中方便地定位到这个元素及其子元素
  • 什么时候用类
    • 类是薇洛标识一组具有相同特征的元素

不要乱用类

  • 避免“类泛滥——标记中的麻疹”
  • 不要像使用ID一样,每个类都指定一个不同的类名,然后再为每个类编写规则
  • 继承和上下文选择符能让不同的标签共享样式,降低需要编写和维护的CSS量

2.5 属性选择符

2.5.1 属性名选择符

标签名[属性名]

选择任何带有属性名的标签名

2.5.2 属性值选择符

标签名[属性名="属性值"]

选中任何带有值为属性值的属性名的标签名

在HTML5中,属性值的引号可加,可不加

2.6 伪类

使用CSS在某些事件发生时,改变某些元素的样式

与类相似,但实际上并没有类会附加到标记中的标签上

  • UI(User Interface,用户界面)伪类
    • 在HTML元素处于某个状态时为该元素应用CSS样式
  • 结构化伪类
    • 在标记中存在某种结构时的关系时为相应元素应用CSS样式

::标识伪类

:::标识CSS3新增的伪元素

2.6.1 UI伪类

基于特定HTML元素的状态应用样式

  • 链接伪类

    • 针对链接的伪类

      链接状态伪类选择器
      Linka:link等待点击
      Visiteda:visited已点击过
      Hovera:hover鼠标悬停
      Activea:active正在点击(鼠标按下,还未释放)
  • :focus伪类

    • 表单中的文本字段在用户单击时会获得焦点,然后用户才能输入字符
  • :target伪类

    • 如果用户点击一个指向页面中其他元素的链接,则那个元素就是目标,可以用:target伪类选中它

2.6.2 结构化伪类

根据标记的结构应用样式

  • :first-child 和 :last-child

  • :nth-child

    e:nth-child(n)

    • n表示一个数值(也可以用odd或者even)
    • 最常用于提高表格的可读性

2.7 伪元素

文档中若有实无的元素

  • ::first-letter伪元素
    • 首字符
  • ::first-line伪元素
    • 可以选中文本段落的第一行
  • ::before 和 ::after伪元素
    • 可以在特定元素前面或后面添加特殊内容
    • 搜索引擎不会取得伪元素的信息(因为它在标记中并不存在),不要通过伪元素添加想让搜索引擎索引的重要内容

2.8 继承

CSS中很多属性可以继承,相当一部分和文本有关(颜色、字体、字号);很多属性不能继承,主要涉及元素盒子的定位和显示方式(边框、外边距、内边距)

2.9 层叠

一种样式在文档层次中逐层叠加的过程,目的是让浏览器面对某个标签特定属性值的多个来源,决定最终使用哪个值

层叠时CSS的核心机制

2.9.1 样式来源

  • 浏览器默认样式表
  • 用户样式表
  • 作者样式表
    • 链接样式、嵌入样式、行内样式

层叠顺序:

  • 浏览器默认样式表
  • 用户样式表
  • 作者链接样式表(按照它们链接到页面的先后顺序)
  • 作者嵌入样式
  • 作者行内样式

浏览器按照上述顺序依次检查每个来源的样式,并在有定义的情况下更新对每个标签属性值的设定

2.9.2 层叠规则

  • 找到应用给每个元素和属性的所有声明

    • 浏览器在加载页面时,会据此查到每一条CSS规则,表示出所有受到影响的HTML元素
  • 按照顺序和权重排序

    • 浏览器依次检查5个来源,并设定匹配的属性
    • 如果匹配的属性在下一个来源也有定义,则更新该属性的值
    • 声明也可以有权重!important
      • 会让其他设定不起作用
  • 按特指度排序

    • 特指度(specificity)表示一条规则有多名去
    • 类名选择符比普通的选择符具有更高的特指度
    • 一条规则的特指度由它的选择符中包含多少标签、类名和ID决定
    • ICE公式I - C - E
      1. 选择符中有一个ID,I+1
      2. 选择符中有一个类,C+1
      3. 选择符中有一个元素(标签)名,E+1
  • 顺序决定权重

    • 如果两条规则都英雄某元素的同一个属性,而且它们的特指度也相同,则位置最靠下(或后声明)的规则胜出

2.10 规则声明

一个声明包含两个部分:属性和值

CSS属性主要分为三类:文本中,数字值和颜色值

2.10.1 文本值

所有CSS属性都有文本值

2.10.2 数字值

用于描述元素的各种长度

  • 绝对值

    绝对值单位缩写
    英寸in
    厘米cm
    毫米mm
    pt
    皮卡pc
    像素px
  • 相对值

    相对值单位缩写
    Emem
    Exex
    百分比%
    • em和ex都是字体大小的单位,但在CSS中作为长度单位适用于任何元素
    • em:表示一种字体中字母M的宽度,具体大小取决于使用的字体
    • ex:等于给定字体中字母x的高度
    • 百分比:适合设定被包含元素的宽度,可以随着用户调整浏览器窗口大小而成比例地伸缩

2.10.3 颜色值

  • 颜色名
  • 十六进制颜色
    • #RRGGBB 或 #RGB
  • RGB颜色值
    • (R, G, B)
  • RGB百分比值
    • (R%, G%, B%)
  • HSL(色相,饱和度%,亮度%)
    • HSL(0, 0%, 0%)
    • 色相:一个事记的颜色,以色轮上的度数表示
    • 饱和度:设定有多少颜色
    • 亮度:设定颜色的明暗
  • Alpha通道、
    • 设置颜色的不透明度
    • RGB和HSL都支持Alpha通道
    • 可以是1(完全不透明),可以是0(完全透明),或者介于1和0之间的小数值

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

相关文章

基于深度学习的高精度野外烟雾检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度野外烟雾检测识别系统可用于日常生活中检测与定位野外烟雾目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的野外烟雾目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测…

Golang 中的 io 包详解(一):基础接口

Golang 中的 io 包提供了许多用于处理 I/O&#xff08;输入输出&#xff09; 操作的接口和函数&#xff0c;在许多标准库中都可以看到这些接口和函数的应用。本文首先介绍一下 io 包的几个基础接口。 io.Reader io.Reader 表示任何可以读取数据的对象&#xff0c;定义了基本的…

Ubuntu20.04 终端打开不了的问题排查

Ubuntu20.04 终端打开不了的问题排查 今天用virtualbox安装了ubuntu20.04 问题&#xff1a;右键打开终端&#xff0c;怎么也打开不了&#xff01; 点了也没反应&#xff0c;或者鼠标转小圈圈&#xff0c;然后也没有反应… 解决方法&#xff1a; 1、Ctrl Alt F6 先切换到终…

MDQ75-16-ASEMI电机专用模块MDQ75-16

编辑&#xff1a;ll MDQ75-16-ASEMI电机专用模块MDQ75-16 型号&#xff1a;MDQ75-16 品牌&#xff1a;ASEMI 封装&#xff1a;MDQ 正向电流&#xff1a;75A 反向电压&#xff1a;1600V 引脚数量&#xff1a;4 芯片个数&#xff1a;4 芯片尺寸&#xff1a;MIL 漏电流&…

bm30 bm31

在这里插入代码片 /** public class TreeNode {int val 0;TreeNode left null;TreeNode right null;public TreeNode(int val) {this.val val;}} */ public class Solution {public TreeNode headnull;public TreeNode prevnull;public TreeNode Convert(TreeNode pRootOf…

MDS55-16-ASEMI电机专用模块MDS55-16

编辑&#xff1a;ll MDS55-16-ASEMI电机专用模块MDS55-16 型号&#xff1a;MDS55-16 品牌&#xff1a;ASEMI 封装&#xff1a;MDS 正向电流&#xff1a;55A 反向电压&#xff1a;1600V 引脚数量&#xff1a;5 芯片个数&#xff1a;6 芯片尺寸&#xff1a;MIL 漏电流&…

\033[31m

在一个程序中看到这个&#xff1a; write(1, "\033[31m", 5); 向标准输出写入&#xff1a; "\033[31m" 。这是什么呢&#xff1f; 原来是设置输出的颜色。见wiki百科 FGREDecho "\033[31m" FGCYANecho "\033[36m" BGREDecho "…

MBR30200PT-ASEMI插件30A 200V肖特基MBR30200PT

编辑-Z MBR30200PT在TO-247封装里采用的2个芯片&#xff0c;其尺寸都是122MIL&#xff0c;是一款插件肖特基二极管。MBR30200PT的浪涌电流Ifsm为275A&#xff0c;漏电流(Ir)为0.05mA&#xff0c;其工作时耐温度范围为-65~175摄氏度。MBR30200PT采用金属硅芯片材质&#xff0c;…