CSS基础 | 青训营笔记

74 阅读5分钟

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

一、CSS概述

1. 什么是CSS

CSS:Cascading Style Sheet 层叠样式表:定义页面元素的样式

  • 设置字体和颜色
  • 设置位置和大小
  • 添加动画样式

2.CSS工作方式

当浏览器显示文档时,它必须将文档的内容与其样式信息结合。
它分两个阶段处理文档:
(1)浏览器将HTML 和 CSS 转化成 DOM (文档对象模型)。DOM在计算机内存中表示文档。它把文档内容和其样式结合在一起。
(2)浏览器显示 DOM 的内容。

image.png

如图所示,计算器加载并解析HTML文件后产生DOM树,并在解析HTML后加载解析CSS文档,将解析后的CSS样式赋给DOM树中的对应元素,最后在浏览器中展示。

2. CSS基本语法

选择器{
       属性名1:属性值1;
       属性名2:属性值2;
}
每个样式属性之间用分号连接,例:

#img1{
       width:600px;
       height:400px;
     }

3. CSS使用方法

  1. 行内样式,内联样式 只对当前元素生效,代码没有可复用性
<p style="color: red;">我是一个p标签</p>
  1. 内嵌式 位置:head标签内部,title标签下面,在style标签内部
p{
  color: red;
  background-color: pink;
}
  1. 外链式 创建一个.css文件,在html的head标签里使用link引入
<link rel="stylesheet” href="./style.css">

权重:内联样式 > 内嵌式 = 外链式

二、CSS选择器

1. 基本选择器

  • 通用选择器
    匹配所有元素,通常用来清除页面的默认样式

*{margin:0; padding:0;}

  • 标签选择器
    通过标签名选择,无视嵌套规则
  • id选择器
    通过标签上id属性进行选择

语法格式: #id名{属性值:属性名;}

  • 类选择器
    通过标签上的class属性进行选择

语法格式:.class属性{属性值:属性名;}

2. 组合选择器

image.png

  • 后代选择器
    通过元素的后代关系,来匹配元素

后代关系:一层嵌套或大于一层嵌套称为后代

后代关系不一定是父子关系

语法格式:选择器间空格隔开
选择器1 选择器2 选择器3{属性值:属性名;}

  • 交集选择器
    由两个或多个选择器构成,使用较少

语法格式:标签选择器+类选择器,中间没有空格
例:p.nav{color: #000;}

  • 并集选择器
    可以选择多组标签,同时为它们定义相同的样式

语法格式:选择器之间用","连接
例:p, a, .nav{color:pink;}

  • 子选择器
    匹配指定元素的所有子元素
    例:
  <div>
        <h1>
            <p>标签1</p>
        </h1>
        <p>标签2</p>
        <p>标签3</p>
        
  </div>
  /*匹配div子元素中所有的父元素*/
  div > p {
         color: pink;
  }
  • 兄弟选择器
    语法:A ~ B{属性名:属性值;}
  • 相邻选择器
    语法:A - B{属性名:属性值;}

3. 伪类选择器

CSS伪类是添加到选择器的关键字,指定要选择的元素的特殊状态

  • 动态伪类(多用于超链接的样式):
    :link: 访问前状态 (仅超链接适用)
    :visited: 访问后状态 (仅超链接适用)
    :hover:鼠标悬停时的状态
    :active:鼠标点击时的状态
    :focus:元素获得焦点时的状态 (输入类元素)

  • 常用结构伪类选择器:
    :first-child:匹配兄弟元素中的第一个元素
    :last-child:匹配兄弟元素中的最后一个元素
    :nth-child(n):匹配兄弟元素中的第n个元素
    :nth-last-child(n):匹配兄弟元素中的倒数第n个元素
    :root:用来定位HTML页面中的根元素
    :empty:没有子元素的元素

  • 目标伪类
    :target:匹配文档的某个标签的目标元素

  • 否定伪类
    :not:匹配除...之外的

  • 语言伪类
    :lang:匹配指定语言

  • UI元素状态伪类(多用于表单) :enabled:可用状态 :disabled:禁用状态 :checked:被勾选状态 :default:默认选中表单元素

4. 属性选择器

根据属性或属性值选择元素

语法格式:[属性选择器]{属性名:属性值;}

例1:为带有某种属性的元素设置样式:

[password]{
    color: red;
}

例2:为某属性等于xxx的元素设置样式:

input[type=text]{
   color: red;
     }

使用属性选择器可以只指定元素的某个属性,还可以同时指定元素的某个属性和其对应的属性值

5. 选择器的权重

  1. ! important - - - infinity
  2. 内联样式 - - - 1000
  3. id 选择器 - - - 100
  4. 属性、伪类、类名选择器 - - - 10
  5. 标签选择器、伪元素选择器 - - - 1
  6. 通配符选择器 - - - 0
  7. 同一行的选择器权重值相加,权重值较高的样式会覆盖权重值较低的样式

注:1.选择器权重相同时,写在后面的样式生效(后面的样式会覆盖前面的)
       2.选择器的权重值最高不一定生效

三、CSS属性

1. 颜色属性

color:值
颜色值定义方式:

  • 十六进制 如:"#ff0000"
  • rgb 如:"rgb(255,0,0)"
  • rgba 透明度 如:"rgba(255,0,0,0.5)"
  • 颜色名称 如:"pink"

2. 文字属性

  • font-style:规定文字样式

normal:正常的
italic:倾斜的

  • font-family:设置文字字体

Arial:黑体
Helvetica:微软雅黑
Georgia:宋体

  • font-size:设置字体大小
    单位:px、em
    百分数:相对于父元素字体大小
  • font-weight:设置文字粗细

bold:加粗
lighter:细线

  • 文字属性的缩写 语法:font:style weight size family; 例:
p{
   font:italic bold 16px Arial;
}

image.png

3. 文本属性

  • text-align:设置文本水平对齐方式
    值:left right center
  • text-decoration:修饰文本

none:无修饰 可用于去掉超链接的下划线
underline:下划线
overline:上划线
line-through:删除线

  • text-indent:设置文本缩进

单位:
px
%:参考父级width属性百分比
em:数字对应中文字符数

例:

p{
 text-align: center;
 font-size: 15px;
 text-indent: 0;
 }     

image.png

  • line-height: 行间距,可以控制文字行与行之间的距离
p{
   line-height:20px;
}