认识CSS | 青训营笔记

92 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的的第二天。 今天学习了第二节课认识CSS,css给我最大的感觉就是对于文章结构的控制,当学到了盒子模型的时候,对于大多数网页布局方式有了一定的认知,自己也可以着手尝试一些简单的网页。

本堂课重点内容

第一节认识CSS的课程主要是对CSS的概述和一些基本的知识点。

  • 什么是CSS以及CSS如何在页面中使用
  • CSS是如何工作的
  • CSS的几种选择器
  • CSS的颜色以及字体相关

详细知识点介绍

笔记奉上,在文章最后。

课后个人总结

这次css基础知识学习,我最大的收获就是对页面的样式有了一定的了解,知道该如何去使用一些基础的知识来调整页面布局,并进行一些案例的实现。包括一些CSS的新特性,如果我们只是想要仿造网页写静态网页,那么html+css完全够用,并且也一样能做的很好。

一、了解CSS

1、CSS是什么?

  • Cascading Style Sheets

  • 用来定义页面元素的样式

    • 设置字体和颜色
    • 设置位置和大小
    • 添加动画效果

示例:

h1 {
    color: white;
    font-size: 14px;
}
h1是选择器(Selector)、colorfont-size等叫做选择器(Property)、white叫做属性值(value),我们把选择器和属性值连接起来的一个整体,如`font-size: 14px;`叫做声明(Declaration)。

2、在页面中使用CSS

<!-- 外链 -->
<link rel="stylesheet" href="/assets/style.css">
<!-- 嵌入 -->
<style>
    li { margin: 0; list-style: none; }
</style>
<!-- 内联 -->
<p style="margin:lem 0"></p>

推荐使用的是外链的写法。

现在的话有一种技术叫做组件式开发,就是我们把html、css和js写在一起,作为一个组件来使用,这样的话问题也是不大的,可以这样使用,更重要的是做到了关注点分离。

比较不推荐的是内联写法。

3、CSS是如何工作的?

image-20220725174906246.png

4、选择器Selector

  • 找出页面中的元素,以便给它们设置样式

  • 使用多种方式选择元素

    • 按照标签名、类名或id
    • 按照属性
    • 按照DOM树中的位置

(1)通配选择器

<style>
    * {
      padding: 0;
      margin: 0;
    }
</style>

(2)id选择器

<style>
    #logo {
      font-size: 600px;
      font-weight: 200px;
    }
 </style>
 <body>
    <p id="logo">id选择器</p>
 </body>

(3)类选择器

<style>
    .logo {
      font-size: 600px;
      font-weight: 200px;
    }
 </style>
 <body>
    <p class="logo">类选择器</p>
 </body>

(4)属性选择器

通过元素的属性或者属性值去选择元素。

<style>
    [disabled] {
      background: #eee;
      color: #999;
    }
 </style>
 <body>
    <!-- 通过属性去选择元素 -->
    <input type="text" value="zhao" disabled>
 </body>
<style>
    input[type="password"] {
      color: red;
    }
 </style>
 <body>
    <!-- 通过属性值去选择元素 -->
    <input type="password" value="zhao">
 </body>

另外,我们也可以对一些属性进行匹配。如下:

<style>
    /* 匹配以#开头的a标签元素 */
    a[href^="#"] {
      color: #f54767;
    }
    /* 匹配以.jpg结尾的a标签元素 */
    a[href$=".jpg"] {
      color: deepskyblue;
    }
 </style>
 <body>
    <!-- 通过属性值匹配去选择元素 -->
    <a href="#top">返回顶部</a>
    <a href="a.jpg">查看图片</a>
 </body>

(5)伪类(pseudo-classes)

  • 不基于标签和属性定位元素

  • 几种伪类

    • 状态性伪类

      <style>
        /* 默认状态下的链接状态 */
        a:link {
          color: black;
        }
        /* 访问过后的链接状态 */
        a:visited {
          color: gray;
        }
        /* 鼠标悬浮的链接状态 */
        a:hover {
          color: orange;
        }
        /* 鼠标点击时的链接状态 */
        a:active {
          color: red;
        }
      </style>
      
      <body>
        <a href="http://baidu.com"></a>
      </body>
      
    • 结构性伪类

      根据节点在DOM树中出现的位置来选择元素。

      <style>
        /* 选中第一个li */
        li:first-child {
          color: coral;
        }
        /* 选中最后一个li */
        li:last-child {
          border-bottom: none;
        }
      </style>
      
      <body>
        <ol>
          <li>1</li>
          <li>2</li>
          <li>3</li>
          <li>4</li>
          <li>5</li>
        </ol>
      </body>
      

(6)组合(Combinators)

元素标签组合:

名称语法说明示例
直接组合AB满足A同时满足Binput:focus
后代组合naA B选中B,说明它是A的子孙nav a
亲子组合A > B选中B,说明它是A的子元素section > p
兄弟选择器A ~ B选中B,如果它在A后且和A同级h2 ~ p
相邻选择器A + B选中B,如果它紧跟在A后面h2 + p

选择器组:

body,h1,h2,h3 {
	margin: 0;
	padding: 0;
}

5、颜色

(1)颜色-RGB

rgb(143, 172, 135);
#8fac87

(2)颜色-HSL

  • Hue:色相(H)是色彩的基本属性,如红色、黄色等;取值的范围时0-360。
  • Saturation:饱和度(S)是指色彩的鲜艳程度,越高越鲜艳;取值范围0-100%。
  • Lightness:亮度(L)指颜色的明亮程序;越高颜色越亮;取值范围是0-100%。

image-20220725182612401.png

(3)指定颜色名称

image-20220725182653724.png

(4)alpha透明度

#ff000078
rgba(255, 0, 0, 0.5)
hsla(0, 100%, 50%, 1)

6、字体font-family

通用字体

  • Serif 衬线体
Georgia、宋体
  • Sans-Serif 无衬线体
Arial、Helvetica、黑体、微软雅黑
  • Cursive 手写体
Caflisch Script、楷体
  • Fantasy
Comic Sans MS、Papyrus
  • Monospace 等宽字体
Consolas、Courier、中文字体

使用Web Fonts

Web 字体是一种 CSS 功能,允许指定的字体文件被下载到本地。 这是一种非常有效的方式,这样字体就不受限于本地是否安装了字体,而且大部分浏览器都支持Web 字体。

@font-face{
	font-family: "myFont";
	src: url("myFont.ttf");
}

font-size

  • 关键字

    • small、medium、large
  • 长度

    • px、em
  • 百分数

    • 相对于父元素字体大小

line-height

image-20220725190122037.png