CSS层叠样式表导读

一、CSS简介

CSS的主要使用场景就是美化网页,布局页面的。

1.1 HTML的局限性

HTML是个单纯的家伙,它只关注内容的语义。
比如:

表明这是一个大标题,

表明这是一个段落,
Day 1 - 图1表明这有一张照片,
表示此处有链接。
很早的时候,世界上的网站虽然很多,但是他们都有一个共同的特点:丑。
虽然HTML可以做很简单的样式,但是带来的是无尽的臃肿和繁琐……

1.2 CSS-网页的美容师

  1. CSS是层叠样式表(Cascading Style Sheets)的简称。有时我们也会称之为CSS样式表或级联样式表。
  2. CSS也是一种标记语言。
  3. CSS主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式。
  4. CSS让网页更加丰富多彩,布局更加灵活自如。简单理解:CSS可以美化HTML,让HTML更漂亮,让页面布局更简单。
  5. 总结:
  • HTML主要做结构,显示元素内容;
  • CSS美化HTML,布局网页。
  • CSS最大价值:由HTML专注去做结构呈现,样式交给CSS,即结构(HTML)与样式(CSS)相分离。

    1.3 CSS语法规范

    使用HTML时,需要遵从一定的规范,CSS也是如此。要想熟练的使用CSS对网页进行修饰,首先需要了解CSS样式规则。
    CSS规则主要由两个部分构成:选择器以及一条或多条声明。
    Day 1 - 图2­
    注:
    ①选择器是用于指定CSS样式的HTML标签,花括号内是对该对象设置的具体样式。
    ②属性和属性值以“键值对”的形式出现。
    ③属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。
    ④属性和属性值之间用英文“:”分开。
    ⑤多个“键值对”之间用英文“;”进行区分。
    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>体验CSS语法规范</title>
    8. <style>
    9. /* 选择器 {样式} */
    10. /* 给谁改样式 {改什么样式} */
    11. p {
    12. color: red;
    13. /* 修改了文字大小为12像素 */
    14. font-size: 12px;
    15. }
    16. </style>
    17. </head>
    18. <body>
    19. <p>funny</p>
    20. </body>
    21. </html>

    1.4 CSS代码风格

    以下代码书写风格不是强制规范,而是符合实际开发书写方式。
  1. 样式格式书写:强烈推荐第二种,更直观!

①紧凑格式:h3 { color: deeppink; font-size: 20px;}
②展开格式:
h3 {
color: deeppink;
font-size: 20px;
}

  1. 样式大小写:强烈推荐样式选择器、属性名、属性值关键字全部使用小写字母,特殊情况除外。

一般情况下采取小写字母,大写也可以执行,但是看起来不如小写的方便。

  1. 空格规范
  • 属性值前面,冒号后面,保留一个空格。
  • 选择器(标签)和大括号中间保留空格。

二、CSS基础选择器

2.1 CSS选择器的作用

选择器就是根据不同需求把不同的标签选出来,这就是选择器的作用。简单来说,就是选择标签用的。
h1 {
color: red;
font-size: 25px
}
以上CSS做了两件事:
①找到所有的h1标签,选择器(选对人)。
②设置这些标签的样式,比如颜色为红色(做对事)。

2.2 选择器分类

1.选择器分为基础选择器和复合选择器两个大类,我们这里先讲解一下基础选择器。

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

    2.3 标签选择器

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

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

  1. 作用:标签选择器可以把某一类标签全部选择出来,比如所有的
    标签和所有的标签。
  2. 优点:能快速为页面中同类型的标签统一设置样式。
  3. 缺点:不能设计差异化样式,只能选择全部的当前标签。

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         /* 标签选择器:写上标签名 */
         p {
             color: green;
         }
         div {
             color: pink;
         }
     </style>
    </head>
    <body>
     <p>男生</p>
     <p>男生</p>
     <p>男生</p>
     <div>女生</div>
     <div>女生</div>
     <div>女生</div>
    </body>
    </html>
    

    2.4 类选择器

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

  5. 语法:

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

  1. 例如,拥有red类的HTML元素均为红色。

.red {
color:red;
}
结构需要用class属性来调用class类的意思

变红色

  1. 类选择器在HTML中以class属性表示,在CSS中,类选择器以一个点“.”号显示。
  2. 注意:

①类选择器使用“.”(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)。注意类名不要用HTML标签名称。
②可以理解为给这个标签起了一个名字来表示。
③长名称或词组可以使用中横线来为选择器命名。
比如:
.star-sing {
color: green;
}
④不要使用纯数字、中文等命名,尽量使用英文字母来表示。
⑤命名要有意义,尽量使用别人一眼就知道这个类名的目的。(就算打拼音也要打全,让人一看就懂)
⑥命名规范:见附件(web前端开发规范手册.doc——里面的类命名规则)

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

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         /* 类选择器口诀 样式点定义  结构类(class)调用   一个或多个  开发最常用 */
        .red {
         color: red;
        }
     </style>
    </head>
    <body>
     <ul>
         <li class="red">冰雨</li>
         <li class="red">来生缘</li>
         <li>李香兰</li>
         <li>生僻字</li>
         <li>江南style</li>
     </ul>
     <div class="red">我也想变红色</div>
    </body>
    </html>
    
  2. 课堂案例:用类选择器画三个盒子。

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         .red {
             width: 100px;
             height: 100px;
             /* 背景颜色 */
             background-color: red;
         }
         .green {
             width: 100px;
             height: 100px;
             /* 背景颜色 */
             background-color: green;
         }
     </style>
    </head>
    <body>
     <div class="red">红色</div>
     <div class="green">绿色</div>
     <div class="red">红色</div>
    </body>
    </html>
    
  • 通过这个案例,练习两个地方:
    • 类选择器的使用。
    • div就是一个盒子,用来装网页内容的。

      2.4# 类选择器-多类名

      我们可以给一个标签指定多个类名,从而达到更多的选择目的。这些类名都可以选出这个标签。
      简单理解就是一个标签有多个名字。
  1. 多类名使用方式:
    亚瑟
  • 在标签class属性中写多个类名。
  • 多个类名中间必须用空格分开。
  • 这个标签就可以分别具有这些类名的样式。
  1. 多类名开发使用场景

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .red {
            color: red;
        }
        .font35 {
            font-size: 35px ;
        }
    </style>
</head>
<body>
    <div class="red font35 ">刘德华</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 100px;
            height: 100px;
            font-size: 30px;
        }
        .red {
            /* width: 100px; */
            /* height: 100px; */
            background-color: red;
        }
        .green {
            /* width: 100px; */
            /* height: 100px; */
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box red">红色</div>
    <div class="box green">绿色</div>
    <div class="box red">红色</div>
</body>
</html>

2.5 id选择器

  1. id选择器可以为标有特定id的HTML元素指定特定的样式。
  2. HTML元素以id属性来设置id选择器,CSS中id选择器以“#”来定义。
  3. 语法

id名 {
属性1:属性值1;
……
}
例如:将id为nav元素中的内容设置成红色
#nav {
color:red;
}

  1. 注意:id属性只能在每个HTML文档中出现一次。
  2. 口诀:样式#定义,结构id调用,只能调用一次,别人切勿使用。

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         /* id 选择器的口诀:样式#定义  结构id调用  只能调用一次  别人切勿使用 */
         #pink {
             color: pink;
         }
     </style>
    </head>
    <body>
     <div id="pink">迈克尔·杰克逊</div>
    </body>
    </html>
    
  3. id选择器和类选择器区别

  • 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多人使用。
  • id选择器好比人的身份证号,全中国是唯一的,不得重复。
  • id选择器和类选择器最大的区别在于使用次数上。
  • 类选择器在修改样式中用的最多,id选择器一般用于页面唯一性的元素上,经常和JavaScript搭配使用。

    2.6 通配符选择器

  1. 在CSS中,通配符选择器使用“*”定义,他表示选取页面中所有元素(标签)。
  2. 语法
  • {
    属性1:属性值1;
    ……
    }
  1. 注意
  • 通配符选择器不需要调用,自动就给所有的元素使用样式。
  • 特殊情况才使用,后面讲解使用场景(以下是清除所有的元素标签的内外边距,后期讲)
  • {
    margin:0;
    padding:0;
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         * {
             color: red;
         }
         /* * 这里把 html  body  div  span  li  等等标签都改为了红色 */
     </style>
    </head>
    <body>
     <div>我的</div>
     <span>我的</span>
     <ul>
         <li>还是我的</li>
     </ul>
    </body>
    </html>
    

    2.7 基础选择器总结

    | 基础选择器 | 作用 | 特点 | 使用情况 | 用法 | | —- | —- | —- | —- | —- | | 标签选择器 | 可以选出所有相同的标签,比如p | 不能差异化选择 | 较多 | P { color: red;} | | 类选择器 | 可以选出1个或多个标签 | 可以根据需求选择 | 非常多 | .nav { color: red;} | | id选择器 | 一次只能选择1个标签 | id属性只能在每个HTML文档中出现一此 | 一般和JS搭配 | #nav { color: red;} | | 通配符选择器 | 选择所有标签 | 选择的太多,有部分不需要 | 特殊情况使用 | * { color:red;} |

①每个基础选择器都有使用场景,都需要掌握。
②如果是修改样式,类选择器是使用最多的。

三、CSS字体属性

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

3.1 字体系列

  1. CSS使用font-family属性定义文本的字体系列。
  2. 语法:

p { font-family: “微软雅黑”; }
div { font-family: Arial, “Microsoft Yahei”, “微软雅黑”; }

  1. 注意

①各种字体之间必须使用英文状态下的逗号隔开;
②一般情况下,有空格隔开的多个单词组成的字体,要加引号(单双引号都可以)。
③尽量使用系统默认自带字体,保证在任何用户的浏览器中都能正确显示,兼容性好一些。
④最常见的几个字体:body { font-family; ‘Microsoft YaHei’; Tahoma; ‘Hiragino Sans GB’; }
⑤设置多个字体意思是:如果用户电脑未安装第一种字体,就执行第二种,以此类推。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /* 设置多个字体的意思是,如果用户电脑未安装第一种字体,就执行第二种字体,以此类推。 */
    h2 {
        font-family: "Microsoft YaHei", Arial, Helvetica, sans-serif;
    }
    p {
        font-family: "宋体";
    }
    </style>
</head>
<body>
    <h2>pink的秘密</h2>
    <p>那一抹众人中最漂亮的颜色,</p>
    <p>优雅,淡然,又那么心中澄澈,</p>
    <p>前端总是伴随着困难和犯错,</p>
    <p>静心、坦然、攻克一个又一个</p>
    <p>拼死也要克服它,</p>
    <p>这是pink的秘密也是老师最终的嘱托</p>
</body>
</html>

3.2 字体大小

  1. CSS使用font-size属性定义字体大小。
  2. 语法:

P {
font-size: 20px
}

  1. 注意:

①px(像素)大小是我们网页最常用的单位。
②谷歌浏览器默认的文字大小为16px。
③不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小。
④可以给body指定整个页面文字的大小。
⑤标题标签比较特殊,需要单独用h指定文字大小,不能通过body指定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            font-size: 16px;
        }
        /* 标题标签比较特殊,需要单独指定文字大小 */
        h2 {
            font-size: 18px;
        }
    </style>
</head>
<body>
    <h2>pink的秘密</h2>
    <p>那一抹众人中最漂亮的颜色,</p>
    <p>优雅,淡然,又那么心中澄澈,</p>
</body>
</html>

3.3 字体粗细

Day 1 - 图3

  1. CSS使用font-weight属性设置文本字体的粗细。
  2. 语法:

p {
font-weight:bold;
}

属性值 描述
normal 默认值(不加粗)
bold 定义粗体(加粗的)
100-900 400等同于normal,而700等同于bold,注意这个数字后面不跟单位。
  1. 学会让加粗标签(比如h和strong)不加粗,或者其他标签加粗。
  2. 实际开发中,喜欢用数字来设置字体粗细。常用400和700。

    <!DOCTYPE html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>Document</title>
     <style>
         .bold {
             /* font-weight: bold; */
             /* 这个700的后面不要跟单位  等价于bold都是加粗的效果 */
             /* 实际开发中,我们跟提倡使用数字,表示加粗或变细,700加粗,400变细 */
             font-weight: 700;
         }
         h2 {
             /* 比如说想要h2的字体大小,但不想加粗,就这么办,400和normal任选一个就可以 */
             font-weight: 400;
             font-weight: normal;
         }
     </style>
    </head>
    <body>
     <h2>pink的秘密</h2>
     <p>那一抹众人中最漂亮的颜色,</p>
     <p>优雅,淡然,又那么心中澄澈,</p>
     <p>前端总是伴随着困难和犯错,</p>
     <p>静心、坦然、攻克一个又一个</p>
     <p class="bold">拼死也要克服它,</p>
     <!-- 如果这个地方特别特别重要的标粗,不用bold,用<strong></strong>标签 -->
     <p>这是pink的秘密也是老师最终的嘱托</p>
    </body>
    </html>
    

    3.4 字体属性

  3. CSS使用font-style属性设置文本的风格。

  4. 语法

p {
font-style: normal;
}

属性值 作用
normal 默认值,浏览器会显示标准的字体样式font-style:normal;
italic 浏览器会显示斜体的字体样式。

平时我们很少给文字加斜体,反而要用normal给斜体标签(em、i)改为不倾斜字体。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p {
            font-style: italic;
        }
        em {
            /* 让倾斜的字体不倾斜   就是赶紧脉动回来 */
            font-style: normal;
        }
    </style>
</head>
<body>
    <p>同学,上课时候的你</p>
    <em>下课时候的你</em>
</body>
</html>

3.5 字体复合属性

  1. 字体属性可以把以上文字样式综合来写,这样可以更节约代码
  2. 语法:

body {
font: font-style font-weight font-size/height font-family;
}

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

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style>
          /* 想要div文字变倾斜  加粗 字号设置为16px 微软雅黑 */
           div {
              /* font-size: 16px;
              font-weight: 700;
              font-family: 'Microsoft YaHei';
              font-style: italic; */
    
              /* 复合属性:简写的方式 节约代码  注意!!!style  weight  size/line-height  family四个顺序不能换!!!*/
              /* font: font-style font-weight font-size/line-height font-family */
    
              /* font: italic 700 16px 'Microsoft yahei'; */
    
              font: 20px 黑体;
           }
      </style>
    </head>
    <body>
      <div>三生三世十里桃花,一心一意百行代码</div>
    </body>
    </html>
    

    3.6 字体属性总结

    | 属性 | 表示 | 注意点 | | —- | —- | —- | | font-size | 字号 | 通常用的单位是px像素,一定要跟上单位 | | font-family | 字体 | 实际工作中按照团队约定来写字体。 | | font-weight | 字体粗细 | 记住加粗是700或者bold,不加粗是normal或者400,记住数字不要跟单位。 | | font-style | 字体样式 | 记住倾斜是italic,不倾斜是normal,工作中最常用normal。 | | font | 字体连写 | ①字体连写是有顺序的,不能随意换位置;②字号和字体必须同时出现。 |

四、CSS文本属性

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

4.1 文本颜色

  1. color属性定义文本颜色。
  2. 语法:

div {
color: red;
}

表示 属性值
预定义的颜色值 red, green, blue, pink
十六进制 #FF0000, #FF6600, #29D794
RGB代码 Rgb(255,0,0)或rgb(100%,0%,0%)

实际应用中,预定义的颜色值一般在demo中使用,开发中最常用十六进制(后面可以通过ps把些颜色吸取过来)。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    div {
        /* color: pink; */
        /* color: rgb(87, 85, 194); */
        color: #ff0000;
    }      
    </style>
</head>
<body>
    <div>听说喜欢pink色的男生,都喜欢男人</div>
</body>
</html>

4.2 对齐文本

  1. text-align属性用于设置元素内文本内容的水平对齐方式。(该属性只能水平对齐,不能垂直)
  2. 语法:

div {
text-align: center;
}

属性值 解释
left 左对齐(默认值)
right 右对齐
center 居中
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        h1 {
            /* 本质是让h盒子里面的文字水平居中对齐 */
            text-align: center;
        }
    </style>
</head>
<body>
    <h1>今天是个好日子!</h1>
</body>
</html>

4.3装饰文本

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

div {
text-decoration:underline;
}

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

重点记住如何添加下划线underline,如何删除下划线none。其余了解即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div {
            /* 下划线 */
            /* text-decoration: underline; */
            /* 删除线 */
            /* text-decoration: line-through; */
            /* 上划线 */
            text-decoration: overline;
        }
        a {
            /* 取消a默认的下划线 */
            text-decoration: none;
        }
    </style>
    <link rel="stylesheet" href="style.css"
</head>
<body>
    <div>你的不折不扣的小狗,每天吻你三千两百万次。</div>
    <a href="#">hhhhhhh</a>
</body>
</html>

4.4 文本缩进

  1. text-indent属性用来指定文本第一行的缩进,通常是将段落的首行缩进。
  2. 语法:

div {
text-indent: 10px;
}
通过设置该属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值。
p {
text-indent: 2em;
}
em是一个相对单位,就是当前元素(font-size)1个文字的大小,如果当前文字没有设置大小,则会按照父元素的一个文字大小。

4.5 行间距

  1. line-height属性用来设置行间的距离(行高)。可以控制文字行与行之间的距离。

Day 1 - 图4

  1. 语法:

p {
line-height:26px;
}

  1. FSCapture.exe测量行高的小工具

    4.6 文本属性总结

    | 属性 | 表示 | 注意点 | | —- | —- | —- | | color | 文本颜色 | 通常用十六进制,且是简写形式#fff | | text-align | 文本对齐 | 用来设定文字水平的对齐方式 | | text-indent | 文本缩进 | 通常用于段落首行缩进2个字的距离,2em | | text-decoration | 文本修饰 | 记住添加下划线underline,取消下划线none | | line-height | 行高 | 控制行与行之间的距离 |

五、CSS引入方式

5.1 CSS的三种样式表

  1. 按照CSS样式书写的位置(或者引入的方式),CSS样式表可以分为三大类:行内样式表(行内式)、内部样式表(嵌入式)、外部样式表(链接式)。

    5.2 内部样式表

  2. 内部样式表(内嵌样式表)是写到html页面内部,是将所有的CSS代码抽取出来,单独放到一个