CSS基础.docx

上传人:b****6 文档编号:7576503 上传时间:2023-01-25 格式:DOCX 页数:33 大小:237.85KB
下载 相关 举报
CSS基础.docx_第1页
第1页 / 共33页
CSS基础.docx_第2页
第2页 / 共33页
CSS基础.docx_第3页
第3页 / 共33页
CSS基础.docx_第4页
第4页 / 共33页
CSS基础.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

CSS基础.docx

《CSS基础.docx》由会员分享,可在线阅读,更多相关《CSS基础.docx(33页珍藏版)》请在冰豆网上搜索。

CSS基础.docx

CSS基础

1、CSS基础

1.1   CSS简介

需要具备的基础知识

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

•HTML

•XHTML

CSS概述

•CSS指层叠样式表(CascadingStyleSheets)

•样式定义如何显示HTML元素

•样式通常存储在样式表中

•把样式添加到HTML4.0中,是为了解决内容与表现分离的问题

•外部样式表可以极大提高工作效率

•外部样式表通常存储在CSS文件中

•多个样式定义可层叠为一

样式解决了一个普遍的问题

HTML标签原本被设计为用于定义文档内容。

通过使用

这样的标签,HTML的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。

同时文档布局由浏览器来完成,而不使用任何的格式化标签。

由于两种主要的浏览器(Netscape和InternetExplorer)不断地将新的HTML标签和属性(比如字体标签和颜色属性)添加到HTML规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。

为了解决这个问题,万维网联盟(W3C),这个非营利的标准化联盟,肩负起了HTML标准化的使命,并在HTML4.0之外创造出样式(Style)。

所有的主流浏览器均支持层叠样式表。

样式表极大地提高了工作效率

样式表定义如何显示HTML元素,就像HTML3.2的字体标签和颜色属性所起的作用那样。

样式通常保存在外部的.css文件中。

通过仅仅编辑一个简单的CSS文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观。

由于允许同时控制多重页面的样式和布局,CSS可以称得上WEB设计领域的一个突破。

作为网站开发者,你能够为每个HTML元素定义样式,并将之应用于你希望的任意多的页面中。

如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。

多重样式将层叠为一个

样式表允许以多种方式规定样式信息。

样式可以规定在单个的HTML元素中,在HTML页的头元素中,或在一个外部的CSS文件中。

甚至可以在同一个HTML文档内部引用多个外部样式表。

层叠次序

当同一个HTML元素被不止一个样式定义时,会使用哪个样式呢?

一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字4拥有最高的优先权。

1.浏览器缺省设置

2.外部样式表

3.内部样式表(位于标签内部)

4.内联样式(在HTML元素内部)

因此,内联样式(在HTML元素内部)拥有最高的优先权,这意味着它将优先于以下的样式声明:

标签中的样式声明,外部样式表中的样式声明,或者浏览器中的样式声明(缺省值)。

1.2CSS语法

CSS语法由三部分构成:

选择器、属性和值:

selector{property:

value}

选择器(selector)通常是你希望定义的HTML元素或标签,属性(property)是你希望改变的属性,并且每个属性都有一个值。

属性和值被冒号分开,并由花括号包围,这样就组成了一个完整的样式声明(declaration):

1.body {color:

 blue}  

body{color:

blue}

上面这行代码的作用是将body元素内的文字颜色定义为蓝色。

在上述例子中,body是选择器,而包括在花括号内的的部分是声明。

声明依次由两部分构成:

属性和值,color为属性,blue为值。

值的不同写法和单位

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

1.p { color:

 #ff0000; }  

p{color:

#ff0000;}

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

1.p { color:

 #f00; }  

p{color:

#f00;}

我们还可以通过两种方法使用RGB值:

1.p { color:

 rgb(255,0,0); }  

2.p { color:

 rgb(100%,0%,0%); }  

p{color:

rgb(255,0,0);}

p{color:

rgb(100%,0%,0%);}

请注意,当使用RGB百分比时,即使当值为0时也要写百分比符号。

但是在其他的情况下就不需要这么做了。

比如说,当尺寸为0像素时,0之后不需要使用px单位,因为0就是0,无论单位是什么。

记得写引号

提示:

如果值为若干单词,则要给值加引号:

1.p {font-family:

 "sans serif";}  

p{font-family:

"sansserif";}

多重声明:

提示:

如果要定义不止一个声明,则需要用分号将每个声明分开。

下面的例子展示出如何定义一个红色文字的居中段落。

最后一条规则是不需要加分号的,因为分号在英语中是一个分隔符号,不是结束符号。

然而,大多数有经验的设计师会在每条声明的末尾都加上分号,这么的好处是,当你从现有的规则中增减声明时,会尽可能的减少出错的可能性。

就像这样:

1.p {text-align:

center; color:

red;}  

p{text-align:

center;color:

red;}

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

1.p {  

2.  text-align:

 center;  

3.  color:

 black;  

4.  font-family:

 arial;  

5.}  

p{

text-align:

center;

color:

black;

font-family:

arial;

}

空格和大小写敏感

大多数样式表包含不止一条规则,而大多数规则包含不止一个声明。

多重声明和空格的使用使得样式表更容易被编辑:

1.body {  

2.  color:

 #000;  

3.  background:

 #fff;  

4.  margin:

 0;  

5.  padding:

 0;  

6.  font-family:

 Georgia, Palatino, serif;  

7.  }  

body{

color:

#000;

background:

#fff;

margin:

0;

padding:

0;

font-family:

Georgia,Palatino,serif;

}

是否包含空格不会影响CSS在浏览器的工作效果,同样,与XHTML不同,CSS对大小写不敏感。

不过存在一个例外:

如果涉及到与HTML文档一起工作的话,class和id名称对大小写是敏感的。

1.3CSS高级语法

选择器的分组

你可以对选择器进行分组,这样,被分组的选择器就可以分享相同的声明。

用逗号将需要分组的选择器分开。

在下面的例子中,我们对所有的标题元素进行了分组。

所有的标题元素都是绿色的。

1.h1,h2,h2,h3,h5,h6 {  

2.  color:

 green;  

3.  }  

h1,h2,h2,h3,h5,h6{

color:

green;

}

继承及其问题

根据CSS,子元素从父元素继承属性。

但是它并不总是按此方式工作。

看看下面这条规则:

1.body {  

2.     font-family:

 Verdana, sans-serif;  

3.     }  

body{

font-family:

Verdana,sans-serif;

}

根据上面这条规则,站点的body元素将使用Verdana字体(假如访问者的系统中存在该字体的话)。

通过CSS继承,子元素将继承最高级元素(在本例中是body)所拥有的属性(这些子元素诸如p,td,ul,ol,ul,li,dl,dt,和dd)。

不需要另外的规则,所有body的子元素都应该显示Verdana字体,子元素的子元素也一样。

并且在大部分的现代浏览器中,也确实是这样的。

但是在那个浏览器大战的血腥年代里,这种情况就未必会发生,那时候对标准的支持并不是企业的优先选择。

比方说,Netscape4就不支持继承,它不仅忽略继承,而且也忽略应用于body元素的规则。

IE/Windows直到IE6还存在相关的问题,在表格内的字体样式会被忽略。

我们又该如何是好呢?

友善地对待Netscape4

幸运地是,你可以通过使用我们称为"BeKindtoNetscape4"的冗余法则来处理旧式浏览器无法理解继承的问题。

1.body  {  

2.     font-family:

 Verdana, sans-serif;  

3.     }  

4.  

5.p, td, ul, ol, li, dl, dt, dd  {  

6.     font-family:

 Verdana, sans-serif;  

7.     }  

body{

font-family:

Verdana,sans-serif;

}

p,td,ul,ol,li,dl,dt,dd{

font-family:

Verdana,sans-serif;

}

4.0浏览器无法理解继承,不过他们可以理解组选择器。

这么做虽然会浪费一些用户的带宽,但是如果需要对Netscape4用户进行支持,就不得不这么做。

继承是一个诅咒吗?

如果你不希望"Verdana,sans-serif"字体被所有的子元素继承,又该怎么做呢?

比方说,你希望段落的字体是Times。

没问题。

创建一个针对p的特殊规则,这样它就会摆脱父元素的规则:

1.body  {  

2.     font-family:

 Verdana, sans-serif;  

3.     }  

4.  

5.td, ul, ol, ul, li, dl, dt, dd  {  

6.     font-family:

 Verdana, sans-serif;  

7.     }  

8.  

9.p  {  

10.     font-family:

 Times, "Times New Roman", serif;  

11.     }  

body{

font-family:

Verdana,sans-serif;

}

td,ul,ol,ul,li,dl,dt,dd{

font-family:

Verdana,sans-serif;

}

p{

font-family:

Times,"TimesNewRoman",serif;

}

1.4CSS派生选择器

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

在CSS1中,通过这种方式来应用规则的选择器被称为上下文选择器(contextualselectors),这是由于它们依赖于上下文关系来应用或者避免某项规则。

在CSS2中,它们称为派生选择器,但是无论你如何称呼它们,它们的作用都是相同的。

派生选择器允许你根据文档的上下文关系来确定某个标签的样式。

通过合理地使用派生选择器,我们可以使HTML代码变得更加整洁。

比方说,你希望列表中的strong元素变为斜体字,而不是通常的粗体字,可以这样定义一个派生选择器:

1.li strong {  

2.    font-style:

 italic;  

3.    font-weight:

 normal;  

4.  }  

listrong{

font-style:

italic;

font-weight:

normal;

}

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

Html代码

1.

我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用

  

2.  

3.

      

    4.

  1. 我是斜体字。

    这是因为 strong 元素位于 li 元素内。

  2.   

    5.

  3. 我是正常的字体。

  4.   

    6.

  

我是粗体字,不是斜体字,因为我不在列表当中,所以这个规则对我不起作用

  1. 我是斜体字。

    这是因为strong元素位于li元素内。

  2. 我是正常的字体。

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

再看看下面的CSS规则:

1.strong {  

2.     color:

 red;  

3.     }  

4.  

5.h2 {  

6.     color:

 red;  

7.     }  

8.  

9.h2 strong {  

10.     color:

 blue;  

11.     }  

strong{

color:

red;

}

h2{

color:

red;

}

h2strong{

color:

blue;

}

下面是它施加影响的HTML:

Html代码

1.

The strongly emphasized word in this paragraph isred.

  

2.

This subhead is also red.

  

3.

The strongly emphasized word in this subhead isblue.

  

Thestronglyemphasizedwordinthisparagraphisred.

Thissubheadisalsored.

Thestronglyemphasizedwordinthissubheadisblue.

1.5CSS id选择器

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

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

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

1.#red {color:

red;}  

2.#green {color:

green;}  

#red{color:

red;}

#green{color:

green;}

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

Html代码

1.这个段落是红色。

  

2.这个段落是绿色。

  

这个段落是红色。

这个段落是绿色。

注意:

id属性只能在每个HTML文档中出现一次。

想知道原因吗,请参阅XHTML:

网站重构。

id选择器和派生选择器

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

1.#sidebar p {  

2.    font-style:

 italic;  

3.    text-align:

 right;  

4.    margin-top:

 0.5em;  

5.    }  

#sidebarp{

font-style:

italic;

text-align:

right;

margin-top:

0.5em;

}

上面的样式只会应用于出现在id是sidebar的元素内的段落。

这个元素很可能是div或者是表格单元,尽管它也可能是一个表格或者其他块级元素。

它甚至可以是一个内联元素,比如或者,不过这样的用法是非法的,因为不可以在内联元素中嵌入

(如果你忘记了原因,请参阅XHTML:

网站重构)。

一个选择器,多种用法

即使被标注为sidebar的元素只能在文档中出现一次,这个id选择器作为派生选择器也可以被使用很多次:

1.#sidebar p {  

2.    font-style:

 italic;  

3.    text-align:

 right;  

4.    margin-top:

 0.5em;  

5.    }  

6.  

7.#sidebar h2 {  

8.    font-size:

 1em;  

9.    font-weight:

 normal;  

10.    font-style:

 italic;  

11.    margin:

 0;  

12.    line-height:

 1.5;  

13.    text-align:

 right;  

14.    }  

#sidebarp{

font-style:

italic;

text-align:

right;

margin-top:

0.5em;

}

#sidebarh2{

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选择器即使不被用来创建派生选择器,它也可以独立发挥作用:

1.#sidebar {  

2.    border:

 1px dotted #000;  

3.    padding:

 10px;  

4.    }  

#sidebar{

border:

1pxdotted#000;

padding:

10px;

}

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

老版本的Windows/IE浏览器可能会忽略这条规则,除非你特别地定义这个选择器所属的元素:

1.div#sidebar {  

2.    border:

 1px dotted #000;  

3.    padding:

 10px;  

4.    }  

div#sidebar{

border:

1pxdotted#000;

padding:

10px;

}

1.6CSS类选择器

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

1..center {text-align:

 center}  

.center{text-align:

center}

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

在下面的HTML代码中,h1和p元素都有center类。

这意味着两者都将遵守".center"选择器中的规则。

Html代码

1.  

2.This heading will be center-aligned  

3.  

4.  

5.  

6.This paragraph will also be center-aligned.  

7.

  

Thisheadingwillbecenter-aligned

Thisparagraphwillalsobecenter-aligned.

注意:

类名的第一个字符不能使用数字!

它无法在Mozilla或Firefox中起作用。

和id一样,class也可被用作派生选择器:

1..fancy td {  

2.    color:

 #f60;  

3.    background:

 #666;  

4.    }  

.fancytd{

color:

#f60;

background:

#666;

}

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

(名为fancy的更大的元素可能是一个表格或者一个div)

元素也可以基于它们的类而被选择:

1.td.fancy {  

2.    color:

 #f60;  

3.    background:

 #666;  

4.    }  

td.fancy{

color:

#f60;

background:

#666;

}

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

你可以将类fancy分配给任何一个表格元素任意多的次数。

那些以fancy标注的单元格都会是带有灰色背景的橙色。

那些没有被分配名为fancy的类的单元格不会受这条规则的影响。

还有一点值得注意,class为fancy的段落也不会是带有灰色背景的橙色,当然,任何其他被标注为fancy的元素也不会受这条规则的影响。

这都是由于我们书写这条规则的方式,这个效果被限制于被标注为fancy的表格单元(即使用td元素来选择fancy类)。

1.7如何创建CSS?

如何插入样式表

当读到一个样式表时,浏览器会根据它来格式化HTML文档。

插入样式表的方法有三种:

外部样式表

当样式需要应用于很多页面时,外部样式表将是理想的选择。

在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。

每个页面使用标签链接到样式表。

标签在(文档的)

展开阅读全文
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1