0%

CSS

CSS 简介

在学习之前,需要对下面的知识有基本了解

  • HTML/XHTML

什么是CSS

  • CSS 指层叠样式表(Cascading Style Sheets)
  • 样式定义如何显示 HTML元素
  • 样式通常存储在样式表
  • 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
  • 外部样式表可以极大提高工作效率
  • 外部样式表通常存储在 CSS 文件
  • 多个样式定义可层叠 为一个

样式解决了一个很大的问题

HTML 标签原本被设计为用于定义文档内容,如下实例:

1
2
3
<h1>
这是一个标题
</h1>

样式表定义如何显示HTML元素,就像 HTML 中 的字体标签和颜色属性所起的作用那样。样式通常保存在外部的 .css 文件中。我们只需要编辑一个简单的CSS 文档就可以改变所有页面的布局和外观

CSS 语法

CSS实例

CSS规则由两个主要的部分构成:选择器,以及一条或多条声明

image-20211010222156038

选择器通常是你需要改变样式的HTML元素。

每条声明由一个属性和一个值组成

属性(property)是你希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。

CSS 声明总是以分号(;)结束,声明总以大括号({})括起来:

1
p {color:red;text-align:center;}

为了让CSS可读性更强,你可以每行只设置一个属性:

1
2
3
4
5
p
{
color:red;
text-align:center;
}

CSS 注释

注释是用来解释你的代码,并且可以随意编辑它,浏览器会忽略它。

CSS注释以 /* 开始,以 ***/** 结束,实例如下:

1
2
3
4
5
6
7
8
/*这是个注释*/
p
{
text-align:center;
/*这是另一个注释*/
color:black;
font-family:arial;
}

CSS Id 和 Class

id 和 class 选择器

如果你要在HTML元素中设置CSS 样式,你需要在元素中设置“id”和”class”选择器

id 选择器

id 选择器可以为标有特定 id 的HTML元素指定特定的样式

HTML元素以id 属性来设置id 选择器,CSS中id 选择器以”#” 来定义

以下的样式规则应用于元素属性 id=”para1”:

1
2
3
4
5
#para1
{
text-align:center;
color:red;
}

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
2
3
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

浏览器会从 mystyle.css 中读到样式声明,并根据它来格式文档。

外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子

1
2
3
hr {color:sienna;}
p {margin-left:20px;}
body {background-image:url("/images/back40.gif");}

不要在属性值与单位之间留有空格(如:“*margin-left: 20 px“),正确的写法是”margin-left: 20px“。*

内部样式表

当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用<style>标签在文档头部定义内部样式表,比如:

1
2
3
4
5
6
7
<head>
<style>
hr {color:sienna;}
p {margin-left:200px;}
body {background-image:url("images/back40.gif");}
</style>
</head>

内联样式

由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style属性可以包含任何 CSS 属性。

本例展示如何改变段落的颜色和左外边距:

1
2
3
<p style="color:sienna;margin-left:20px">
这是一个段落
</p>

多重样式

如果某些属性在不同的样式表中被同样的选择器定义,那么属性值将从更具体的样式表中被继承过来。

例如,外部样式表拥有针对 h3 选择器的三个属性:

1
2
3
4
5
6
h3
{
color:red;
text-align:left;
font-size:8pt;
}

而内部样式表拥有针对 h3 选择器的两个属性:

1
2
3
4
5
h3
{
text-align:right;
font-size:20pt;
}

例如拥有内部样式表的这个页面同时与外部样式表链接,那么 h3 得到的样式是:

1
2
3
color:red;
text-align:right;
font-size:20pt;

即颜色属性将被继承于外部样式表,而文字排列(text-alignment)和字体尺寸(font-size)会被内部样式表中的规则取代。

多重样式优先级

样式表允许以多种方式规定样式信息。样式可以规定在单个的HTML 元素中,在 HTML 页的头元素中,或在一个外部的 CSS 文件中。甚至可以在同一个 HTML 文档内部引用多个外部样式表。

一般情况下,优先级如下:

(内联样式)Inline style > (内部样式) Internal style sheet > (外部样式)External style sheet > 浏览器默认样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<head>
<!-- 外部样式 style.css-->
<link rel="styelsheet" type="text/css" href="style.css"/>
<!-- 设置: h3{color:blue;}-->
<style type="text/css">
/* 内部样式 */
h3{color:green;}
</style>
</head>

<body>
<h3>
测试!
</h3>
</body>

注意:如果外部样式表放在内部样式表的后面,则外部样式表将覆盖内部样式。

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
2
3
h1 {background-color:#6495ed;}
p {background-color:#e0ffff;}
div {background-color:#b0c4de;}

背景图像

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
2
3
4
body
{
background:#00ff00 url('smiley.gif') no-repeat fixed center;
}

浏览器支持

表格中的数字表示支持该属性的第一个浏览器版本号。

image-20211019085501616

所有主流浏览器都支持 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
2
3
4
5
6
7
8
9
10
11
12
body
{
background-color:yellow;
}
h1
{
background-color:#00ff00;
}
p
{
background-color:rgb(255,0,255);
}

标签定义及使用说明

background-color属性设置一个元素的背景颜色。

元素的背景是元素的总大小,包括填充和边界(但不包括边距)

默认值: transparent
继承: no
版本: CSS1
JavaScript 语法: object object.style.backgroundColor="00FF00"

浏览器支持

表格中的数字表示支持该属性的第一个浏览器版本号

image-20211019091642568

提示和注释

使用背景色和文本颜色,使文本易于阅读。

属性值

描述
color 指定背景颜色。在CSS 颜色值尽可能的寻找一个颜色值的完整列表
transparent 指定背景颜色应该是透明的。这是默认。
inherit 指定背景颜色,应该从父元素继承
-------------本文结束感谢您的阅读-------------