CSS入门

1、简介

CSS 指层叠样式表 (Cascading Style Sheets)css

  • 样式定义如何显示 HTML 元素
  • 样式一般存储在样式表中

把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题html

  • 外部样式表能够极大提升工做效率
  • 外部样式表一般存储在 CSS 文件中
  • 多个样式定义可层叠为一

2、语法

2.1 基础语法

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

selector {declaration1; declaration2; ... declarationN }

选择器一般是您须要改变样式的 HTML 元素。编辑器

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

属性(property)是您但愿设置的样式属性(style attribute)。每一个属性有一个值。属性和值被冒号分开。布局

selector {property: value}

下面这行代码的做用是将 h1 元素内的文字颜色定义为红色,同时将字体大小设置为 14 像素。字体

在这个例子中,h1 是选择器,color 和 font-size 是属性,red 和 14px 是值。this

h1 {color:red; font-size:14px;}

下面的示意图为您展现了上面这段代码的结构:url

CSS 语法

提示:请使用花括号来包围声明。spa

 

1)值的不一样写法和单位

除了英文单词 red,咱们还可使用十六进制的颜色值 #ff0000:

p { color: #ff0000; }

为了节约字节,咱们可使用 CSS 的缩写形式:

p { color: #f00; }

咱们还能够经过两种方法使用 RGB 值:

p { color: rgb(255,0,0); }
p { color: rgb(100%,0%,0%); }

请注意,当使用 RGB 百分比时,即便当值为 0 时也要写百分比符号。可是在其余的状况下就不须要这么作了。好比说,当尺寸为 0 像素时,0 以后不须要使用 px 单位,由于 0 就是 0,不管单位是什么。

 

2)记得写引号

提示:若是值为若干单词,则要给值加引号:

p {font-family: "sans serif";}

 

3)多重声明

提示:若是要定义不止一个声明,则须要用分号将每一个声明分开。下面的例子展现出如何定义一个红色文字的居中段落。最后一条规则是不须要加分号的,由于分号在英语中是一个分隔符号,不是结束符号。

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

你应该在每行只描述一个属性,这样能够加强样式定义的可读性,就像这样:

p {
  text-align: center;
  color: black;
  font-family: arial;
}

 

4)空格和大小写

大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。多重声明和空格的使用使得样式表更容易被编辑:

body {
  color: #000;
  background: #fff;
  margin: 0;
  padding: 0;
  font-family: Georgia, Palatino, serif;
  }

 

2.2 高级语法

1)选择器的分组

你能够对选择器进行分组,这样,被分组的选择器就能够分享相同的声明。用逗号将须要分组的选择器分开。在下面的例子中,咱们对全部的标题元素进行了分组。全部的标题元素都是绿色的。

h1,h2,h3,h4,h5,h6 {
  color: green;
  }

 

3、选择器

3.1 派生选择器

经过依据元素在其位置的上下文关系来定义样式,你可使标记更加简洁。

在 CSS1 中,经过这种方式来应用规则的选择器被称为上下文选择器 (contextual selectors),这是因为它们依赖于上下文关系来应用或者避免某项规则。在 CSS2 中,它们称为派生选择器,可是不管你如何称呼它们,它们的做用都是相同的。

派生选择器容许你根据文档的上下文关系来肯定某个标签的样式。经过合理地使用派生选择器,咱们可使 HTML 代码变得更加整洁。

比方说,你但愿列表中的 strong 元素变为斜体字,而不是一般的粗体字,能够这样定义一个派生选择器:

li strong {
    font-style: italic;
    font-weight: normal;
  }

请注意标记为 <strong> 的蓝色代码的上下文关系:

<p><strong>我是粗体字,不是斜体字,由于我不在列表当中,因此这个规则对我不起做用</strong></p>

<ol>
<li><strong>我是斜体字。这是由于 strong 元素位于 li 元素内。</strong></li>
<li>我是正常的字体。</li>
</ol>

在上面的例子中,只有 li 元素中的 strong 元素的样式为斜体字,无需为 strong 元素定义特别的 class 或 id,代码更加简洁。

再看看下面的 CSS 规则:

strong {
     color: red;
     }

h2 {
     color: red;
     }

h2 strong {
     color: blue;
     }

下面是它施加影响的 HTML:

<p>The strongly emphasized word in this paragraph is<strong>red</strong>.</p>
<h2>This subhead is also red.</h2>
<h2>The strongly emphasized word in this subhead is<strong>blue</strong>.</h2>

 

3.2 id 选择器

id 选择器能够为标有特定 id 的 HTML 元素指定特定的样式。

id 选择器以 "#" 来定义。

下面的两个 id 选择器,第一个能够定义元素的颜色为红色,第二个定义元素的颜色为绿色:

#red {color:red;}
#green {color:green;}

下面的 HTML 代码中,id 属性为 red 的 p 元素显示为红色,而 id 属性为 green 的 p 元素显示为绿色。

<p id="red">这个段落是红色。</p>
<p id="green">这个段落是绿色。</p>

 

3.3 id 选择器和派生选择器

在现代布局中,id 选择器经常用于创建派生选择器。

#sidebar p {
	font-style: italic;
	text-align: right;
	margin-top: 0.5em;
	}

上面的样式只会应用于出如今 id 是 sidebar 的元素内的段落。这个元素极可能是 div 或者是表格单元,尽管它也多是一个表格或者其余块级元素。它甚至能够是一个内联元素,好比 <em></em> 或者 <span></span>,不过这样的用法是非法的,由于不能够在内联元素 <span> 中嵌入 <p>。

一个选择器,多种用法

即便被标注为 sidebar 的元素只能在文档中出现一次,这个 id 选择器做为派生选择器也能够被使用不少次:

#sidebar p {
	font-style: italic;
	text-align: right;
	margin-top: 0.5em;
	}

#sidebar h2 {
	font-size: 1em;
	font-weight: normal;
	font-style: italic;
	margin: 0;
	line-height: 1.5;
	text-align: right;
	}

在这里,与页面中的其余 p 元素明显不一样的是,sidebar 内的 p 元素获得了特殊的处理,同时,与页面中其余全部 h2 元素明显不一样的是,sidebar 中的 h2 元素也获得了不一样的特殊处理。

单独的选择器

id 选择器即便不被用来建立派生选择器,它也能够独立发挥做用:

#sidebar {
	border: 1px dotted #000;
	padding: 10px;
	}

根据这条规则,id 为 sidebar 的元素将拥有一个像素宽的黑色点状边框,同时其周围会有 10 个像素宽的内边距(padding,内部空白)。

div#sidebar {
	border: 1px dotted #000;
	padding: 10px;
	}

 

3.4 类选择器

在 CSS 中,类选择器以一个点号显示:

.center {text-align: center}

在上面的例子中,全部拥有 center 类的 HTML 元素均为居中。

在下面的 HTML 代码中,h1 和 p 元素都有 center 类。这意味着二者都将遵照 ".center" 选择器中的规则。

<h1 class="center">
This heading will be center-aligned
</h1>

<p class="center">
This paragraph will also be center-aligned.
</p>

注意:类名的第一个字符不能使用数字!它没法在 Mozilla 或 Firefox 中起做用。

和 id 同样,class 也可被用做派生选择器:

.fancy td {
	color: #f60;
	background: #666;
	}

在上面这个例子中,类名为 fancy 的更大的元素内部的表格单元都会以灰色背景显示橙色文字。(名为 fancy 的更大的元素多是一个表格或者一个 div)

元素也能够基于它们的类而被选择:

td.fancy {
	color: #f60;
	background: #666;
	}

在上面的例子中,类名为 fancy 的表格单元将是带有灰色背景的橙色。

<td class="fancy">

你能够将类 fancy 分配给任何一个表格元素任意多的次数。那些以 fancy 标注的单元格都会是带有灰色背景的橙色。那些没有被分配名为 fancy 的类的单元格不会受这条规则的影响。还有一点值得注意,class 为 fancy 的段落也不会是带有灰色背景的橙色,固然,任何其余被标注为 fancy 的元素也不会受这条规则的影响。这都是因为咱们书写这条规则的方式,这个效果被限制于被标注为 fancy 的表格单元(即便用 td 元素来选择 fancy 类)。

 

3.5 属性选择器

对带有指定属性的 HTML 元素设置样式。

能够为拥有指定属性的 HTML 元素设置样式,而不只限于 class 和 id 属性。

注释:只有在规定了 !DOCTYPE 时,IE7 和 IE8 才支持属性选择器。在 IE6 及更低的版本中,不支持属性选择。

属性选择器

下面的例子为带有 title 属性的全部元素设置样式:

[title]
{
color:red;
}

属性和值选择器

下面的例子为 title="zyy" 的全部元素设置样式:

[title=zyy]
{
border:5px solid blue;
}

属性和值选择器 - 多个值

下面的例子为包含指定值的 title 属性的全部元素设置样式。适用于由空格分隔的属性值:

[title~=hello] { color:red; }

下面的例子为带有包含指定值的 lang 属性的全部元素设置样式。适用于由连字符分隔的属性值:

[lang|=en] { color:red; }

 

设置表单的样式

属性选择器在为不带有 class 或 id 的表单设置样式时特别有用:

input[type="text"]
{
  width:150px;
  display:block;
  margin-bottom:10px;
  background-color:yellow;
  font-family: Verdana, Arial;
}

input[type="button"]
{
  width:120px;
  margin-left:35px;
  display:block;
  font-family: Verdana, Arial;
}

 

4、css 建立

4.1 如何插入样式表

当读到一个样式表时,浏览器会根据它来格式化 HTML 文档。插入样式表的方法有三种:

1)外部样式表

当样式须要应用于不少页面时,外部样式表将是理想的选择。在使用外部样式表的状况下,你能够经过改变一个文件来改变整个站点的外观。每一个页面使用 <link> 标签连接到样式表。<link> 标签在(文档的)头部:

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css" />
</head>

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

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

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

不要在属性值与单位之间留有空格。假如你使用 “margin-left: 20 px” 而不是 “margin-left: 20px” ,它仅在 IE 6 中有效,可是在 Mozilla/Firefox 或 Netscape 中却没法正常工做。

2)内部样式表

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

<head>
<style type="text/css">
  hr {color: sienna;}
  p {margin-left: 20px;}
  body {background-image: url("images/back40.gif");}
</style>
</head>

内联样式

因为要将表现和内容混杂在一块儿,内联样式会损失掉样式表的许多优点。请慎用这种方法,例如当样式仅须要在一个元素上应用一次时。

要使用内联样式,你须要在相关的标签内使用样式(style)属性。Style 属性能够包含任何 CSS 属性。本例展现如何改变段落的颜色和左外边距:

<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>

3)多重样式

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

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

h3 {
  color: red;
  text-align: left;
  font-size: 8pt;
  }

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

h3 {
  text-align: right; 
  font-size: 20pt;
  }

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

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

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

 

 

参考资料

1. CSS 基础语法

相关文章
相关标签/搜索