css简介

css(cascading style sheets)层叠样式表,用于描述html文档的样式。

如果html是房子的骨架,css就是房子的装修,html负责结构,css负责样式。

css的作用就是美化html页面,使页面看起来更加美观。

css工作原理

css的工作原理是:浏览器会根据html文档的结构,找到对应的css样式,然后根据css样式来渲染页面。

css的语法

CSS的语法结构为:选择器 { 属性: 属性值; }

选择器:用于选择html元素

属性:用于描述元素的样式

属性值:用于指定属性的具体值

注意:属性和属性值之间用冒号隔开,每个属性值之间用分号隔开。结束使用分号。

示例

    <style>
    body {
      background-color: aqua;
    }
    h1 {
      color: brown;
    }
    p {
      color: blue;
    }
  </style> 

css注释

css注释是:/注释内容/

注释内容:用于描述css的作用

注意:注释内容不会被浏览器解析,只是用于方便开发人员阅读。

id选择器

id选择器的作用就是识别html元素的id属性,然后根据id属性来设置样式。

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

示例

  id 选择器
    <p id="p1">hello world</p>
    <p>这个锻炼不受影响</p>
    <style>
        #p1 {
            color: brown;
        }
    </style>

注意:id选择器的选择器名称前面要加上#号。

class 类 选择器

class选择器的作用就是识别html元素的class属性,然后根据class属性来设置样式。

注意:class属性可以在一个html文档中出现多次。

示例

  class 选择器
    <p class="p1">段落p1</p>
    <h1 class="p1">标题h1</h1>
    <p class="p1 p2">段落p2</p> //空格以选择多个class
    <style>
        .p1 {
            color: blue;
        }
        h1.p1{
            text-align: center;
        }
        .p2{
            text-align: right;
        }
    </style>

用逗号将不同选择器隔开

用逗号将不同选择器隔开:可以同时选择多个元素,然后设置相同的样式。

注意:逗号隔开的多个选择器,会同时生效。

示例

    <p class="p1">段落p1</p>
    <h1 class="p1">标题h1</h1>
    <p class="p1 p2">段落p2</p> //空格以选择多个class
    <style>
        .p1, h1 {
            color: blue;
        }
        h1.p1{
            text-align: center;
        }
        .p2{
            text-align: right;
        }
    </style>

关系选择器

后代选择器

  <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>cssStudy01</title>
</head>
<body>
    <div class="box"><p>Text in .box</p></div>
    <p>Text not in .box</p>

<style>
.box p{
    color: red;
}
</style>
</body>
</html>

后代选择器就是选择某个元素的所有后代元素。

注意:后代选择器可以选择多个元素,但是只能选择直接后代元素,不能选择间接后代元素。

子代关系选择器

子代关系选择器:选择某个元素的直接子代元素。

示例

    <ul>
  <li>Unordered item</li>
  <li>
    Unordered item
    <ol>
      <li>Item 1</li>
      <li>Item 2</li>
    </ol>
  </li>
</ul>
    <style>
      ul > li {

  border-top: 5px solid red;

              }
    </style>

以上例子中,ul > li 选择了ul元素的直接子代元素li,然后给li添加了边框。

相邻选择符 + 邻接兄弟选择符

相邻选择符+:选择紧接在另一个元素后的元素,且二者有相同的父元素。

示例

    <p>段落p1</p>
    <h1>标题h1</h1>
    <p>段落p2</p>
    <style>
        p + h1 {
            color: blue;
        }
    </style>

以上例子中,p + h1 选择了p元素后面的h1元素,然后给h1元素添加了样式。

通用兄弟

 <article>
  <h1>A heading</h1>
  <p>I am a paragraph.</p>
  <div>I am a div</div>
  <p>I am another paragraph.</p>
</article>
body {
  font-family: sans-serif;
}

h1 ~ p {
  font-weight: bold;
  background-color: #333;
  color: #fff;
  padding: 0.5em;
}

在以上例子中, h1 ~ p 选择了h1元素后面的所有p元素,然后给p元素添加了样式。

伪类与伪元素

伪类:用于选择元素的特殊状态,比如鼠标悬停、点击等。

伪元素:用于选择元素的部分内容,比如第一个字母、第一个行等。

注意:伪类和伪元素的选择器名称前面要加上冒号。

示例

    <article>
  <p>
    蔬菜对你有好处,所以你需要多吃大头菜、大葱、白萝卜、苋菜、番茄酱、甜瓜、红豆、大蒜。
  </p>

  <p>
    秋葵浓汤、甜菜叶、玉米、鸡冠菜、菊苣、秋葵浓汤、葫芦。欧芹、葱、西葫芦、塌棵菜、豌豆芽、蚕豆、羽衣甘蓝、蒲公英、秋葵、裙带菜、番茄。蒲公英、黄瓜、花生、豌豆、花生、鸡冠菜、西葫芦。
  </p>
</article>
article p:first-child {
  font-size: 120%;
  font-weight: bold;
}

用户行为伪类

一些伪类只会在用户以某种方式和文档交互的时候应用。这些用户行为伪类,有时叫做动态伪类,表现得就像是一个类在用户和元素交互的时候加到了元素上一样。案例包括:

:hover——只会在用户将指针挪到元素上的时候才会激活,一般就是链接元素。

:focus——只会在用户使用键盘控制,选定元素的时候激活。

示例

<p><a href="">悬停在我上方</a></p>
a:link,
a:visited {
  color: rebeccapurple;
  font-weight: bold;
}

a:hover {
  color: hotpink;
}

伪元素

伪元素:用于选择元素的部分内容,比如第一个字母、第一个行等。

注意:伪元素的选择器名称前面要加上双冒号。

示例

    <article>
  <p>
    蔬菜对你有好处,所以你需要多吃大头菜、大葱、白萝卜、苋菜、番茄酱、甜瓜、红豆、大蒜。
  </p>

  <p>
    秋葵浓汤、甜菜叶、玉米、鸡冠菜、菊苣、秋葵浓汤、葫芦。欧芹、葱、西葫芦、塌棵菜、豌豆芽、蚕豆、羽衣甘蓝、蒲公英、秋葵、裙带菜、番茄。蒲公英、黄瓜、花生、豌豆、花生、鸡冠菜、西葫芦。
  </p>
</article>
article p::first-line {
  font-size: 120%;
  font-weight: bold;
}

把伪类和伪元素组合起来

选择一个`<article>`元素里面的第一个`<p>`元素的第一行。

示例

    article p::first-line {
      font-size: 120%;
      font-weight: bold;
    }

运算符

运算符:用于计算属性值。

注意:运算符的单位是px(像素)。

示例 下面的示例用运算符(>)选择了<article>元素的初代子元素。

    article > p {
      
    }