找回密码
 入学

QQ登录

只需一步,快速开始

查看: 1215|回复: 0

样式表(CSS)学习教程

[复制链接]
发表于 2004-10-2 07:05:52 | 显示全部楼层 |阅读模式


<DIV class=quote>
<>什么是 CSS 以及它的功能






<>关于CSS((Cascading StyleSheets)有多种译法,我们暂且把CSS叫串接样式表吧,以下简称样式表,它能对网页的样式诸如整体布局、字体、颜色、背景和其它文图效果实现更加精确的控制,使其达到统一的显示效果. 具体说它的优点主要有以下几点:






<UL>
<LI>实现了格式和结构分离。






<LI>你将拥有对页面布局的超强控制能力。






<LI>在所有浏览器和平台之间的兼容性。






<LI>只通过修改一个文件就改变大量页面样式, 大大方便网页的更新及维护。






<LI>加快页面的访问速度。






<LI>web页面更加友好 </LI></UL>CSS 所能改变的页面性质如下:






<OL>
<LI>字体






<LI>文字间距






<LI>列表






<LI>颜色






<LI>背景






<LI>Margin






<LI>位置 </LI></OL>CSS 的定义






<>CSS 的每一条定义都有如下的形式 <RE>  selector {property:value; property:value; ...}
</PRE>
<OL>
<LI>selector: 第一种是 HTML 的 tag, 比如 P, BODY, A 等等,第二种叫 class, 第三种叫 ID.






<LI>property: 就是那些将要被修改的性质, 比如 color,font-size...






<LI>value: 给 property 的值, 比如给 color 的可以是red </LI></OL>
<>请看下面的一个典型定义 <RE>  A {color: red}
</PRE>
<>用这条定义所有的联接都变成红色的了. 一般来说我们把所有的定义全包括在 STYLE 元素里面放到 HEAD 里面. 请试验下面的网页:
<XMP><HTML><HEAD>
  <STYLE>
    A
{color: red}
    P {background-color:blue;
color:white}
  </STYLE></HEAD><BODY>
  
<a href="http://www.hermes.com.cn" target="_blank" >海脉信息咨询
</A>
  <>看一下这一段文字的颜色和背景颜色效果.</P></BODY></HTML></XMP>HTML selector






<>HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定义了它们, 在整页中, 这个 Tag 的性质就按照你的定义来显示了. HTML selector 的语法如下 <XMP>  tag {property:value}
</XMP>
<>比如我们想叫 H1 的颜色是红的 <XMP>  H1 {color: red}
</XMP>
<P>CSS 的一个特点是, 它可定义好几个 selector在一个 rOLe 里.如: <XMP>  H1, H2, TD {color: red}
</XMP>
<P>这个定义就能让所有的 H1, H2, 和 TD 的颜色都为红色.

Class selector






<P>Class selector 有两种, 一种叫相关 class selector, 它跟一个 HTML 的 tag 有关系. 它的语法是 <XMP>  tag.Classname {property:value}
</XMP>
<P>比如我们想叫一些而不是全部 H1 的颜色是红的 <XMP>  H1.redone {color: red}
</XMP><XMP><H1>红色</H1><H1>不是红色</H1></XMP>
<P>第二种是独立 class selector . 它可被任何 HTML tag 所应用.它的语法如下 <XMP>  .Classname {property:value}
</XMP>
<P>假如我们有下面这个定义 <XMP>  .blueone {color: blue}
</XMP>
<P>那么我们可以把他应用到不同的 Tag 当中去. 比如 <XMP><H1>蓝色的题目</H1><P>蓝色的段落</P></XMP></DIV>








<DIV class=quote>
<P><B>ID selector</B>






<P>ID selector 其实跟独立 class selector 的功能一样. 而区别在于它们的语法和用法不同, 以及对于 Javascript 操纵 HTML元素有帮助. 如果你用 CSS-P 来定位, 有 ID 的 HTML 元素可以被 CSS-P和JavaScript 来操纵.它的语法如下 <XMP>   #IDname {property:value}
</XMP>
<P>假如我们有下面的定义 <XMP>  #yelowone {color: yellow}
</XMP>
<P>我们可以运用这个定义到任何的有同样 ID 名字的 tag, 比如 <XMP>  text here
</XMP><B>字形与大小</B>






<P>CSS 用来控制字形的性质是 <B>font-family</B>,控制字体大小的性质是 <B>font-size</B>. 比如 <XMP>  H1, H2, P {font-family: 楷体;font-size: 9pt}
</XMP>
<P>CSS 允许你给 font-family 多于一个以上的字形,使得用户浏览器按顺序检测和使用字体,每个字形之间要用逗号隔开. 比如 <XMP>  H1, H2, P {font-family: 楷体, 黑体, 宋体}
</XMP><B>斜体</B>






<P>如果想让字体成为斜体, 要用 <B>font-style</B> 性质, 比如 <XMP>  P {font-style: italic}
</XMP><B>加重</B>






<P>用 <B>font-weight</B> 来调节文字的粗细, 比如 <XMP>  P {font-weight: bold}
</XMP>
<P>font-style 的可能的值是 lighter, normal, bold, bolder






<P><B>如何用 CSS 来控制网页中文字定位?</B>






<OL>
<LI>line-height: 行距






<LI>text-align: 向那个方向看齐






<LI>vertical-align: 向上还是向下看齐






<LI>text-indent: 段落第一行空格






<LI>text-transform: 字母的大小写






<LI>text-decoration: 给文字加装饰, 比如下滑线 </LI></OL><B>行距</B>






<P>我们有时候可能会想把行距加大点使得文字看的清楚一些. CSS中的 line-height 可以调节. <XMP>  P.double {line-height: 2}
</XMP>
<P>请看下面的比较.






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>这 一 段 的 行 距 是 正常 的. 这 一 段 的 行 距 是 正常 的. 这 一 段 的 行 距 是 正常 的. 这 一 段 的 行 距 是 正常 的. </P>
<P>这 一 段 的 行 距 是 双 倍 的. 这 一 段 的 行 距 是 双 倍 的. 这 一 段 的 行 距 是 双 倍 的. 这 一 段 的 行 距 是 双 倍 的. </P></TD></TR></TABLE><B>看齐</B>






<P>一般来说我们都是向左边看齐. 但有的时候也有其他的选择,如向右边看齐. <XMP>  P.right {text-align: right}
</XMP>
<P>请看下面的比较.






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>这 一 行 左 边 看 齐 </P>
<P>这 一 行 右 边 看 齐 </P>
<P>这 一 行 在 中 间 </P></TD></TR></TABLE>
<P>text-align 可以有 left, right, center, 和 justify
<B>段落的首行空格</B>






<P>如果我们想让第一行的开头空几格, 可以用 text-indent, 比如 <XMP>  P {text-indent: 1cm}
</XMP>
<P>请看下面的例子.






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>这 一 段 开 头 空 了 1 厘 米. 这 一 段 开 头 空 了 1 厘 米. 这 一 段 开 头 空 了 1 厘 米. 这 一 段 开 头 空 了 1 厘 米. </P></TD></TR></TABLE><B>字母的大小写</B>






<P>这个性质显然跟中文没关系, 但如果我们要处理英文, 你可以用 text-transform 来改变英文的大小写. 比如, 让每个字的第一个字母大写 <XMP>  P {text-transform: capitalize}
</XMP>
<P>请看下面的比较.






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>All the words' first letter have been capitalized in this line</P>
<P>All the letters are uppercase in this line</P>
<P>All the letters are lowercase in this line</P></TD></TR></TABLE><B>文字的装饰</B>






<P>就是在文字上加下滑线, 或中间加条线的. 比如 <XMP>    P.underline {text-decoration: underline}

    P.line-through {text-decoration: line-through}
</XMP>
<P>请看下面的比较.






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>Underline line</P>
<P>line-through line</P></TD></TR></TABLE>
<P>其实最常用的是我们想去掉联接下面的下滑线. <XMP>  A {text-decoration: none}
</XMP></DIV>








<DIV class=quote><B>文字的颜色</B>






<P>我们用 color 可以来决定文字,周边,以及横线的颜色 <XMP>  P.greentext {color: green}
</XMP>
<P>请看下面的例子






<TABLE width=400>

<TR>
<TD bgColor=#ffffcc>
<P>这一行文字的颜色是绿色的</P></TD></TR></TABLE><B>背景的颜色</B>






<P>背景的颜色可以由 background-color 来控制, 比如我们想叫一些文字段落的背景颜色为浅绿色的, <XMP>  P.greenbg {background-color: #CCEFCC}
</XMP>
<P>请看下面的例子






<P>这一行的背景颜色是浅绿色的</P><B>背景的图象</B>






<P>我们不但可以给整个网页加个背景图象,我们还可以给其中一个元素加个背景图象,比如说我们给 P 的背景加上天空的背景 <XMP>  P.sky {background-image: url(../images/sky.jpg)}
</XMP>
<P>请看下面的例子 </P>
<P>这段文字的背景图案是天空.这段文字的背景图案是天空.这段文字的背景图案是天空.这段文字的背景图案是天空.这段文字的背景图案是天空.这段文字的背景图案是天空. </P>
<P>我们不但可以决定是否给背景加图象, 还可以确定是否让这个图象重复以及在哪个方向重复。比如我们只让图象在整个网页的竖直方向重复我们就可以产生左边有个图象条的效果。 <XMP>  body {background-image: url(sky.jpg); background-repeat:
repeat-y top right}
</XMP>
<P>background-repeat可以有这些可能值:no-repeat, repeat-x, repeat-y </P>
<P>我们还可以用 background-attachment 来决定当别人浏览你的网页的是否让背景图象随着内容一起滚动。比如我们如果不让背景图象动, <XMP>  body {background-image: url(sky.jpg); background-attachment:
fixed}
</XMP><B>元素周边的空格 margin</B>




<P>性质 margin 可被用来决定周边的空格, 假如我们想让整个网页在左边有 5em 但让标题没有任何空格 <XMP>  BODY {margin: 5em}
  H3 {margin: -5em}
</XMP>
<P>我们还可以分别用 margin-left, margin-right, margin-top, 和 margin-bottom 来设定 左,右,上,下的空格

<B>元素内部周边的空格 padding</B>




<P>初看起来这个性质跟 margin 好象一样。 其实它们之间有很大的区别。margin 的空格是相对于其他的元素所空的,而 padding 是在元素的周边和内部的内容所空的空格。在下面的例子,我们用有背景颜色的 TABLE 来让你注意这个性质 <XMP>  TABLE.pad {padding: 5mm; background-color: #CCEFCC}
</XMP>
<TABLE>

<TR>
<TD>padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five.padding is five. </TD></TR></TABLE>
<P>我们同样可以用 padding-left, padding-right, padding-top, 和padding-bottom 来分别控制左,右,上,下的元素内部的周边空格。

<B>元素边框的宽度</B>




<P>我们可以用 border-width 性质来调节边框的宽度。 比如 <XMP>  P.width5 {border-width: 1px}
</XMP>
<P>这个 P 元素的边框宽度是 1 px </P>
<P>你可以用 border-left-width, border-right-width, border-top-width,和 border-bottom-width 来分别决定左,右,上,下边的宽度

<B>元素边框的颜色</B>




<P>我们可以用 border-color 性质来调节边框的颜色。 比如 <XMP>P.inset {border-width: 5px; border-color: red; border-style: inset}的效果:</XMP>
<P>这个 P 元素的边框的形态是 inset </P><XMP>P.outset {border-width: 5px; border-color: red; border-style: outset}的效果:</XMP>
<P>这个 P 元素的边框的形态是 outset </P><XMP>P.double {border-width: 5px; border-color: red; border-style: double}的效果:</XMP>
<P>这个 P 元素的边框的形态是 double </P><XMP>P.groove {border-width: 5px; border-color: red; border-style: groove}的效果:</XMP>
<P>这个 P 元素的边框的形态是 groove </P><XMP>P.ridge {border-width: 5px; border-color: red; border-style: ridge}的效果:</XMP>
<P>这个 P 元素的边框的形态是 ridge </P>&lt;!-- 添加内容结束  //--&gt;</DIV>
<DIV class=quote><B><FONT size=3>CSS实际应用

</FONT></B>  样式表应用的精华在于我们可以在多个html文件中引入同一个样式表文件,这样一来我们只需修改一个样式表文件,就可以同时改变多个页面的显示外观,给网页的更新维护带来了极大方便。它的使用方法:产生一个普通的网页,但不使用&lt;STYLE&gt;规则,而是在&lt;HEAD&gt;内使用&lt;LINK&gt;标签:
<B>main.htm</B><XMP><HTML><HEAD><TITLE>My First Stylesheet
</TITLE><LINK REL=stylesheet HREF
="main.css" TYPE="text/css"></HEAD><BODY>
put your body messages here.

</BODY></HTML></XMP>  其中main.css文件中放置设计好的样式表文档,如: <XMP><STYLE TYPE="text/css">&lt;!--
BODY{FONT-FAMILY: 宋体;FONT-SIZE: 9pt;
COLOR:#000000;margin-left: 2em}
.pt9 {FONT-FAMILY: "宋体"; FONT-SIZE:
9pt; COLOR:#000000}
P,H9,TD,SELECT
{FONT-FAMILY: "宋体"; FONT-SIZE:
9pt}
A:link {font-family: "宋体"; font-size: 9pt; color: #003388;
text-decoration: none}
A:visited {font-family: "宋体"; font-size: 9pt;
color: #003388; text-decoration: none; font-color=blue}
A:hover
{font-family: "宋体"; font-size: 9PT;color:red;  text-decoration:
underline}

--></style></XMP>  这样当我们打开main.htm时,浏览器会首先调入样式表main.css的规则,使页面按此规则显示。
  另外,我们还可以采用输入样式表,它不同于上述链接法之处在于链接法不能同其它方法结合使用,但输入法则可以。其使用方法:(例) <XMP><HTML><STYLE TYPE="text/css">&lt;!--
@import url(main.css); //输入样式表

H1 { color: orange; font-family: impact }
--></STYLE><HEAD><TITLE>
import css</TITLE></HEAD><BODY>
put your body messages here
</BODY></HTML>
</XMP><B>冲突解决</B>
  以上介绍了几种使用样式表的方法,那么如果我在同一文件中同时使用多种方法应用样式表,浏览器会如何操作呢?
  好在支持样式表的浏览器自身配有样式表的串接顺序来解决这个问题。根据正式的规定,以下为样式表的串接顺序:(css称为<B>串接</B>样式表,意义正在于此)
Inline styles (行内样式)
Embedded styles (植入样式)
Linked styles (链接样式)
Imported styles (输入样式)
Default browser styles(缺省浏览器样式)
浏览器将按照上述顺序执行样式表的指令。
  但是如果同一种类的多个规则相互冲突怎么办?这里有一个极其简单的解决顺序:
  <B>1.使用特别说明的样式表规则</B>,例:
<XMP>BODY { color: green }
P { color: red }
</XMP>  有一项规则特别说明&lt;P&gt; 中的文字一红色显示,但它同时也继承了&lt;BODY&gt;的绿色规定。但是特别说明了的规则的重要性要大于继承的规则,所以&lt;P&gt;之内的文字以红色显示。
  <B>2.应用继承的样式表规则</B>
  如果不存在第1步中所列的特别说明的规则,则浏览器转向执行继承的规则。如果找不到继承的规则,则浏览器转向执行第3步。
  <B>3.按照样式表规则在HTML中的显示顺序执行。</B><XMP>P { color: green }
P { color: red }
</XMP>  当无法适用上述规则时,浏览器将根据规则在代码中显示顺序执行。上例中,&lt;P&gt;之内的文字以红色显示,因为它是最后给出的规则。

  好了,关于样式表就说这么多,请多加实践,你会发现在你学习Dhtml的内容时,样式表在其中扮演了重要角色。</DIV>
您需要登录后才可以回帖 登录 | 入学

本版积分规则

QQ|Archiver|手机版|小黑屋|校园天空成立于2004年2月24日 ( 陕ICP备08000078号-8 )

GMT+8, 2025-5-11 11:00 , Processed in 0.112305 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表