CSS 简介
在学习之前,需要对下面的知识有基本了解
- HTML/XHTML
什么是CSS
- CSS 指层叠样式表(Cascading Style Sheets)
- 样式定义如何显示 HTML元素
- 样式通常存储在样式表中
- 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
- 外部样式表可以极大提高工作效率
- 外部样式表通常存储在 CSS 文件 中
- 多个样式定义可层叠 为一个
样式解决了一个很大的问题
HTML 标签原本被设计为用于定义文档内容,如下实例:
1 | <h1> |
样式表定义如何显示HTML元素,就像 HTML 中 的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只需要编辑一个简单的CSS 文档就可以改变所有页面的布局和外观
CSS 语法
CSS实例
CSS规则由两个主要的部分构成:选择器,以及一条或多条声明
选择器通常是你需要改变样式的HTML元素。
每条声明由一个属性和一个值组成
属性(property)是你希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
CSS 声明总是以分号(;)结束,声明总以大括号({})括起来:
1 | p {color:red;text-align:center;} |
为了让CSS可读性更强,你可以每行只设置一个属性:
1 | p |
CSS 注释
注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。
CSS注释以 /* 开始,以 ***/** 结束,实例如下:
1 | /*这是个注释*/ |
CSS Id 和 Class
id 和 class 选择器
如果你要在HTML元素中设置CSS 样式,你需要在元素中设置“id”和”class”选择器
id 选择器
id 选择器可以为标有特定 id 的HTML元素指定特定的样式
HTML元素以id 属性来设置id 选择器,CSS中id 选择器以”#” 来定义
以下的样式规则应用于元素属性 id=”para1”:
1 | #para1 |
ID属性不要以数字开头,数字开头的ID在Mozilla/Firefox 浏览器不起作用
class 选择器
class 选择器用于描述一组元素的样式,class 选择器有别于id 选择器,class 可以在多个元素中使用。
class 选择器在 HTML中以 class 属性表示,在CSS 中,类选择器以一个点”.”显示:
在以下的例子中,所有用于 center 类的HTML元素均为居中
1 | .center {text-align:center;} |
你也可以指定特定的HTML元素使用class
在以下实例汇总,所有的p元素使用 class=”center”让该元素的文本居中:
1 | p.center {text-align:center;} |
类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用
CSS 创建
当读到一个样式表,浏览器会根据它来格式化 HTML 文档。
如何插入样式表
插入样式表的方法有三种:
- 外部样式表(External style sheet)
- 内部样式表(Internal style sheet)
- 内联样式(Inline style)
外部样式表
当样式需要应用于很多页面时,外部样式将是理想的选择。在使用外部样式表的情况下,你可以通过一个文件来改变整个站点的外观。每个页面使用<link>标签链接到样式表。<link>标签在(文档的)头部:
1 | <head> |
浏览器会从 mystyle.css 中读到样式声明,并根据它来格式文档。
外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子
1 | hr {color:sienna;} |
不要在属性值与单位之间留有空格(如:“*margin-left: 20 px“),正确的写法是”margin-left: 20px“。*
内部样式表
当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用<style>标签在文档头部定义内部样式表,比如:
1 | <head> |
内联样式
由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。
要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style属性可以包含任何 CSS 属性。
本例展示如何改变段落的颜色和左外边距:
1 | <p style="color:sienna;margin-left:20px"> |
多重样式
如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。
例如,外部样式表拥有针对 h3 选择器的三个属性:
1 | h3 |
而内部样式表拥有针对 h3 选择器的两个属性:
1 | h3 |
例如拥有内部样式表的这个页面同时与外部样式表链接,那么 h3 得到的样式是:
1 | color:red; |
即颜色属性将被继承于外部样式表,而文字排列(text-alignment)和字体尺寸(font-size)会被内部样式表中的规则取代。
多重样式优先级
样式表允许以多种方式规定样式信息。样式可以规定在单个的HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。
一般情况下,优先级如下:
(内联样式)Inline style > (内部样式) Internal style sheet > (外部样式)External style sheet > 浏览器默认样式
1 | <head> |
注意:如果外部样式表放在内部样式表的后面,则外部样式表将覆盖内部样式。
CSS Backgrounds(背景)
CSS 背景属性用于定义 HTML 元素的背景。
CSS 属性定义背景效果:
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
背景颜色
background-color 属性定义了元素的背景颜色。
页面的背景颜色使用在 body 的选择器中:
1 | body {background-color:#b0c4de;} |
CSS 中,颜色值通常以以下方式定义:
- 十六进制 - 如:”#ff0000”
- RGB - 如:”rgb(255,0,0)”
- 颜色名称 - 如:”red”
以下实例中,h1,p,和 div 元素拥有不同的背景颜色:
1 | h1 {background-color:#6495ed;} |
背景图像
background-image 属性描述了元素的背景图像。
默认情况下,背景图像进行平铺重复显示,以覆盖整个元素实体
页面背景图片设置实例:
1 | body {background-image:url('paper.gif');} |
背景图像 - 水平或垂直平铺
默认情况下 background-image 属性会在页面的水平或者垂直方向平铺
一些图像如果在水平方向与垂直方向平铺,这样看起来很不协调,
背景 - 简写属性
为了简化这些属性的代码,我们可以将这些属性合并在同一个属性中
背景颜色的简写属性为 “background”
1 | body {background:#ffffff url('img_tree.png') no-repeat right top;} |
当使用简写属性时,属性值的顺序为:
- background-color
- background-image
- background-repeat
- background-attachment
- background-position
以上属性无需全部使用,可以按照页面的实际需要使用
CSS 背景属性
Property | 描述 |
---|---|
background | 简写属性,作用是将背景属性设置在一个声明中。 |
background-attachment | 背景属性是否固定或者随着页面的其余部分滚动。 |
background-color | 设置元素的背景颜色 |
background-image | 把图像设置为背景 |
background-position | 设置背景图像的起始位置 |
background-repeat | 设置背景图像是否及如何重复。 |
background 属性
实例
在一个div元素中设置多个背景图像(并指定他们的位置)
1 | body |
浏览器支持
表格中的数字表示支持该属性的第一个浏览器版本号。
所有主流浏览器都支持 background 属性。
注意:IE8 和更早版本不支持一个元素对个背景图像。
注意:IE7 和更早的版本不支持“继承”的值。IE8 需要定义 ! DOCTYPE。 IE9支持“继承”。
标签定义及使用说明
背景缩写属性可以在一个声明中设置所有的背景属性。
可以设置的属性为:background-color、background-position、background-size、background-repeat、background-origin、background-clip、background-attachment和background-image。
各值之间用空格分割,不分先后顺序。可以只有其中的某些值,例如**background: #FF0000 URL (smiley.gif);**是允许的。
默认值: | 请参阅单独的属性 |
---|---|
继承: | no |
版本: | CSS1+CSS3中的新属性 |
JavaScript 语法: | object object.style.background="rel url(smiley.gif) top left no-repeat" |
语法
1 | background:bg-color bg-image position/bg-size bg-repeat bg-origin bg-clip bg-attachment initial|inherit; |
background-color属性
1 | body |
标签定义及使用说明
background-color属性设置一个元素的背景颜色。
元素的背景是元素的总大小,包括填充和边界(但不包括边距)
默认值: | transparent |
---|---|
继承: | no |
版本: | CSS1 |
JavaScript 语法: | object object.style.backgroundColor="00FF00" |
浏览器支持
表格中的数字表示支持该属性的第一个浏览器版本号
提示和注释
使用背景色和文本颜色,使文本易于阅读。
属性值
值 | 描述 |
---|---|
color | 指定背景颜色。在CSS 颜色值尽可能的寻找一个颜色值的完整列表 |
transparent | 指定背景颜色应该是透明的。这是默认。 |
inherit | 指定背景颜色,应该从父元素继承 |