# CSS | 青训营笔记

200 阅读3分钟

CSS | 青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第1天。

一、选择器类型:

1. 标签选择器

     示例:h1{}

2. ID选择器

     示例:#unique{}

3. 类选择器

     示例:.box{}

类选择器与ID选择器的区别: 类选择器在一个HTML页面中可以被引用多次,ID选择器只能引用一次

4. 通配选择器

     示例:*{}

5. 标签属性选择器

     示例:a[title]{}

6. 伪类选择器

     示例:p:first-child{}

7. 伪类元素选择器

     示例:p::first-line{}

8. 选择器组

    -       直接组合       AB(满足A同时满足Binput:foucs
    -       后代组合      A B(选中B,且BA的子孙)        nav a
    -       亲子组合     A > B(选中BBA的子元素)       section > p
    -       兄弟选择器   A ~ B(选中BBA后且与A同级)   h2 ~ p
    -       相邻选择器   A + B(选中B,且B紧跟在A后)       h2 + p   

二、选择器优先级

规则

不同的选择器有不同的权重值,权重值的大小构成了选择器的优先级,权重越大优先级越高,同一行的选择器权重,权重大的样式会覆盖权重低的样式。

  • ! important - - - infinity
  • 行间样式 - - - 1000
  • id 选择器 - - - 100
  • 属性、伪类、类名选择器 - - - 10
  • 标签选择器 - - - 1
  • 通配符选择器 - - - 0

注:权重值是256进制,不是10进制

三、CSS在页面中使用方法

1.外链式

      <link rel="stylesheet" href="style.css">

2.嵌入式

       <style>
           p{}
       </style>

3.内联式

        <p style="margin:1em 0">内联式</p>

四、颜色

颜色表示方法:

1. 基础颜色

示例红色:color:red;

2. 十六进制颜色

两个字母为一组,分别表示红色、绿色、蓝色
示例红色:color:#ff0000;

3. RGB颜色/RGBA颜色

颜色指定:RGBA(红,绿,蓝,alpha)A表示透明度,取值0.0~1.0
示例红色:color:rgba(255,0,0,0.5);

4. HSL颜色/HSLA颜色

颜色指定:HSLA(色调,饱和度,亮度,alpha)
 示例红色:color:rgba(236, 43, 9, 0.853);

五、字体

常用类型

  • font-family
  • font-size
  • font-style
  • font-weight
  • line-height
  • text-align
  • letter-spacing
  • word-spacing

六、继承

某些属性会自动继承自父元素的计算值,除非显示的指定一个数值,一般跟文字相关的都会自动继承,和模型相关的不会继承,如果想强制继承可以使用inherit属性。如果没有指定同时也没有继承到值则使用初始值。

line-height继承问题

  • line-height如果继承过来的是数值,那么元素就直接等于继承来的值,
  • 如果是2/1.5这种比例,会将比例继承过来,
  • 如果是百分比那么会将计算好的数值继承过来。

七、布局

网页布局的本质–用CSS来摆放盒子,把盒子摆放到相应的位置,css提供了三种传统布局方式,分别是标准流浮动定位三种。

image.png

1.常规流 Normal Flow

常规流是最基本的布局方式

image.png

常见属性

  • width
  • height
  • padding
  • border
  • margin
  • overlow
  • display
  • 块级元素与行级元素 image.png

根元素、浮动和绝对定位会脱离常规流,其他元素都在常规流内常规流中的盒子,在某种排版上下文中参与布局

  • 行级排版上下文
  • 块级排版上下文
  • BFC内的排版规则
  • FlexBox
  • Grid布局

2. 浮动

有很多布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。因为浮动可以改变元素标签默认的排列方式。

属性

  • float:none;
  • float:left;
  • float:right;

3. 绝对定位

position属性

  • position:relative
  • position:absolute