(一)CSS 简介与基础选择器

129 阅读13分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情

1. CSS 简介

1.1 HTML 的局限性

HTML 是网页的骨架,只关注内容的语义。 例如 < h1 > 表示大标题,< p > 表示段落。

早期的时候,HTML 只能做一些简单的样式,网页非常丑,而且使 HTML 代码臃肿。

1.2 CSS-网页的美容师

CSS 是 层叠样式表(Cascading Style Sheets)的简称。 也称为 CSS 样式表级联样式表

PS: CSS 竟是一门编程语言!!!

CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。

CSS 让我们的网页更加丰富多彩,布局更加灵活自如。
简单理解:CSS 可以美化 HTML,让 HTML 更漂亮,让页面布局更简单。

HTML 呈现结构,CSS 决定样式。让两者(结构与样式)相分离。


小结:

  1. HTML 主要做结构,显示元素内容
  2. CSS 美化HTML,布局网页
  3. CSS 最大价值:由 HTML 专注去做结构呈现,样式交给 CSS,即结构 (HTML)与样式(CSS)相分离

1.3 CSS 语法规范

CSS 规则由两个部分组成:选择器和一条或多条声明。

截图.png

  • 选择器是用于指定 CSS 样式的 HTML 标签,花括号内是对该对象设置的具体样式
  • 属性和属性值以 “key-value” 的形式出现
  • 属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等
  • 属性和属性值之间用英文 “:” 分开
  • 多个“key-value”之间用英文 “;” 进行区分

1.4 CSS 语法规范(了解)

  1. 样式格式书写

① 紧凑格式

h3 { color: deeppink;font-size: 20px;}

② 展开格式(推荐)

h3 { 
    color: pink; 
    font-size: 20px; 
}
  1. 样式大小写风格(推荐小写)
  2. 样式空格风格(推荐选择器与花括号中间要有空格)

小结:

  1. 键值对中冒号后有空格
  2. 一般小写
  3. 选择器与花括号中间要有空格

2. CSS 基础选择器

2.1 选择器的作用

选择器(选择符)就是根据不同需求把不同的标签选出来。 简单来说,就是 选择标签用的

截图.png

以上 CSS 做了两件事:

  1. 找到所有的 h1 标签。 选择器(选对人)
  2. 设置这些标签的样式。比如颜色为红色(做对事)

2.2 选择器分类

选择器分为 基础选择器复合选择器 两大类。

  • 基础选择器由单个选择器组成
  • 基础选择器包括:标签选择器、类选择器、id 选择器和通配符选择器

2.3 标签选择器

标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面某一类标签指定统一的 CSS 样式。

语法格式:

标签名 { 
    属性1: 属性值1; 
    属性2: 属性值2; 
    属性3: 属性值3; 
}

例子:

<style>     
    /* 标签选择器 : 写上标签名 */     
    p {         
        color: green;     
    } 
    div {         
        color: yellow;     
    }     
</style>

优点:标签选择器可以把某一标签全部选择出来,快速为同类型标签设置统一样式

缺点:不能设置差异化样式,只能选择全部当前标签

2.4 类选择器

如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。

语法格式:

.类名 { 
    属性1: 属性值1; 
    ... 
}

例子:

.red { 
    color: red; 
} 

<li class="red"> 红色 </li>

小结:

  1. 类选择器用 . 标识,紧跟类名
  2. 长名称或词组可以使用 - (中横线)来为选择器命名
  3. 不要使用纯数字、中文等命名,尽量使用英文字母来表示
  4. 命名要有意义

记忆口诀:样式点定义,结构类调用。一个或多个,开发最常用。

2.4.1 类选择器-多类名(了解)

我们可以给一个标签指定多个类名,从而达到更多的选择目的。 这些类名都可以选出这个标签(简单理解就是一个标签有多个名字)

1. 多类名使用方式

类名间用空格分开

<div class=""red font20">亚瑟</div>
  1. 在标签 class 属性中写多个类名
  2. 多个类名中间必须用空格分开
  3. 这个标签就可以分别具有这些类名的样式

2. 多类名开发中使用场景

  1. 可以把一些标签元素相同的样式(共同的部分)放到一个类里面
  2. 这些标签都可以调用这个公共的类,然后再调用自己独有的类
  3. 从而节省 CSS代码,统一修改也非常方便

小结:

  • 各个类名中间用空格隔开
  • 类选择器-多类名:简单理解:就是给某个标签添加了多个类,或者这个标签有多个名字
  • 这个标签就可以分别具有这些类名的样式
  • 从而节省 CSS代码,统一修改也非常方便
  • 多类名选择器在后期布局比较复杂的情况下,还是较多使用的

2.5 id 选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式

HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以用 # 来定义。

#id名 {
    属性1: 属性值1;
    ...
}

注意:id 属性只能在每个 HTML 文档中出现一次

口诀: 样式 # 定义,结构 id 调用,只能调用一次,别人切勿使用

id 选择器与类选择器的区别

  1. 类选择器可以被多个元素调用
  2. id 选择器只能允许一个标签调用(这只是规定罢了(只能使用一次))
  3. 类选择器使用的较多,id 选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用

2.6 通配符选择器

在 CSS 中,通配符选择器使用 “*” 定义,它表示选取页面中所有元素(标签)

语法

* {
    属性1: 属性值1;
    ...
}

小结:

  • 用 * 定义通配符选择器,选取页面中所有标签
  • 不需要调用,自动给所有标签
  • 特殊情况使用(初始化默认样式)
* {
    margin: 0;
    padding: 0;
}

2.7 基础选择器总结

基础选择器作用特点使用情况用法
标签选择器选中所有相同标签不能差异化选择较多p{color:red;}
类选择器选出一个或多个标签可以根据需求选择最多.nav {color: red;}
id 选择器一次只能选出一个标签一个 id 属性在页面中只能出现一次(约定)一般配合 js 使用#nav {color: red;}
通配符选择器选择所有标签元素选择的太多,有部分不需要特殊情况使用* {color: red; }
  • 每个选择器都有自己的使用场景,都要掌握
  • 如果是修改样式,类选择器是使用最多的

3. CSS 字体属性

CSS Fonts (字体)属性用于定义字体系列、大小、粗细、和文字样式(如斜体)

3.1 字体系列

CSS 使用 font-family 属性定义文本字体系列。 尽量使用默认字体,保证不同浏览器的兼容性。

body {
  font-family: "微软雅黑", Arial, Helvetica, sans-serif;
}
  • 各种字体之间必须使用英文状态下的逗号隔开
  • 一般情况下,如果有空格隔开的多个单词组成的字体,加引号
  • 尽量使用系统默认自带字体,保证在任何用户的浏览器中都能正确显示(尽量使用自带的,保证每个人都可以显示)
  • 最常见的几个字体:body {font-family: 'Microsoft YaHei',tahoma,arial,'Hiragino Sans GB'; }

3.2 字体大小

CSS 使用 font-size 属性定义字体大小

body {
  font-size: 16px;
}

/* 标题标签比较特殊,需要单独指定文字大小,否则单单指定 body 是无法变大小的... */ 
h2 {     
    font-size: 16px; 
}
  • px 大小是我们网页常用单位
  • 谷歌浏览器默认是 16px
  • 不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小
  • 可以给 body 指定整个页面文字大小(但是存在一些特殊的标签不起作用,如:h1~h6、a)

思考:body 标签为什么不用通配符选择器呢?
答:通配符选择的太多,不具有目的性。

3.3 字体粗细

CSS 使用 font-weight 属性设置字体粗细

p {
  font-weight: 700;
}

实际开发中,更常用数字来表示加粗或变细。400 为 normal,700 为 bold。

属性值描述
normal默认值(不加粗的)
bold定义粗体(加粗的)
100~90040 0等同于 normal,而 700 等同于 bold注意这些数字后面不跟单位

小结:

  • 学会让加粗标签(比如 h 和 strong 等) 不加粗,或者其他标签加粗
  • 实际开发时,我们更喜欢用数字表示粗细

3.4 文字样式

CSS 使用 font-style 属性设置文本风格

p { font-style: italic; }
属性值描述
normal正常显示
italic斜体

注意:平常很少给字体加斜体,而是给斜体标签(em,i)改为不倾斜字体

3.5 字体复合属性写法

将各种字体属性写在同一选择器下,节约代码

规则

严格遵守顺序,且 font-sieze 和 font-family 必须有。

body {
  /* 复合属性: 简写的方式  节约代码 */
  font: font-style font-weight font-size/line-hight font-family;
}

谐音记忆:写(斜)出(粗)好(号)的字体

小结:

  • 使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间以空格隔开
  • 不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用

3.6 字体属性总结

字体属性表示注意
font-size字体大小单位是 px
font-family字体样式(微软雅黑)按照团队约定来写
font-weight字体粗细400=normal,700=bold
font-style字体风格(斜体、正常)italic,normal,常用 normal
font属性连写顺序不能变,字体和字号属性必须有

4. CSS 文本属性

CSS Text(文本)属性定义文本外观,比如颜色、对齐、装饰、缩进、行间距等

4.1 文本颜色

color 属性定义文本颜色

div {
  color: red;
}
表示表示属性值
预定义的颜色值red, green,blue
十六进制#FFO000,#FF6600,#29D794
RGB代码rgb(255,0,0) 或 rgb(100%,0%6,0%)

实际开发中,最常用的是十六进制

4.2 对齐文本

text-align 属性用于设置元素内文本内容的对齐方式

text-align 是在样式表里的,align 是直接可以用在超文本里

div {
  text-align: center;
}
属性值解释
left左对齐(默认)
right右对齐
center居中对齐

4.3 装饰文本

text-decoration 属性规定添加到文本的修饰。可以给文本添加下划线、删除线、上划线等。

text-decoration: underline;

主要是用来去掉链接的下划线

属性值描述
none默认,无装饰(最常用)
underline下划线,a 标签自带(常用)
overline上划线。(几乎不用)
line-through删除线。(不常用)

给 a 标签的 text-decoration 属性设置为 none 即可取消

a {     
    /* 取消 a标签 默认的下划线 */     
    text-decoration: none;     
    color: blue; 
}

只需要了解如何删除下划线与如何添加下划线即可

4.4 文本缩进

text-indent 属性用来指定文本的第一行的缩进,通常是将段落的首行缩进

p {
  text-indet: 5px;
}

通过设置该属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值


em 相对一个元素的单位

p { 
    text-indet: 2em; 
}

em 是一个相对单位,就是当前元素(font-size) 1 个文字的大小,如果当前元素没有设置大小,则会按照父元素的 1 个文字大小

4.5 行间距

line-height  属性用于设置行间的距离(行高),行间距 = 文本高度 + 上间距 + 下间距

p { 
    line-height: 26px; 
}

截图.png

4.6 文本属性总结

属性表示注意
color文本颜色通常 十六进制 缩写
text-align文本对齐可以设定文字水平的对齐方式
text-indent文本缩进通常我们用于段落首行缩进
text-decoration文本装饰记住:添加下划线(underline)取消下划线(none)
line-height行高(行间距)控制行与行之间的距离

5. CSS 引用方式

按照 CSS 书写的位置不同(或者引入的方式),CSS 样式表可以分为三大类:

  1. 内部样式表(嵌入式)
  2. 行内样式表(行内式)
  3. 外部样式表(链接式)

5.1 内部样式表

内部样式表(内嵌样式表)是写到 HTML 页面内部的,是将所有的 CSS 代码抽取出来,单独放到一个 < style> 标签中

  • < style > 理论上可以放在 HTML 文档中任何一个地方,一般放在 < head > 标签中
  • 方便控制整个页面中的元素样式
  • 使用内部样式表设定 CSS,通常也被称为嵌入式引入

练习时使用,实际开发不用

5.2 行内样式表

行内样式表(内联样式表)是在元素标签内部的 < style > 属性中设定 CSS 样式,适合修改简单样式

<div style="color: red; font-size: 12px">行内样式表</div>
  • style 其实就是标签的属性
  • 在双引号中间,写法要符合 CSS 规范
  • 可以控制当前的标签设置样式
  • 书写繁琐,不推荐大量使用
  • 使用行内样式表设定 CSS,通常也被称为行内式引入

5.3 外部样式表

实际开发中都是外部样式表,适用于样式比较多的情况。 核心:样式单独写到 CSS 文件中,再将 CSS 文件引入到 HTML 页面中

引入格式

<link rel="stylesheet" href="css文件路径" />

rel 联系(relationship)

href 超文本引用(hypertext reference);超链接

属性作用
rel(relationship)定义当前文档与被链接文档之间的关系,在这里需要指定为 "stylesheet",表示被链接的文档是一个样式表文件
href(hypertext reference)定义所链接外部样式表文件的 URL,可以是相对路径,也可以是绝对路径
  • 使用外部样式表设定 CSS,通常也被称为外链式或链接式引入,这种方式是开发中常用的方式

5.4 CSS 引入方式总结

样式表优点缺点使用情况控制范围
内部样式表部分结构和样式相分离没有彻底分离较多控制一个页面
行内样式表书写方便,权重高结构样式混写较少控制一个标签
外部样式表完全实现结构和样式相分离需要引入最多(推荐)控制多个页面

小结:

  • 行内样式:如果样式很多的话 写出来很乱的。而且很多样式一样的话。你要写很多次
  • 优先级为: 行内样式表 > 内部样式表 > 外部样式表(符合就近原则)