CSS2学习笔记

news2024/11/24 11:49:43

一、CSS基础

1.CSS简介

在这里插入图片描述

  • CSS 的全称为:层叠样式表 ( Cascading Style Sheets ) 。
  • CSS 也是一种标记语言,用于给 HTML 结构设置样式,例如:文字大小、颜色、元素宽高等等。
  • 简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮。
  • 核心思想: HTML 搭建结构, CSS 添加样式,实现了:结构与样式的分离。

2.CSS的编写位置

2.1行内样式

  • 写在标签的 style 属性中,(又称:内联样式)。

  • 语法:

    <h1 style="color:red;font-size:60px;">欢迎来到尚硅谷学习</h1>
    
  • 注意点:

    • style 属性的值不能随便写,写要符合 CSS 语法规范,是 名:值; 的形式。
    • 行内样式表,只能控制当前标签的样式,对其他标签无效。
  • 存在的问题:书写繁琐、样式不能复用、并且没有体现出:结构与样式分离 的思想,不推荐大量使用,只有对当前元素添加简单样式时,才偶尔使用。

2.2内部样式

  • 写在 html 页面内部,将所有的 CSS 代码提取出来,单独放在 style标签中。

  • 语法:

    <style>
    	h1 {
    		color: red;
    		font-size: 40px;
    	}
    </style>
    
  • 注意点:

    • style 标签理论上可以放在 HTML 文档的任何地方,但一般都放在 head 标签中
    • 此种写法:样式可以复用、代码结构清晰。
  • 存在的问题:

    • 并没有实现:结构与样式完全分离
    • 多个 HTML 页面无法复用样式。

2.3外部样式

  • 写在单独的 .css 文件中,随后在 HTML 文件中引入使用。
  • 语法:
    • 新建一个扩展名为 .css 的样式文件,把所有 CSS 代码都放入此文件中。
      h1{
      	color: red;
      	font-size: 40px;
      }
      
    • 在 HTML 文件中引入 .css 文件。
      <link rel="stylesheet" href="./xxx.css">
      
  • 注意点:
    1. link 标签要写在 head 标签中。
    2. link 标签属性说明:
      • href :引入的文档来自于哪里。
      • rel :( relation :关系)说明引入的文档与当前文档之间的关系。
    3. 外部样式的优势:样式可以复用、结构清晰、可触发浏览器的缓存机制,提高访问速度,实现了结构与样式的完全分离。
    4. 实际开发中,几乎都使用外部样式,这是最推荐的使用方式

3.样式表的优先级

  • 优先级规则:行内样式 > 内部样式 = 外部样式
    • 内部样式、外部样式,这二者的优先级相同,且:后面的 会覆盖 前面的(简记:“后来
      者居上”)。
    • 同一个样式表中,优先级也和编写顺序有关,且:后面的 会覆盖 前面的(简记:“后来
      者居上”)。

在这里插入图片描述

4.CSS语法规范

CSS 语法规范由两部分构成:

  • 选择器:找到要添加样式的元素。

  • 声明块:设置具体的样式(声明块是由一个或多个声明组成的),声明的格式为: 属性名: 属性值;

    备注1:最后一个声明后的分号理论上能省略,但最好还是写上。
    备注2:选择器与声明块之间,属性名与属性值之间,均有一个空格,理论上能省略,但最好 还是写上。

在这里插入图片描述

  • 注释的写法:
/* 给h1元素添加样式 */
h1 {
	/* 设置文字颜色为红色 */
	color: red;
	/* 设置文字大小为40px */
	font-size: 40px
}

5.CSS代码风格

  • 展开风格 —— 开发时推荐,便于维护和调试。

    h1 {
    	color: red;
    	font-size: 40px;
    }
    
  • 紧凑风格 —— 项目上线时推荐,可减小文件体积。

    h1{color:red;font-size:40px;}
    
  • 备注:项目上线时,我们会通过工具将【展开风格】的代码,变成【紧凑风格】,这样可以减小文件体积,节约网络流量,同时也能让用户打开网页时速度更快。

二、CSS选择器

1. CSS基本选择器

1.1 通配选择器

  • 作用:可以选中所有的 HTML 元素。

  • 语法:

    * {
    	属性名: 属性值;
    }
    
  • 举例:

    /* 选中所有元素 */
    * {
    	color: orange;
    	font-size: 40px;
    }
    
  • 备注:目前来看通配选择器貌似有点鸡肋,但后面清除样式时,会对我们有很大帮助,后面会详细讲。

1.2 元素选择器

  • 作用:为页面中 某种元素 统一设置样式

  • 语法:

    标签名 {
    	属性名: 属性值;
    }
    
  • 举例:

    /* 选中所有h1元素 */
    h1 {
    	color: orange;
    	font-size: 40px;
    }
    /* 选中所有p元素 */
    p {
    	color: blue;
    	font-size: 60px;
    }
    
  • 备注:元素选择器无法实现差异化设置,例如上面的代码中,所有的 p 元素效果都一样。

1.3 类选择器

  • 作用:根据元素的 class 值,来选中某些元素。

  • class 翻译过来有:种类、类别的含义,所以 class 值,又称:类名。

  • 语法:

    .类名 {
    	属性名: 属性值;
    }
    
  • 举例:

    /* 选中所有class值为speak的元素 */
    .speak {
    	color: red;
    }
    /* 选中所有class值为answer的元素 */
    .answer {
    	color: blue;
    }
    
  • 注意点:

    1. 元素的 class 属性值不带 . ,但 CSS 的类选择器要带 . 。
    2. class 值,是我们自定义的,按照标准:不要使用纯数字、不要使用中文、尽量使用
      英文与数字的组合,若由多个单词组成,使用 - 做连接,例如: left-menu ,且命名
      要有意义,做到 “见名知意”。
    3. 一个元素不能写多个 class 属性,下面是 错误示例:
      <!-- 该写法错误,元素的属性不能重复,后写的会失效 -->
      <h1 class="speak" class="big">你好啊</h1>
      
    4. 一个元素的 class 属性,能写多个值,要用空格隔开,例如:
      <!-- 该写法正确,class属性,能写多个值 -->
      <h1 class="speak big">你好啊</h1>
      

1.4 ID选择器

  • 作用:根据元素的 id 属性值,来精准的选中某个元素。

  • 语法:

    #id值 {
    	属性名: 属性值;
    }
    
  • 举例:

/* 选中id值为earthy的那个元素 */
#earthy {
	color: red;
	font-size: 60px;
}
  • 注意:
    • id 属性值:尽量由字母、数字、下划线( _ )、短杠( - )组成,最好以字母开头、不要包含空格、区分大小写。
    • 一个元素只能拥有一个 id 属性,多个元素的 id 属性值不能相同。
    • 一个元素可以同时拥有 id 和 class 属性

1.5 基本选择器总结

在这里插入图片描述

2. CSS复合选择器

2.1 交集选择器

  • 作用:选中同时符合多个条件的元素。

  • 语法:选择器1选择器2选择器3…选择器n {}

  • 举例:

    /* 选中:类名为beauty的p元素,为此种写法用的非常多!!!! */
    p.beauty {
    	color: blue;
    }
    /* 选中:类名包含rich和beauty的元素 */
    .rich.beauty {
    	color: green;
    }
    
  • 注意:

    1. 有标签名,标签名必须写在前面。
    2. id 选择器、通配选择器,理论上可以作为交集的条件,但实际应用中几乎不用 —— 因为没
      有意义。
    3. 交集选择器中不可能出现两个元素选择器,因为一个元素,不可能即是 p 元素又是 span 元
      素。
    4. 用的最多的交集选择器是:元素选择器配合类名选择器,例如: p.beauty 。

2.2 并集选择器

  • 作用:选中多个选择器对应的元素,又称:分组选择器。

  • 语法:选择器1, 选择器2, 选择器3, … 选择器n {}

  • 多个选择器通过 , 连接,此处 , 的含义就是:或。

    /* 选中id为peiqi,或类名为rich,或类名为beauty的元素 */
    #peiqi,
    .rich,
    .beauty {
    	font-size: 40px;
    	background-color: skyblue;
    	width: 200px;
    }
    
  • 注意:

    1. 并集选择器,我们一般竖着写。
    2. 任何形式的选择器,都可以作为并集选择器的一部分 。
    3. 并集选择器,通常用于集体声明,可以缩小样式表体积。

2.3 HTML元素间的关系

  • 分为:①父元素、②子元素、③祖先元素、④后代元素、⑤兄弟元素。
  1. 父元素:直接包裹某个元素的元素,就是该元素的父元素。
    在这里插入图片描述

  2. 子元素:被父元素直接包含的元素(简记:儿子元素)。

    在这里插入图片描述

  3. 祖先元素:父亲的父亲…,一直往外找,都是祖先。
    在这里插入图片描述

  4. 后代元素:儿子的儿子…,一直往里找,都是后代。
    在这里插入图片描述

  5. 兄弟元素:具有相同父元素的元素,互为兄弟元素。
    在这里插入图片描述

2.4 后代选择器

  • 作用:选中指定元素中,符合要求的后代元素。

  • 语法:选择器1 选择器2 选择器3 … 选择器n {} (先写祖先,再写后代)

  • 举例:

    /* 选中ul中的所有li */
    ul li {
    	color: red;
    }
    /* 选中ul中所有li中的a */
    ul li a {
    	color: orange;
    }
    /* 选中类名为subject元素中的所有li */
    .subject li {
    	color: blue;
    }
    /* 选中类名为subject元素中的所有类名为front-end的li */
    .subject li.front-end {
    	color: blue;
    }
    
  • 注意:

    1. 后代选择器,最终选择的是后代,不选中祖先。
    2. 儿子、孙子、重孙子,都算是后代。
    3. 结构一定要符合之前讲的 HTML 嵌套要求,例如:不能 p 中写 h1 ~ h6 。

2.5 子代选择器

  • 作用:选中指定元素中,符合要求的子元素(儿子元素)。(先写父,再写子)

  • 语法:选择器1 > 选择器2 > 选择器3 > … 选择器n {}

  • 举例:

    /* div中的子代a元素 */
    div>a {
    	color: red;
    }
    /* 类名为persons的元素中的子代a元素 */
    .persons>a{
    	color: red;
    }
    
  • 注意:

    1. 子代选择器,最终选择的是子代,不是父级。
    2. 子、孙子、重孙子、重重孙子 … 统称后代!,子就是指儿子。

2.6 兄弟选择器

  • 相邻兄弟选择器:
    • 作用:选中指定元素后,符合条件的相邻兄弟元素。
    • 语法: 选择器1+选择器2 {} 。
    • 示例:
      /* 选中div后相邻的兄弟p元素 */
      div+p {
      	color:red;
      }
      
  • 通用兄弟选择器:
    • 作用:选中指定元素后,符合条件的所有兄弟元素。(简记:睡在我下铺的所有兄弟)
    • 语法: 选择器1~选择器2 {} 。
    • 实例:
      /* 选中div后的所有的兄弟p元素 */
      div~p {
      	color:red;
      }
      

2.7 属性选择器

  • 作用:选中属性值符合一定要求的元素。

  • 语法:

    1. [属性名] 选中具有某个属性的元素。
    2. [属性名="值"] 选中包含某个属性,且属性值等于指定值的元素。
    3. [属性名^="值"] 选中包含某个属性,且属性值以指定的值开头的元素。
    4. [属性名$="值"] 选中包含某个属性,且属性值以指定的值结尾的元素。
    5. [属性名*=“值”] 选择包含某个属性,属性值包含指定值的元素。
  • 举例:

    /* 选中具有title属性的元素 */
    div[title]{color:red;}
    /* 选中title属性值为atguigu的元素 */
    div[title="atguigu"]{color:red;}
    /* 选中title属性值以a开头的元素 */
    div[title^="a"]{color:red;}
    /* 选中title属性值以u结尾的元素 */
    div[title$="u"]{color:red;}
    /* 选中title属性值包含g的元素 */
    div[title*="g"]{color:red;}
    

2.8 伪类选择器

  • 作用:选中特殊状态的元素。

  • 一、动态伪类:

    1. :link 超链接未被访问的状态。

    2. :visited 超链接访问过的状态。

    3. :hover 鼠标悬停在元素上的状态。

    4. :active 元素激活的状态。

      什么是激活?—— 按下鼠标不松开。
      注意点:遵循 LVHA 的顺序,即: link 、 visited 、 hover 、 active 。

    5. :focus 获取焦点的元素。

      表单类元素才能使用 :focus 伪类。
      当用户:点击元素、触摸元素、或通过键盘的 “ tab ” 键等方式,选择元素时,就是获得焦点。

  • 二、结构伪类

    • 常用的

      1. :first-child 所有兄弟元素中的第一个。

      2. :last-child 所有兄弟元素中的最后一个。

      3. :nth-child(n) 所有兄弟元素中的第 n 个。

      4. :first-of-type 所有同类型兄弟元素中的第一个。

      5. :last-of-type 所有同类型兄弟元素中的最后一个。

      6. :nth-of-type(n) 所有同类型兄弟元素中的 第n个 。

        关于 n 的值:

        1. 0 或 不写 :什么都选不中 —— 几乎不用。
        2. n :选中所有子元素 —— 几乎不用。
        3. 1~正无穷的整数 :选中对应序号的子元素。
        4. 2n 或 even :选中序号为偶数的子元素。
        5. 2n+1 或 odd :选中序号为奇数的子元素。
        6. -n+3 :选中的是前 3 个。
    • 了解即可:

      1. :nth-last-child(n) 所有兄弟元素中的倒数第 n 个。
      2. :nth-last-of-type(n) 所有同类型兄弟元素中的 倒数第n个 。
      3. :only-child 选择没有兄弟的元素(独生子女)。
      4. :only-of-type 选择没有同类型兄弟的元素。
      5. :root 根元素。
      6. :empty 内容为空元素(空格也算内容)。
  • 三、否定伪类:
    :not(选择器) 排除满足括号中条件的元素。

  • 四、UI伪类:

    1. :checked 被选中的复选框或单选按钮。
    2. :enable 可用的表单元素(没有 disabled 属性)。
    3. :disabled 不可用的表单元素(有 disabled 属性)
  • 五、目标伪类(了解)
    :target 选中锚点指向的元素。

  • 六、语言伪类(了解)
    :lang() 根据指定的语言选择元素(本质是看 lang 属性的值)。

2.9 伪元素选择器

  • 作用:选中元素中的一些特殊位置。
  • 常用伪元素:
    • ::first-letter 选中元素中的第一个文字。
    • ::first-line 选中元素中的第一行文字。
    • ::selection 选中被鼠标选中的内容。
    • ::placeholder 选中输入框的提示文字。
    • ::before 在元素最开始的位置,创建一个子元素(必须用 content 属性指定内容)。
    • ::after 在元素最后的位置,创建一个子元素(必须用 content 属性指定内容)。

3. 选择器的优先级(权重)

通过不同的选择器,选中相同的元素 ,并且为相同的样式名设置不同的值时,就发生了样式的冲突。
到底应用哪个样式,此时就需要看优先级了

  • 简单描述:行内样式 > ID选择器 > 类选择器 > 元素选择器 > 通配选择器。
  • 详细描述
    1. 计算方式:每个选择器,都可计算出一组权重,格式为: (a,b,c)
      • a : ID 选择器的个数。
      • b : 类、伪类、属性 选择器的个数。
      • c : 元素、伪元素 选择器的个数。
      • 在这里插入图片描述
    2. 比较规则:按照从左到右的顺序,依次比较大小,当前位胜出后,后面的不再对比,例如:
      在这里插入图片描述
    3. 特殊规则:
      1. 行内样式权重大于所有选择器。
      2. !important 的权重,大于行内样式,大于所有选择器,权重最高!

三、CSS三大特性

1. 层叠性

  • 概念:如果发生了样式冲突,那就会根据一定的规则(选择器优先级),进行样式的层叠(覆盖)。
  • 什么是样式冲突? ——— 元素的同一个样式名,被设置了不同的值,这就是冲突。

2. 继承性

  • 概念:元素会自动拥有其父元素、或其祖先元素上所设置的某些样式。

  • 规则:优先继承离得近的。

  • 常见的可继承属性:

    text-?? , font-?? , line-?? 、 color ......
    

3. 优先级

  • 简单聊: !important > 行内样式 > ID选择器 > 类选择器 > 元素选择器 > * > 继承的样式。
  • 详细聊:需要计算权重。

四、CSS常用属性

1. 像素的概念

  • 概念:我们的电脑屏幕是,是由一个一个“小点”组成的,每个“小点”,就是一个像素(px)。
  • 规律:像素点越小,呈现的内容就越清晰、越细腻。
  • 在这里插入图片描述

2. 颜色的表示

2.1 表示方式一:颜色名

  • 编写方式:直接使用颜色对应的英文单词,编写比较简单,例如:

    1. 红色:red
    2. 绿色:green
    3. 蓝色:blue
    4. 紫色:purple
    5. 橙色:orange
    6. 灰色:gray
    1. 颜色名这种方式,表达的颜色比较单一,所以用的并不多。
    2. 具体颜色名参考 MDN 官方文档

2.2 表示方式二:rgb 或 rgba

  • 编写方式:使用 红、黄、蓝 这三种光的三原色进行组合。

    • r 表示 红色
    • g 表示 绿色
    • b 表示 蓝色
    • a 表示 透明度
  • 举例:

    /* 使用 0~255 之间的数字表示一种颜色 */
    color: rgb(255, 0, 0);/* 红色 */
    color: rgb(0, 255, 0);/* 绿色 */
    color: rgb(0, 0, 255);/* 蓝色 */
    color: rgb(0, 0, 0);/* 黑色 */
    color: rgb(255, 255, 255);/* 白色 */
    /* 混合出任意一种颜色 */
    color:rgb(138, 43, 226) /* 紫罗兰色 */
    color:rgba(255, 0, 0, 0.5);/* 半透明的红色 */
    /* 也可以使用百分比表示一种颜色(用的少) */
    color: rgb(100%, 0%, 0%);/* 红色 */
    color: rgba(100%, 0%, 0%,50%);/* 半透明的红色 */
    
  • 小规律:

    1. 若三种颜色值相同,呈现的是灰色,值越大,灰色越浅。
    2. rgb(0, 0, 0) 是黑色, rgb(255, 255,255) 是白色。
    3. 对于 rbga 来说,前三位的 rgb 形式要保持一致,要么都是 0~255 的数字,要么都是
      百分比 。

2.3 表示方式三:HEX 或HEXA

  • HEX 的原理同与 rgb 一样,依然是通过:红、绿、蓝色 进行组合,只不过要用 6位(分成3组) 来表达

  • 格式为:# rrggbb

  • 每一位数字的取值范围是: 0 ~ f ,即:( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f )

  • 所以每一种光的最小值是: 00 ,最大值是: ff

    color: #ff0000;/* 红色 */
    color: #00ff00;/* 绿色 */
    color: #0000ff;/* 蓝色 */
    color: #000000;/* 黑色 */
    color: #ffffff;/* 白色 */
    /* 如果每种颜色的两位都是相同的,就可以简写*/
    color: #ff9988;/* 可简为:#f98 */
    /* 但要注意前三位简写了,那么透明度就也要简写 */
    color: #ff998866;/* 可简为:#f986 */
    

2.4 表示方式四:HSL 或 HSLA

  • HSL 是通过:色相、饱和度、亮度,来表示一个颜色的,格式为: hsl(色相,饱和度,亮度)
    • 色相:取值范围是 0~360 度,具体度数对应的颜色如下图:
    • 在这里插入图片描述
    • 饱和度:取值范围是 0%~100% 。(向色相中对应颜色中添加灰色, 0% 全灰, 100% 没有灰)
    • 亮度:取值范围是 0%~100% 。( 0% 亮度没了,所以就是黑色。 100% 亮度太强,所以就是白色了)
  • HSLA 其实就是在 HSL 的基础上,添加了透明度。

3. CSS字体属性

3.1 字体大小

  • 属性名: font-size

  • 作用:控制字体的大小。

  • 语法:

    div {
    	font-size: 40px;
    }
    
  • 注意点:

    1. Chrome 浏览器支持的最小文字为 12px ,默认的文字大小为 16px ,并且 0px 会自动
      消失。
    2. 不同浏览器默认的字体大小可能不一致,所以最好给一个明确的值,不要用默认大小。
    3. 通常以给 body 设置 font-size 属性,这样 body 中的其他元素就都可以继承了。
  • 借助控制台看样式:
    在这里插入图片描述

3.2 字体族

  • 属性名: font-family

  • 作用:控制字体类型。

  • 语法:

    div {
    	font-family: "STCaiyun","Microsoft YaHei",sans-serif
    }
    
  • 注意:

    1. 使用字体的英文名字兼容性会更好,具体的英文名可以自行查询,或在电脑的设置里去寻找。
    2. 如果字体名包含空格,必须使用引号包裹起来。
    3. 可以设置多个字体,按照从左到右的顺序逐个查找,找到就用,没有找到就使用后面的,且通常在最后写上 serif (衬线字体)或 sans-serif (非衬线字体)。
    4. windows 系统中,默认的字体就是微软雅黑。

3.3 字体风格

  • 属性名: font-style

  • 作用:控制字体是否为斜体。

  • 常用值:

    1. normal :正常(默认值)
    2. italic :斜体(使用字体自带的斜体效果,推荐使用)
    3. oblique :斜体(强制倾斜产生的斜体效果)
  • 语法:

    div {
    	font-style: italic;
    }
    

3.4 字体粗细

  • 属性名: font-weight

  • 作用:控制字体的粗细。

  • 常用值:

    • 关键词
      1. lighter :细
      2. normal : 正常
      3. bold :粗
      4. bolder :很粗 (多数字体不支持)
    • 数值:
      1. 100~1000 且无单位,数值越大,字体越粗 (或一样粗,具体得看字体设计时的精确程度)。
      2. 100~300 等同于 lighter , 400~500 等同于 normal , 600 及以上等同于bold 。
  • 语法:

    div {
    	font-weight: bold;
    }
    div {
    	font-weight: 600;
    }
    

3.5 字体复合写法

  • 属性名: font ,可以把上述字体样式合并成一个属性。

  • 作用:将上述所有字体相关的属性复合在一起编写。

  • 编写规则:

    1. 字体大小、字体族必须都写上。
    2. 字体族必须是最后一位、字体大小必须是倒数第二位。
    3. 各个属性间用空格隔开。
  • 实际开发中更推荐复合写法,但这也不是绝对的,比如只想设置字体大小,那就直接用 font-size 属性。

4. CSS文本属性

4.1 文本颜色

  • 属性名: color
  • 作用:控制文字的颜色。
  • 可选值:
    1. 颜色名
    2. rgb 或 rgba
    3. HEX 或 HEXA (十六进制)
    4. HSL 或 HSLA
    5. 开发中常用的是: rgb/rgba 或 HEX/HEXA (十六进制)

4.2 文本间距

  • 字母间距: letter-spacing
  • 单词间距: word-spacing (通过空格识别词)
  • 属性值为像素( px ),正值让间距增大,负值让间距缩小。

4.3 文本修饰

  • 属性名: text-decoration

  • 作用:控制文本的各种装饰线。

  • 可选值:

    1. none : 无装饰线(常用)
    2. underline :下划线(常用)
    3. overline : 上划线
    4. line-through : 删除线
  • 可搭配如下值使用:

    1. dotted :虚线
    2. wavy :波浪线
    3. 也可以指定颜色
  • 举例:

    a {
    	text-decoration: none;
    }
    

4.4 文本缩进

  • 属性名: text-indent 。

  • 作用:控制文本首字母的缩进。

  • 属性值: css 中的长度单位,例如: px

  • 举例:

    div {
    	text-indent:40px;
    }
    

4.5 文本对齐_水平

  • 属性名: text-align 。

  • 作用:控制文本的水平对齐方式。

  • 常用值:

    1. left :左对齐(默认值)
    2. right :右对齐
    3. center :居中对齐
  • 举例

    div {
    	text-align: center;
    }
    

4.6 细说 font-size

  • 由于字体设计原因,文字最终呈现的大小,并不一定与 font-size 的值一致,可能大,也可能小。
  • 例如: font-size 设为 40px ,最终呈现的文字,可能比 40px 大,也可能比 40px小。
  • 通常情况下,文字相对字体设计框,并不是垂直居中的,通常都靠下 一些。

4.7 行高

  • 属性名: line-height

  • 作用:控制一行文字的高度。

  • 可选值:

    1. normal :由浏览器根据文字大小决定的一个默认值。
    2. 像素( px )。
    3. 数字:参考自身 font-size 的倍数(很常用)。
    4. 百分比:参考自身 font-size 的百分比。
  • 备注:由于字体设计原因,文字在一行中,并不是绝对垂直居中,若一行中都是文字,不会太影响观感。

  • 举例:

    div {
    	line-height: 60px;
    	line-height: 1.5;
    	line-height: 150%;
    }
    
  • 行高注意事项:

    1. line-height 过小会怎样?—— 文字产生重叠,且最小值是 0 ,不能为负数。
    2. line-height 是可以继承的,且为了能更好的呈现文字,最好写数值。
    3. line-height 和 height 是什么关系?
      • 设置了 height ,那么高度就是 height 的值。
      • 不设置 height 的时候,会根据 line-height 计算高度。
  • 应用场景:

    1. 对于多行文字:控制行与行之间的距离。
    2. 对于单行文字:让 height 等于 line-height ,可以实现文字垂直居中。
  • 备注:由于字体设计原因,靠上述办法实现的居中,并不是绝对的垂直居中,但如果一行中都是文字,不会太影响观感。

4.8 文本对齐_垂直

  1. 顶部:无需任何属性,在垂直方向上,默认就是顶部对齐。
  2. 居中:对于单行文字,让 height = line-height 即可。
  3. 底部:对于单行文字,目前一个临时的方式:
    让 line-height = ( height × 2 ) - font-size - x 。
    备注: x 是根据字体族,动态决定的一个值。

4.9 vertical-align

在这里插入图片描述

5. CSS列表属性

在这里插入图片描述

6. CSS表格属性

1. 边框相关属性(其他元素也能用):

在这里插入图片描述

2. 表格独有属性(只有 table 标签才能使用):

在这里插入图片描述

7. CSS背景属性

在这里插入图片描述

8. CSS鼠标属性

在这里插入图片描述

五、CSS盒子模型

1. CSS 长度单位

在这里插入图片描述

2. 元素的显示模式

块元素(block)

在这里插入图片描述

行内元素(inline)

在这里插入图片描述

行内块元素(inline-block)

在这里插入图片描述

3. 总结各元素的显示模式

在这里插入图片描述

4. 修改元素的显示模式

通过 CSS 中的 display 属性可以修改元素的默认显示模式,常用值如下:
在这里插入图片描述

5. 盒子模型的组成

在这里插入图片描述
在这里插入图片描述

6. 盒子内容区(content)

在这里插入图片描述

7. 关于默认宽度

在这里插入图片描述

8. 盒子内边距(padding)

在这里插入图片描述

9. 盒子边框(border)

在这里插入图片描述

10. 盒子外边距_margin

在这里插入图片描述

10.1 margin 注意事项

在这里插入图片描述

10.2 margin 塌陷问题

在这里插入图片描述

10.3 margin 合并问题

在这里插入图片描述

11. 处理内容溢出

在这里插入图片描述

12. 隐藏元素的方式

在这里插入图片描述

13. 样式的继承

在这里插入图片描述

14.默认样式

在这里插入图片描述

15. 布局小技巧

在这里插入图片描述

16. 元素之间的空白问题

在这里插入图片描述

17. 行内块的幽灵空白问题

在这里插入图片描述

六、浮动

1. 浮动的简介

在这里插入图片描述

2. 元素浮动后的特点

在这里插入图片描述

3. 浮动小练习

4. 解决浮动产生的影响

4.1 元素浮动后会有哪些影响

在这里插入图片描述

4.2 解决浮动产生的影响(清除浮动)

在这里插入图片描述

5. 浮动布局小练习

在这里插入图片描述
在这里插入图片描述

6.浮动相关属性

在这里插入图片描述

七、定位

1. 相对定位

1.1 如何设置相对定位?

  • 给元素设置 position:relative 即可实现相对定位。
  • 可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

1.2 相对定位的参考点在哪里?

相对自己原来的位置

1.3 相对定位的特点:

  1. 不会脱离文档流,元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。
  2. 定位元素的显示层级比普通元素高,无论什么定位,显示层级都是一样的。
    • 默认规则是:
    • 定位的元素会盖在普通元素之上。
    • 都发生定位的两个元素,后写的元素会盖在先写的元素之上。
  3. left 不能和 right 一起设置, top 和 bottom 不能一起设置。
  4. 相对定位的元素,也能继续浮动,但不推荐这样做。
  5. 相对行为的元素,也能通过 margin 调整位置,但不推荐这样做。

注意:绝大多数情况下,相对定位,会与绝对定位配合使用。

2. 绝对定位

2.1 如何设置绝对定位?

在这里插入图片描述

2.2 绝对定位的参考点在哪里?

在这里插入图片描述

2.3 绝对定位元素的特点:

在这里插入图片描述

3. 固定定位

3.1 如何设置为固定定位?

在这里插入图片描述

3.2 固定定位的参考点在哪里?

在这里插入图片描述

3.3 固定定位元素的特点

  1. 脱离文档流,会对后面的兄弟元素、父元素有影响。
  2. left 不能和 right 一起设置, top 和 bottom 不能一起设置。
  3. 固定定位和浮动不能同时设置,如果同时设置,浮动失效,以固定定位为主。
  4. 固定定位的元素,也能通过 margin 调整位置,但不推荐这样做。
  5. 无论是什么元素(行内、行内块、块级)设置为固定定位之后,都变成了定位元素。

4. 粘性定位

在这里插入图片描述

5. 定位层级

在这里插入图片描述

6. 定位的特殊应用

在这里插入图片描述
在这里插入图片描述

八、布局

1. 版心

在这里插入图片描述

2. 常用布局名词

在这里插入图片描述

3. 重置默认样式

在这里插入图片描述

方案一:使用全局选择器

在这里插入图片描述

方案二:reset.css

在这里插入图片描述

方案三:Normalize.css

在这里插入图片描述

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

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

相关文章

【产品经理】成熟产品狗必备特质

在自己从事产品经理这个职位的3年间&#xff0c;看过不少产品经理成长相关的文章书籍&#xff0c;涵盖了挺多经验、素质、能力&#xff0c;平时工作中也会注意学以致用&#xff0c;所以每每回顾此事&#xff0c;都觉得这对自己的工作、个人成长起到了莫大的推进作用。 1、外部合…

Docker是什么、有什么用的介绍

文章目录 1.背景2. Docker 是什么&#xff1f;3.Docker 容器与虚拟机的区别4.Docker 的 6 大优势1、更高效地利用系统资源2、更快的启动时间3、一致的运行环境4、持续交付和部署5、更轻松迁移6、更轻松的维护和拓展 小结 知识搬运工&#xff1a; 原文出自&#xff1a; 原文链接…

网络渗透技术如何自学,自学黑客要多久

学习网络渗透技术是一件靠兴趣驱动的事情&#xff0c;只有强烈热爱一件事才能持之以恒的去做&#xff0c;对于那些三分钟热度的人来说还是劝你放弃吧&#xff0c;因为网络渗透技术自学需要很多方面的知识&#xff0c;没耐心是无法学会的&#xff0c;当然除了有想要学习的决心之…

企业研发提效抓手,揭秘云原生的效能“奇点”

导语 | 在云原生时代&#xff0c;研发效能治理面临新的挑战&#xff0c;同时也获得了新的视角。如何更好地利用云原生技术的优势&#xff0c;从而在根本上提升研发效能&#xff0c;已成为许多企业数字化转型过程中的“必答题”。今天&#xff0c;我们特别邀请了 Thoughtworks 创…

Git操作方法

目录 Git是什么 Git特点 Git作用 Git原理 集中式 分布式 Git安装 修改语言 Git操作 1.初始化Git仓库 2.提交工作区的内容到版本库 3.查看版本记录 4.版本回退 5.版本前进 Git 命令 通用操作 工作状态 版本回退 版本前进 远程仓 1.GitHub 2.GitLab 3.码云…

Amp it up翻译(持续更新)

最近闲来无事&#xff0c;看到了阮一峰在推荐这本书&#xff0c;无奈是英文的&#xff0c;但是机器翻译过来又看不懂。反正自己看的时候也要翻译。于是就自己看的时候&#xff0c;翻译完&#xff0c;理解完顺便写上去&#xff0c;给懒的同学看一下。 书的目录 书的目录太长了&…

C语言---自定义类型:结构体,枚举,联合

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;凡人修C传 &#x1f4ac;总结&#xff1a;希望你看完之后&…

FANUC机器人PROFIBUS DP通信配置方法

FANUC机器人PROFIBUS DP通信配置方法 1. 前提条件: 机器人Profibus功能确认:确认机器人是否加装了Profibus功能。按下示教器MENU—Setup,可查看是否已安装所需的软件,如下图所示,说明已安装profibus功能。 西门子PLC一侧需要安装对应的GSD文件,可从以下链接获取: FANU…

JDBC Utils 详解(通俗易懂)

目录 一、前言 二、JDBCUtils说明 1.背景及起因 : 2.示意图 : 3.JDBCUtils类的定义 三、JDBCUtils应用 1.DML的应用 : 2.DQL的应用 : 四、总结 一、前言 第三节内容&#xff0c;up主要和大家分享一下JDBC Utils方面的内容。注意事项——①代码中的注释也很重要&#x…

暴力递归到动态规划(三)

⭐️前言⭐️ 本篇文章是从暴力递归到动态规划的第三章。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及…

chatgpt赋能python:Python快速创建列表

Python快速创建列表 在Python编程中&#xff0c;列表是一种非常常见的数据类型&#xff0c;它可以容纳多个值。创建列表有多种方式&#xff0c;但是在不同场景下&#xff0c;我们需要使用不同的方法来创建一个高效的列表。本文主要介绍如何快速创建列表的不同方法。我们将深入…

K-verse 合作伙伴访谈|与 Studio Dragon 一起进入韩剧元宇宙世界

穿越时空的韩剧元宇宙。 Studio Dragon 是全球排名第一的生活创作者 CJ ENM 的子公司&#xff0c;是引领韩剧的韩国代表性戏剧工作室&#xff0c;一个以无限故事内容让世界着迷的优质故事讲述者。 通过与 The Sandbox 的合作&#xff0c;我们将提供一种全新体验&#xff0c;让用…

openGauss5.0企业版使用指南之系统架构

文章目录 1. 产品定位2. 3.x版本和5.x版本比对3. openGauss 5.0版本架构4. openGauss 5.0 特点 背景&#xff1a;今年3月openGauss 5.0发布&#xff0c;升级了资源池化内核能力和DataKit数据全生命周期管理工具&#xff0c;整体在性能、安全性与易用性方面均有大幅提升。本次大…

vue-admin-template_home增加全屏开关

1. 安装 npm install screenfull --save 这个指令安装最新版本 npm install screenfull3 VUE2.x的可以指定对应的版本&#xff0c;这样是安装最新的3.x的版本 2. 导入svg文件 在src\icons\svg文件夹下&#xff0c;导入exit-fullscreen.svg和fullscreen.svg, exit-fullsc…

Git仓库相关操作

目录 Git作用 集中式 分布式 Git操作Git区域概念 Git命令 远程仓库 新建项目 新建仓库 克隆项目 推送项目 拉取项目 Git作用 作用&#xff1a;版本控制多人协作 集中式 典型代表&#xff1a;SVN 特点&#xff1a;所有的版本库都存在中央服务器&#xff0c;本地备份…

线性代数3:矩阵

目录 矩阵研究的是什么呢&#xff1f; 逆阵 什么叫做逆阵&#xff1f; 例题1&#xff1a; 例题2&#xff1a; 逆阵的存在性 定理1&#xff1a; 定理2&#xff1a; 定理3&#xff1a; 定理4&#xff1a; 拉普拉茨方程 方阵可以的条件 例题3&#xff1a; Note1&#xff…

Hive 巡检工具-对表数据量、主键重复数量以及每个字段标签的空值检测

目录 背景 巡检工具 数据准备 1、准备一张配置信息表&#xff0c;该表保存需要巡检的数据信息&#xff08;规则code不可重复&#xff09; 2、pyspark代码编写 结果表数据展示 规则自动检测并自增 数据准备 背景 该需求是利用pyspark对部分重点产出表进行数据质量监控。主…

如何使用二三层仪表模拟无状态的DDOS攻击测试

什么是DDOS攻击 分布式拒绝服务攻击(Distributed Denial of Service&#xff0c;简称DDoS)是指通过大规模互联网流量淹没目标服务器或其周边基础设施&#xff0c;以破坏目标服务器、服务或网络正常流量的恶意行为。 大量虚假的用户占用网络资源&#xff0c;把资源耗尽&#x…

PREP黄金沟通法则

PREP黄金沟通法则 掌握PREP黄金沟通四步法则&#xff0c;改善沟通困局&#xff0c;让交流更高效&#xff01; 模型介绍 Point: 结论先行让对方第一时间知道你想表达的观点。Reason: 摆出依据摆出你观点的依据&#xff0c;要做到客观公正、统一度量、表达准确、不出现歧义。Exa…

软件测试的案例分析 - 闰年4.2

这篇博客的目录 文章目的正文错误之一出错后怎么改正&#xff1f;正确而简明的算法 文章目的 显示不同的博客能获得多少博客质量分 &#xff08;这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 60 分。 希望在新的质量分系统中&#xff0c;获得 80 - 90 分左…