爱心论坛互帮互助平面设计 网页设计 → [网页设计]CSS入门之二

分享到:

  共有3813人关注过本帖树形打印复制链接

主题:[网页设计]CSS入门之二

帅哥哟,离线,有人找我吗?
紫枫
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 等级:论坛版主 帖子:470 精华:1 积分:4685 金钱:10304 金币:0 魅力:2698 威望:0 登陆:90 注册:2006/8/1 13:01:29 近访:2008/9/12 13:39:10 在线:在线0天0小时0分钟.
离升级差0天20小时0分钟.
目前等级0
[网页设计]CSS入门之二  发帖心情 Post By:2007/9/1 22:57:49 [只看该作者]

贴子已被锁定

前面我们了解了CSS的语法,但要想在浏览器中显示出效果,就要让浏览器识别并调用。当浏览器读取样式表时,要依照文本格式来读,这里介绍四种在页面中插入样式表的方法:链入外部样式表内部样式表导入外表样式表内嵌样式

1. 链入外部样式表

链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用<link>标记链接到这个样式表文件,这个<link>标记必须放到页面的<head>区内,如下:

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

上面这个例子表示浏览器从mystyle.css文件中以文档格式读出定义的样式表。rel=”stylesheet”是指在页面中使用这个外部的样式表。type=”text/css”是指文件的类型是样式表文本。href=”mystyle.css”是文件所在的位置。media是选择媒体类型,这些媒体包括:屏幕,纸张,语音合成设备,盲文阅读设备等。

一个外部样式表文件可以应用于多个页面。当你改变这个样式表文件时,所有页面的样式都随之而改变。在制作大量相同样式页面的网站时,非常有用,不仅减少了重复的工作量,而且有利于以后的修改、编辑,浏览时也减少了重复下载代码。

样式表文件可以用任何文本编辑器(例如:记事本)打开并编辑,一般样式表文件扩展名为.css。内容是定义的样式表,不包含HTML标记,mystyle.css这个文件的内容如下:

hr {color: sienna}
p {margin-left: 20px}
body {background-image: url("images/back40.gif")}
/*定义水平线的颜色为土黄;段落左边的空白边距为20象素;页面的背景图片为images目录下的back40.gif文件*/

2. 内部样式表

内部样式表是把样式表放到页面的<head>区里,这些定义的样式就应用到页面中了,样式表是用<style>标记插入的,从下例中可以看出<style>标记的用法:

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

注意:有些低版本的浏览器不能识别style标记,这意味着低版本的浏览器会忽略style标记里的内容,并把style标记里的内容以文本直接显示到页面上。为了避免这样的情况发生,我们用加HTML注释的方式(<!-- 注释 -->)隐藏内容而不让它显示:

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

3. 导入外部样式表

导入外部样式表是指在内部样式表的<style>里导入一个外部样式表,导入时用@import,看下面这个实例:

<head>
……
<style type=”text/css”>
<!--
@import “mystyle.css”
其他样式表的声明
-->
</style>
……
</head>

例中@import “mystyle.css”表示导入mystyle.css样式表,注意使用时外部样式表的路径。方法和链入样式表的方法很相似,但导入外部样式表输入方式更有优势。实质上它相当于存在内部样式表中的。
注意:导入外部样式表必须在样式表的开始部分,在其他内部样式表上面。

4. 内嵌样式

内嵌样式是混合在HTML标记里使用的,用这种方法,可以很简单的对某个元素单独定义样式。内嵌样式的使用是直接将在HTML标记里加入style参数。而style参数的内容就是CSS的属性和值,如下例:

<p style="color: sienna;margin-left: 20px;">
这是一个段落
</p>
<!--这个段落颜色为土黄,左边距为20象素-->

在style参数后面的引号里的内容相当于在样式表大括号里的内容。
注意:style参数可以应用于任意BODY内的元素(包括BODY本身),除了BASEFONT、PARAM和SCRIPT。

5. 多重样式表的叠加

上一章里我们已经提到样式表的层叠顺序,这里我们讨论插入样式表的这几种方法的叠加,如果在同一个选择器上使用几个不同的样式表时,这个属性值将会叠加几个样式表,遇到冲突的地方会以最后定义的为准。例如,我们首先链入一个外部样式表,其中定义了h3选择符的color 、text-alig和font-size属性:

h3
{
color: red;
text-align: left;
font-size: 8pt;
}
/*标题3的文字颜色为红色;向左对齐;文字尺寸为8号字*/

然后在内部样式表里也定义了h3选择符的text-align和font-size属性:

h3
{
text-align: right;
font-size: 20pt;
}
/*标题3文字向右对齐;尺寸为20号字*/

那么这个页面叠加后的样式就是:

color: red;
text-align: right;
font-size: 20pt;
/*文字颜色为红色;向右对齐;尺寸为20号字*/

字体颜色从外部样式表里保留下来,而对齐方式和字体尺寸都有定义时,按照后定义的优先而依照内部样式表。

注意:依照后定义的优先,所以优先级最高的是[s]内嵌样式[/s],[s]内部样式表[/s]高于[s]导入外部样式表[/s],[s]链入的外部样式表[/s]和[s]内部样式表[/s]之间是最后定义的优先级高。

一.选择符模式
模式/含义/内容描述

*
匹配任意元素。(通用选择器)
E
匹配任意元素 E (例如一个类型为 E 的元素)。(类型选择器)
E F
匹配元素 E 的任意后代元素 F 。(后代选择器)
E > F
匹配元素 E 的任意子元素 F 。(子选择器)
E:first-child
当元素 E 是它的父元素中的第一个子元素时,匹配元素 E 。(:first-child 伪类)
E:link E:visited
如果 E 是一个目标还没有访问过(:link)或者已经访问过(:visited)的超链接的源锚点时匹配元素 E 。(link 伪类)
E:active E:hover E:focus
在确定的用户动作中匹配 E 。(动态伪类)
E:lang(c)
如果类型为 E 的元素使用了(人类)语言 c (文档语言确定语言是如何被确定的),则匹配该元素。(:lang() 伪类)
E + F
如果一个元素 E 直接在元素 F 之前,则匹配元素 F 。(临近选择器)
E[foo]
匹配具有”foo”属性集(不考虑它的值)的任意元素 E 。(属性选择器)
E[foo="warning"]
匹配其“foo”属性值严格等于“warning”的任意元素 E 。(属性选择器)
E[foo~="warning"]
匹配其“foo”属性值为空格分隔的值列表,并且其中一个严格等于“warning”的任意元素 E 。(属性选择器)
E[lang|="en"]
匹配其“lang”属性具有以“en”开头(从左边)的值的列表的任意元素 E 。(属性选择器)
DIV.warning
仅 HTML。用法同 DIV[class~="warning"]。(类选择器)
E#myid
匹配 ID 等于“myid”的任意元素 E 。(ID 选择器)


引用:
--------------------------------------------------------------------------------
From:http://www.w3.org/TR/CSS2/selector.html
--------------------------------------------------------------------------------

我们用下面的例子来解释“[s]父元素[/s]”、“[s]子元素[/s]”、“[s]父/子[/s]”及“[s]相邻[/s]”这几个概念。

<div title="这是一个div">
 <h1>这是是h1的内容</h1>
 <p>这是一个段落p的内容!<strong>这里是strong的内容</strong>这是一个段落p的内容!</p>
</div>

从以上代码中,我们可以找出这样的关系:
[list]
[*] h1 和 p 同为 div 的“儿子”,两者分别同 div 形成“父/子”关系。
[*] h1,p,strong 都是 div 的“子元素”。(三者都包含在 div 之内)
[*] div 是 h1 和 p 的“父元素”。
[*] strong 和 p 形成“父/子”关系,strong 的“父元素”是 p 。
[*] 但 strong 和 div 并非“父/子”关系,而是“祖孙”关系,但 strong 依然是 div 的“子(孙)元素”。
[*] div 是 h1 p strong 三者的“祖先”,三者是 div 的“子(孙)元素”。
[*] h1 和 p 两者是相邻的。
[/list]

继承上面的实例来具体演示一下E F的关系:假如,我们需要将 strong 内的内容二字变为绿色,我们可以有哪些方法呢?

div strong {color:green;} /* - 正确。strong 是 div 的“子元素”*/
p > strong {color:green;} /* - 正确。strong 和 p 是“父/子”关系*/
div > strong {color:green;} /* - 错误!strong 虽然是 div 的“子(孙)元素”,但两者乃是“祖孙”关系,而非“父/子”关系,因此不能用 > 符号连接*/

临近选择器和通用选择器:通用选择器以星号“*”表示,可以用于替代任何 tag 。

实例:

 h2 + * { color:green }/*所有紧随 h2 的元素内的文字都将呈现红色*/

二.选择符分类介绍

1.通配选择符

语法:
* { sRules }

说明:
通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。

示例:
*[lang=fr] { font-size:14px; width:120px; }
*.div { text-decoration:none; }

2.类型选择符

语法:
E { sRules }

说明:
类型选择符。以文档语言对象(Element)类型作为选择符。

示例:
td { font-size:14px; width:120px; }
a { text-decoration:none; }

3.属性选择符

语法:
E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }

说明:
属性选择符。
选择具有 attr 属性的 E
选择具有 attr 属性且属性值等于 value 的 E
选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格
选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E

示例:
h[title] { color: blue; }
/* 所有具有title属性的h对象 */
 
span[class=demo] { color: red; }
 
div[speed="fast"][dorun="no"] { color: red; }
 
a[rel~="copyright"] { color:black; }

4.包含选择符

语法:
E1 E2 { sRules }

说明:
包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。

示例:
table td { font-size:14px; }
div.sub a { font-size:14px; }

5.子对象选择符

语法:
E1 > E2 { sRules }

说明:
子对象选择符。选择所有作为 E1 子对象的 E2 。

示例:
body > p { font-size:14px; }
/* 所有作为body的子对象的p对象字体尺寸为14px */
 
div ul>li p { font-size:14px; }

6.ID选择符

语法:
#ID { sRules }

说明:
ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。

示例:
#note { font-size:14px; width:120px;}

7.类选择符

语法:
E.className { sRules }

说明:
类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。
在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class="class1 class2">。

示例:
div.note { font-size:14px; }
/* 所有class属性值等于(包含)"note"的div对象字体尺寸为14px */
 
.dream { font-size:14px; }
/* 所有class属性值等于(包含)"note"的对象字体尺寸为14px */

8.选择符分组

语法:
E1 , E2 , E3 { sRules }

说明:
选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。

示例:
.td1,div a,body { font-size:14px; }
td,div,a { font-size:14px; }

9.伪类及伪对象选择符

语法:
E : Pseudo-Classes { sRules }
E : Pseudo-Elements { sRules }

说明:
伪类及伪对象选择符。
伪类选择符。请参阅伪类( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
伪对象选择符。请参阅伪对象( Pseudo-Elements )[:first-letter :first-line :before :after]。

示例:
div:first-letter { font-size:14px; }
a.fly :hover { font-size:14px; color:red; }



我很喜欢你!!!!!!!!
 回到顶部