ife2018 零基础学院 第三天:让简历有点色彩
什么是CSS,CSS是如何工作的!
摘自CSS如何工作
什么是CSS
CSS是一种用于向用户指定文档如何呈现的语言 — 它们如何被指定样式、布局等。
文档通常是用标记语言结构化的文本文件 — HTML 是最常用的标记语言, 但你依然可以遇见一些其他的标记语言,比如 SVG 或者 XML。
CSS如何工作
当浏览器显示文档时,它必须将文档的内容与其样式信息结合。它分两个阶段处理文档:
1. 浏览器将 HTML 和 CSS 转化成 DOM (文档对象模型)。DOM在计算机内存中表示文档。它把文档内容和其样式结合在一起。
2. 浏览器显示 DOM 的内容。
CSS的基本语法是怎样的
摘自CSS 语法
属性和值组成一个声明,多个声明构成声明块,声明块和选择器构成完整的CSS规则
从最基本的层次来看,CSS是由两块内容组合而成的:
* 属性(Propertie):一些人类可理解的标识符,这些标识符指出你想修改哪一些样式,例如:字体,宽度,背景颜色等。
* 属性值(Value):每个指定的属性都需要给定一个值,这个值表示你想把那些样式特征修改成什么样,例如,你想把字体,宽度或背景颜色改成什么。
与值配对的属性被称为CSS声明。CSS声明会被放置在一个CSS声明块中。最后,CSS声明块与选择器相结合形成一个CSS规则集(或CSS规则)。
CSS声明
属性和属性值之间,用英文半角冒号 (:) 隔离,如下图所示。
CSS声明块
声明按块分组,每一组声明都用一对大括号包裹,用 (
{
) 开始,用 (}
) 结束。
声明块里的每一个声明必须用半角分号(;
)分隔,否则代码会不生效(至少不会按预期结果生效)。声明块里的最后一个声明结束的地方,不需要加分号,但是最后加分号是个好习惯,因为可以防止在后续增加声明时忘记加分号。
CSS 选择器和规则
我们的拼图还少了一块——我们需要讨论一下如何告知我们的声明块:哪些元素是它们需要应用的。通过在每个声明块前加上选择器(selector)来>完成这一动作,选择器是一种模式,它能在页面上匹配一些元素。这将使相关的声明仅被应用到被选择的元素上。选择器加上声明块被称为规则集>(ruleset),通常简称规则(rule)。
CSS选择器是什么概念,简单选择器和属性选择器是什么
CSS选择器是什么概念
在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。
选择器是一种模式,它能在页面上匹配一些元素。选择器加上声明块被称为规则集(ruleset),通常简称规则(rule)。
简单选择器是什么
摘自简单选择器
简单选择器(Simple selectors):通过元素类型、class 或 id 匹配一个或多个元素。
属性选择器是什么
摘自属性选择器
属性选择器(Attribute selectors):通过 属性 / 属性值 匹配一个或多个元素。
文本样式都有哪些相关属性,对应哪些值
参考自基本文本和字体样式
用于样式文本的 CSS 属性通常可以分为两类。
* 字体样式: 作用于字体的属性,会直接应用到文本中,比如使用哪种字体,字体的大小是怎样的,字体是粗体还是斜体,等等。
* 文本布局风格: 作用于文本的间距以及其他布局功能的属性,比如,允许操纵行与字之间的空间,以及在内容框中,文本如何对齐。
字体
颜色
参考
CSS的值和单位 - 颜色
<color>
HTML 颜色
color 属性设置选中元素的前景内容的颜色
描述color值的方式有颜色名(色彩关键字)、Color HEX(RBG十六进制数,例如#000000对应黑色)、Color RGB(rgb(0,0,0))
色彩关键字
色彩关键字是不区分大小写的标识符,它表示一个具体的颜色,例如
red, blue, brown, lightseagreen
。
rgb()
颜色可以使用红-绿-蓝(red-green-blue (RGB))模式的两种方式被定义:
十六进制符号 #RRGGBB 和 #RGB
* “#
” 后跟6位十六进制字符(0-9, A-F)
* “#
” 后跟3位十六进制字符(0-9, A-F)。
三位数的 RGB 符号(#RGB)和六位数的形式(#RRGGBB)是相等的。
例如, #f03 和 #ff0033 代表同样的颜色。
函数符 rgb(R,G,B)
“rgb
” 后跟3个<integer>
或3个<percentage>
值。
整数 255 相当于 100%,和十六进制符号里的 F 或 FF 。
/* These examples all specify the same RGB color: */ #f03 #F03 #ff0033 #FF0033 rgb(255,0,51) rgb(255, 0, 51) rgb(255, 0, 51.2) /* ERROR! Don't use fractions, use integers */ rgb(100%,0%,20%) rgb(100%, 0%, 20%) rgb(100%, 0, 20%) /* ERROR! Don't mix up integer and percentage notation */
hsl()
颜色也可以使用 hsl() 函数符被定义为色相-饱和度-明度(Hue-saturation-lightness)模式。HSL 相比 RGB 的优点是更加直观:你可以估算你想要
的颜色,然后微调。它也更易于创建相称的颜色集合。(通过保持相同的色相并改变明度/暗度和饱和度)。色相(Hue)表示色环(即代表彩虹的一个圆环)的一个角度。这个角度作为一个无单位的
<number>
被给出。定义 red=0=360,其它颜色分散于圆环,所以 green=120, blue=240,以此类推。作为一个角度,它隐含像 -120=240 和 480=120 这样的回环。饱和度和明度由百分数来表示。
100%
是满饱和度,而0%
是一种灰度。
100%
明度是白色,0%
明度是黑色,而50%
明度是“一般的”。
hsl(0, 100%,50%) /* red */
hsl(30, 100%,50%)
hsl(60, 100%,50%)
hsl(90, 100%,50%)
hsl(120,100%,50%) /* green */
hsl(150,100%,50%)
hsl(180,100%,50%)
hsl(210,100%,50%)
hsl(240,100%,50%) /* blue */
hsl(270,100%,50%)
hsl(300,100%,50%)
hsl(330,100%,50%)
hsl(360,100%,50%) /* red */
hsl(120,100%,25%) /* dark green */
hsl(120,100%,50%) /* green */
hsl(120,100%,75%) /* light green */
hsl(120,100%,50%) /* green */
hsl(120, 67%,50%)
hsl(120, 33%,50%)
hsl(120, 0%,50%)
hsl(120, 60%,70%) /* pastel green */
rgba()
颜色可以使用 rgba() 函数符在红-绿-蓝-阿尔法(RGBa)模式下被定义。RGBa 扩展了 RGB 颜色模式,它包含了阿尔法通道,允许设定一个颜色的透明度。
* a *表示透明度:0=透明;1=不透明;
rgba(255,0,0,0.1) /* 10% opaque red */
rgba(255,0,0,0.4) /* 40% opaque red */
rgba(255,0,0,0.7) /* 70% opaque red */
rgba(255,0,0, 1) /* full opaque red */
hsla()
颜色可以使用 hsla() 函数符在色相-饱和度-明度-阿尔法(HSLa)模式下被定义。HSLa 扩展自 HSL 颜色模式,包含了阿尔法通道,可以规定一个颜色的透明度。
a 表示透明度:0=透明;1=不透明;
hsla(240,100%,50%,0.05) /* 5% opaque blue */
hsla(240,100%,50%, 0.4) /* 40% opaque blue */
hsla(240,100%,50%, 0.7) /* 70% opaque blue */
hsla(240,100%,50%, 1) /* full opaque blue */
字体种类
要在你的文本上设置一个不同的字体,你可以使用 font-family 属性,这个允许你为浏览器指定一个字体 (或者一个字体的列表),然后浏览器可以将这种字体应用到选中的元素上。
p {
font-family: arial;
}
字体栈 : 由于你无法保证你想在你的网页上使用的字体的可用性 (甚至一个网络字体可能由于某些原因而出错), 你可以提供一个字体栈 (font stack),这样的话,浏览器就有多种字体可以选择了。
p {
font-family: "Trebuchet MS", Verdana, sans-serif;
}
字体大小
px
(像素): 将像素的值赋予给你的文本。这是一个绝对单位, 它导致了在任何情况下,页面上的文本所计算出来的像素值都是一样的。em
: 1em 等于我们设计的当前元素的父元素上设置的字体大小rem
: 这个单位的效果和em
差不多,除了 1rem
等于 HTML 中的根元素的字体大小, (i.e.<html>
) ,而不是父元素。
字体样式,字体粗细,文本转换和文本装饰
CSS 提供了 4 种常用的属性来改变文本的样子:
*font-style
: 用来打开和关闭文本 italic (斜体)。
*normal
: 将文本设置为普通字体 (将存在的斜体关闭)
*italic
: 如果当前字体的斜体版本可用,那么文本设置为斜体版本;如果不可用,那么会利用oblique
状态来模拟italics
。
*oblique
: 将文本设置为斜体字体的模拟版本,也就是将普通文本倾斜的样式应用到文本中。
*font-weight
: 设置文字的粗体大小。
*normal
,bold
: 普通或者加粗的字体粗细
*lighter
,bolder
: 将当前元素的粗体设置为比其父元素粗体更细或更粗一步。100
–900
: 数值粗体值,如果需要,可提供比上述关键字更精细的粒度控制。
*text-transform
: 允许你设置要转换的字体。值包括:
*none
: 防止任何转型。
*uppercase
: 将所有文本转为大写。
*lowercase
: 将所有文本转为小写。
*capitalize
: 转换所有单词让其首字母大写。
*full-width
: 将所有字形转换成固定宽度的正方形,类似于等宽字体,允许对齐。拉丁字符以及亚洲语言字形(如中文,日文,韩文)
*text-decoration
: 设置/取消字体上的文本装饰 (你将主要使用此方法在设置链接时取消设置链接上的默认下划线。) 可用值为:
*none
: 取消已经存在的任何文本装饰。
*underline
: 文本下划线.
*overline
: 文本上划线
*line-through
: 穿过文本的线
文字阴影
你可以为你的文本应用阴影,使用 text-shadow 属性。这最多需要 4 个值,如下例所示:
text-shadow: 4px 4px 5px red;
4 个属性如下:
1. 阴影与原始文本的水平偏移,可以使用大多数的 CSS 单位 length and size units, 但是 px 是比较合适的。这个值必须指定。
2. 阴影与原始文本的垂直偏移;效果基本上就像水平偏移,除了它向上/向下移动阴影,而不是左/右。这个值必须指定。
3. 模糊半径 - 更高的值意味着阴影分散得更广泛。如果不包含此值,则默认为0,这意味着没有模糊。可以使用大多数的 CSS 单位 length and size units
4. 阴影的基础颜色,可以使用大多数的 CSS 颜色单位 CSS color unit. 如果没有指定,默认为 black.
文本布局
文本对齐
text-align
属性用来控制文本如何和它所在的内容盒子对齐。
*left
: 左对齐文本。
*right
: 右对齐文本。
*center
: 居中文字
*justify
: 使文本展开,改变单词之间的差距,使所有文本行的宽度相同。
行高
line-height
属性设置文本每行之间的高,可以接受大多数单位 length and size units,不过也可以设置一个无单位的值,作为乘数,通常这种是比较好的做法。无单位的值乘以 font-size 来获得 line-height。当行与行之间拉开空间,正文文本通常看起来更好更容易阅读。推荐的行高大约是 1.5–2 (双倍间距。) 所以要把我们的文本行高设置为字体高度的1.5倍,你可以使用这个:
line-height: 1.5;
字母和字间距
letter-spacing 和 word-spacing 属性允许你设置你的文本中的字母与字母之间的间距、或是字与字之间的间距。
它们可以接受大多数单位length and size units
p::first-line { letter-spacing: 2px; word-spacing: 4px; }