理解CSS | 青训营笔记

87 阅读3分钟

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

什么是CSS

CSS,全称Cascading Style Sheets,层叠样式表,用来定义页面元素的样式,比如:

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

如何使用

在页面中使用CSS主要有三种方式:

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

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

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

CSS选择器

常见选择器

  • 通配选择器(*),给所有元素添加选择器内样式

    *{
    	color:red;
    	font-size:20px;
    }
    
  • 标签选择器,使用标签进行选择,为同标签元素添加样式

    h1{
    	color:orange;
    }
    p{
    	color:gray;
        font-size:20px;
    }
    
  • ID选择器(id要保持唯一性),为拥有指定id的元素添加样式

    #logo{
    	font-size:60px;
        font-weight:200;
    }
    
  • 类选择器(class),为拥有指定类元素添加样式

    .done{
    	color:gray;
    	text-decoration:line-through;
    }
    
  • 属性选择器,为拥有指定属性的元素添加样式

    [disabled]{
    	background:#eee;
    	color:#999;
    }
    

伪类(pseudo-classes)

CSS伪类是用来添加一些选择器的效果,不基于标签和属性定位元素。

状态伪类

这里以<a>举例:

a:link {color:#FF0000;} /* 未访问的链接 */
a:visited {color:#00FF00;} /* 已访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标划过链接 */
a:active {color:#0000FF;} /* 已选中的链接 */

还有一些状态伪类,比如::focus,表示元素获得焦点,可以伪元素添加样式。

结构性伪类

p:first-line:{color:white};	/* 每个<p>元素的第一个行 */
p:first-child:{color:black}; /* 属于任意元素的第一个子元素的<p>元素 */
p:first-letter:{color:blue}; /* 选择每个<p>元素的第一个字母 */

组合选择器

常见的组合方式: image-20220724111055123

选择器组:

body, h1, h2, h3, h4, h5, h6, ul, ol, li {
  margin: 0;
  padding: 0;
}
[type="text"], [type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

CSS颜色

RGB表示方式

通过设置三种颜色的数值(red,green,blue),来决定最终的颜色

rgb(red,green,blue);

比如:rgb(0,0,0)表示黑色,rgb(255,255,255)表示白色

rgb颜色表示方法用可以用#xxxxxx的方式表示,将三种颜色转化为16进制数,#后面每两位表示一个颜色的数值,比如:#000000表示黑色,#0000ff表示蓝色

HSL表示方式

通过设置色相(Hue)、鲜艳度(Saturation)、饱和度(Light)来决定最终的颜色

hsl(hue,saturation,light);

透明度(alpha)

透明度是颜色的另一维度,数值处在0~1之间,以上两种颜色表示方式都可以添加透明度属性,分别使用rgba和hsla来表示

rgba(red,green,blue,alpha);
hsla(hue,saturation,light,alpha)

CSS字体

font属性

font-family: Megrim, Cursive;
font-size: 20px;
font-weight: 100;
  • font-family:字体族,比如:Megrim,宋体等等,英文字体一般放在中文字体前面。
  • font-size:字体大小,常见的关键字有small、medium等等,也可使用长度(px、em)、百分数等等。
  • font-weight:字体粗细,normal(正常)数值为400,bold(粗体)数值为700,并不是所有的字体都支持全部的自重。

文本样式

  • line-height属性,设置行高

  • text-align属性,设置对齐方式

  • spacing属性,单词之间的间距

  • text-decoration属性,文本装饰,设置下划线、上划线以及删除线

  • white-space属性,设置是否省略空格和换行。