理解CSS|青训营笔记

241 阅读3分钟

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

课堂笔记

CSS的定义

CSS(Cascading Style Sheets)层叠样式表。用于定义页面元素的样式,如设置字体和颜色、设置位置和大小、添加动画效果等等。

CSS基础代码

E4EFF34C537B7F40A8BFAAADBD12E0CB.jpg

页面中使用CSS

外链

<!-- 外链 -->
    <link rel="stylesheet" href="/assets/style.csss">

嵌入

 <!-- 嵌入 -->
    <style>
        li {margin: 0; list-style: none; }
        p {margin: lem 0; }
    </style>

内联

<!-- 内联 -->
<p style="margin:lem 0">Example Content</p>

提示: 推荐使用外链方式调用CSS,实现样式与内容的分离,便于维护。

CSS工作原理

下面的这张图简要概括了CSS是如何渲染到页面上的:

BB0F146EDA10B5603CA31ADDD5E95B60.jpg

选择器

功能: 找出页面中的元素,以便于给他们设置样式。
选择方式:

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

选择器类型示例

通配选择器

<h1>标签</h1>
    <p>段落</p>
    <style>
      * {
        color: red;
        font-size: 20px
      }
    </style>
image.png

标签选择器

<h1>标签</h1>
<p>段落</p>

<style>
  h1 {
    color: orange;
  }
  p {
    color: gray;
  }
</style>
image.png

id选择器
注意:id值唯一

<h1 id="logo">这是logo</h1>

<style>
  #logo {
    color: orange;
  }
</style>
image.png

类选择器
类名可以不唯一

<ul>
  <li class="done">first</li>
  <li class="done">second</li>
  <li>third</li>
</ul>

<style>
  .done {
    color: red;
  }
</style>
image.png

属性选择器

<label>用户名:</label>
<input value="user" disabled></input>
<label>密码:</label>
<input value="passowrd" type="password"></input>

<style>
  [disable] {
    background: #999;
  }
</style>
image.png

属性选择器|MDN查看。

伪类

定义:不基于标签和属性定位元素。
分类

  • 状态伪类
  • 结构性伪类

伪类示例

状态伪类: 根据不同状态显示不同的样式
演示链接
结构伪类: 根据不同其在DOM树不同节点位置显示不同的样式
演示链接

组合

3F67EF0E2DFB08739E22EA42CBA058A3.jpg

组合示例

<article>
  <h1>拉森火山国家公园</h1>
  <p>拉森火山国家公园是位于...</p>
  <section>
    <h2>气候</h2>
    <p>因为拉森火山国家公园...</p>
    <p>高于这个高度,气候非常寒冷...</p>
  </section>
</article>

<style>
  article p {
    color: black;
  }

  article > h1 {
    color: blue;
  }

  h2 + p {
    color: red; 
  }

  h1~p {
    color: pink
  }
</style>
image.png

颜色

RGB
通过控制三原色的数量来显示不同的色彩 示例
HSL
H-Hue(色相)取值范围为(0-360)
S-Saturation(饱和度)取值范围为(0-100%)
L-Lightness(亮度)取值范围为(0-100%)
示例
alpha
透明度 取值范围为0-1,可调节颜色透明度,如rgbahsla等,第四参数为透明度值。

字体样式 font-family

定义字体样式类型,如Optima,Georgia等等。通常font-family后面定义多个字体类型,防止有些字体某些设备不支持。
还可以通过@font-face调用服务器上的字体文件来使用
建议

  • 字体列表最后写上通用字体族
  • 英文字体放在中文字体前面

字体大小 font-size

关键字
small、medium、large
长度
px、em
百分数
相对于父元素字体大小
示例

<section>
  <h1>A web font example</h1>
  <p class="note">Notes: Web fonts ...</p>
  <p>With this in mind, let's build...</p>
</section>

<style>
  section {
    font-size: 20px;
  }

  section h1 {
    font-size: 2em;
  }

  section .note {
    font-size: 80%;
    color: orange;
  }
</style>
image.png

字体粗细 font-weight

值可以为100、200、300...900,其中400--normal,700--bold。有些字体不一定有这么多值。

行高 light-height

两行文字间的基准线,即两行文字间的距离。

font属性

可以将字体的多个属性缩写到font一个属性中。

/* 样式 粗细 大小/行高 字体族 */
font: style weight size/height family

其中sizefamily不可省略。

text-align属性

定义文本对齐方式,如center(居中)、left(左对齐)等等。

spacig属性

letter-spacing属性定义字符间的间距。
word-spacing属性定义单词间的间距。

text-indent属性

定义段落首行缩进量。

text-decoration属性

文本修饰属性,可以定义下划线(underline)、删除线(line-through)、上划线(overline)等等。

white-space属性

定义对空白符的处理方式。
normal:默认行为
nowrap:不换行
pre:保留原始代码格式,空格及换行等。
pre-wrap:保留空格同时该换行时会换行。
pre-line:保留换行,但是合并空格。

调试CSS

  • 右键点击页面,选择「检查」
  • 使用 快捷键
    • Ctrl+Shift+I (Windows)
    • Cmd+Opt+I (Mac)

总结

通过本节课的学习,对CSS的流程及构成有了一定的理解,同时对以往学过的CSS知识进行了梳理,完善了以往学习过程中所忽略的一些细节点。