CSS (Cascading Style Sheets) 入门与深化

87 阅读4分钟

CSS (Cascading Style Sheets) 入门与深化

什么是 CSS?

CSS 是 "Cascading Style Sheet" 的缩写,是一种用于设置HTML元素样式的语言。CSS可以使我们有能力控制页面布局并维持网站的一致性。通过 CSS,我们可以控制:

  • 字型、颜色、大小
  • 间隔大小
  • 边框和轮廓
  • 定位和对齐
  • 背景图像等等

CSS 语法

CSS 的语法主要由两部分组成:选择器(Selectors)和声明(Declarations)。

选择器

选择器定位到HTML中你要样式化的元素。例如,如果你想要改变所有的段落标签 <p> 的颜色,你可以使用 p 作为你的选择器。

声明

声明是CSS中的规则,它位于花括号 {} 中并包含两部分:属性(Property)和值(Value)。属性是你想要改变的样式特性,值是你希望设定给这个特性的样式。

css复制代码
selector {
  property: value;
}

例如:

css复制代码
p {
  color: red;
}

CSS 如何工作

  1. 层叠(Cascading) :CSS中的 "C" 是层叠的意思。当多个相同的样式被应用到同一个HTML元素时,将按照特定的顺序去处理这些样式。这个顺序是:内联样式(在HTML元素中直接写的样式) > 内部样式表(在HTML头部 <style> 标签中的样式) > 外部样式表和网页读取到的样式 > 浏览器默认样式。
  2. 继承(Inheritance) :在CSS中,一些样式属性是有继承性的,这样可以使得子元素能够继承其父元素的某些样式属性。

CSS 添加方式

在HTML文档中,有三种常见的添加CSS的方式:

  1. 内联样式:直接在HTML元素的 "style" 属性中写样式。
  2. 内部样式:在HTML文档头部 <style>

CSS布局模型

CSS提供了几种基本的布局模型,它们定义了HTML元素在页面上的位置和行为。

  • 块级元素:块级元素占据他们父元素的全部宽度,并新建一行。一些常见的块级元素包括 <div>, <p><h1><h6>
  • 行内元素:行内元素只占据它们需要的宽度。例如,<span><a>
  • 定位模型:CSS 提供了 position 属性,用来控制元素的位置。position 属性有 static, relative, fixed, absolutesticky 五个值。
  • 浮动模型float 属性允许元素浮动在其他元素的左侧或右侧,并且文本和行内元素会围绕它。常常用来创建文本环绕效果。
  • Flexbox:CSS Flexible Box(弹性框)布局是一个现代布局模型,允许在多方向上排列、对齐和分布空间。对于很多设计问题,Flexbox 提供了一种更高效的解决方式。
  • CSS Grid:CSS 网格布局引入了二维布局系统,允许元素在列和行上同时布局。相比其他布局方法,CSS Grid 通常能在更复杂的场景下提供最简洁、最强大的解决方案。

CSS 单位

在 CSS 中,有很多类型的单位可以用来定义长度、高度、间距、字体大小等。一些常见的 CSS 单位如下:

  • 像素(px) :像素是一个绝对单位,表示屏幕上的一个点。
  • 百分比(%) :百分比是相对单位,表示相对于另一个值的百分比。例如,如果一个元素的宽度设为 50%,那么它的宽度将是其父元素宽度的一半。
  • em:"em" 是相对单位,通常是相对于父元素的字体大小。例如,如果父元素的字体大小是 16px,那么 1em 为 16px,2em 为 32px。
  • rem:"rem" 正如 em 一样,只是它是相对于根元素()的字体大小。这样可以避免 em 复合效果导致的连锁反应。
  • 视口单位(vw, vh, vmin, vmax) :视口单位是相对单位,是相对于浏览器视口的大小。例如,1vh 等于视口高度的 1%。

CSS 伪类和伪元素

伪类和伪元素允许你选择 DOM 树中不存在的元素。例如,你可能希望更改鼠标悬停在元素上时元素的颜色,或者添加内容在元素之前。

  • 伪类:伪类允许你选择元素的特定状态。例如,:hover 伪类允许你选择鼠标悬停在元素上的状态。其他一些常见的伪类包括 :active:focus:visited:valid
  • 伪元素:伪元素允许你样式化元素的特定部分。例如,::before::after 伪元素允许你在元素内容之前或之后插入内容。他们经常与 content 属性一起使用。