理解CSS|青训营笔记

104 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

一、本堂课重点内容

1.CSS简介及用法
2.CSS工作原理
3.CSS基本用法
4.选择器及其用法

二、详细知识点介绍

1.CSS简介

CSS是什么

CSS(Cascading Style Sheets)称为层叠样式表,在前端基础工具中承担着定义页面元素样式的作用,例如设置字体和颜色,设置位置和大小,以及添加动画效果等功能。

为什么要使用CSS

实现内容与样式的分离,便于团队开发
样式复用,便于网站的后期维护
页面的精确控制,让页面更精美

2.CSS工作原理

CSS代码通过加载HTML和解析HTML,创建DOM树,再通过加载和解析CSS,将样式添加到已创建的DOM树中,并最终在页面中展示出来。

3.在页面中使用CSS

在页面中使用CSS有三种方法:外链式、嵌入式、行内式

  1. 外链式需要单独创建一个 .css 文件,并在需要更改样式的HTML文件中引用,引用位置处于head标签之中。
  2. 嵌入式同样写在head标签之中,用style标签括起来。
  3. 内联式则是写在需要更改样式的内容标签之中,可以直接写入样式。
    举例如下:
<!-- 外链式 -->
<link rel="stylesheet" href="style.css">
<!-- 嵌入式 -->
<style>
 p{
            /* 文字颜色 */
            color: coral;
            /* 字体大小 */
            /* CSS中只要涉及尺寸的属性,必须要有单位,其中px表示像素 */
            font-size: 30px;
            /* 背景颜色 */
            background-color: rgb(128, 128, 128);
            /* 宽高:整个段落 */
            width: 630px;
            height: 50px;
</style>
<!-- 内联式 -->
<div style="color: aqua; width: 300px;">Example</div>

总结:以上三种CSS的基本使用语法在最终展示时没有区别,但是作为开发者,为了方便使用和简单易懂,通常小案例中用内嵌式;项目中用外联式;行内式配合js使用。

4.选择器及其用法

选择器(Selector)的作用是找出页面中的元素,以便给他们设置样式。
我们可以使用多种方式选择元素:

  • 按照标签名、类名或id
  • 按照属性
  • 按照DOM树中的位置
    各类选择器介绍:
  1. 通配选择器:基本样式为
*{
 color: red;
 font-size: 20px;
}

通配选择器能够匹配到页面中所有的元素。

2. 标签选择器: 基本样式为将通配选择器中的*换成具体的元素标签,比如标题标签h1或者段落标签p。

3. id选择器:使用自定义名称,以 # 作为前缀,然后通过HTML标签的id属性进行名称匹配,以标签的id属性作为样式应用的依据,是一对一的关系。此时需要在前面的元素标签里提前定义id。

4. 类选择器:使用自定义的名称以.号作为前缀,然后再通过HTML标签的class属性调用类选择器,以标签的class属性作为样式应用的依据。
注意事项
-调用时不能添加.
-同时调用多个类选择器时,用空格分隔
-类选择器名称不能以数字开头

5. 属性选择器:给某一标签内的某一属性设置样式,用[]包住属性作为选择器。例如处理input标签的disabled属性时,可以给被禁用的表单内容设置样式。属性选择器举例如下:

<!-- 直接用[]选中属性 -->
<input value="student" disabled />
<style>
    [disabled]{
      background: #eee;
      color: #999;
</style>

<!-- 指定特定标签的特定属性 -->
<input type="password" value="123456" />
<style>
    input[type="password"]{
      border-color: red;
      color: red;
</style>

<!-- 可以指定特定的属性以特定条件作为开头、结尾时才被选中 -->
<a href="#top">回到顶部</a>
<a href="a.jpg">查看图片</a>
<style>
  <!-- ^=表示此属性为#开头才被选中 -->
  a[href^="#"] {
    color: #f54767;
    background: 0 center/1em url(https://assets.codepen.io/59477/arrow-up.png) no-repeat;
    padding-left: 1.1em;
  }
  <!-- $=表示此属性为.jpg结尾时才被选中 -->
  a[href$=".jpg"] {
    color: deepskyblue;
    background: 0 center/1em url(https://assets.codepen.io/59477/image3.png) no-repeat;
    padding-left: 1.2em;
  }
</style>

6.伪类选择器:根据不同的状态显示不同的样式,不基于标签和属性定位元素,伪类分为状态伪类和结构性伪类。
五种状态伪类:

  • link 未访问的链接
  • visited 已访问的链接
  • hover 鼠标悬浮到链接上,即移动在链接上
  • active 选定的链接被激活
  • focus 选定的输入框样式

结构性伪类:

  • first-child 列表的第一个元素
  • last-child 列表的最后一个元素

组合器:给两个不同标签都加上class属性,既可以同时使用样式,也可以指定其中一个标签使用样式。

7.组合:组合器有若干种组合规则和相应语法,如直接组合、后代组合、亲子组合、兄弟选择器、相邻选择器。如下: 321.png 选择器组:即一组选择器,选择具体标签时可一次选择多个标签,中间用隔开即可。

三、实践练习例子

选择器实践——伪类:

<!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>css_selector</title>
    <style>
    /* 直接用[]选中属性 */
        [disabled]{
        background: #eee;
        color: #999;
    </style>
    <style>
        /* 指定特定标签的特定属性 */
        input[type="password"]{
        border-color: red;
        color: red;
    </style>
    <style>   
    /* 可以指定特定的属性以特定条件作为开头、结尾时才被选中 */
    /* ^=表示此属性为#开头才被选中 */
    a[href^="#"] {
        color: #f54767;
        background: 0 center/1em url(https://assets.codepen.io/59477/arrow-up.png) no-repeat;
        padding-left: 1.1em;
    }
    /* $=表示此属性为.jpg结尾时才被选中 */
    a[href$=".jpg"] {
        color: deepskyblue;
        background: 0 center/1em url(https://assets.codepen.io/59477/image3.png) no-repeat;
        padding-left: 1.2em;
    }
    </style>
</head>
<body>
    用户名:<input type="password" value="123456" /><br>
    密码:<input value="student" disabled /><br>
    <a href="#top">回到顶部</a><br>
    <a href="交换余生.jpg">查看图片</a>
</body>
</html>

运行结果: 123.png

四、课后个人总结

在这节课中,我对于css有了初步的了解,css通过各种选择器选中页面中的元素,并通过强大的样式类型丰富页面中元素的样式。在实践的过程中,我实现了css的三种语法,熟悉了各种类型的选择器的用法,并且实现了不同的样式。在今后的学习中,更要注重css与前端其它的部分相结合。