账号通
    

账号  

密码  

5802

查看

26

回复
主题:WEB设计、DIV+CSS入门 (更新) [收藏主题] 转到:  
lxykx 当前离线

325

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:4196 分
登录次数:536 次
注册时间:2006/9/25
最后登录:2012/10/31
lxykx 发表于:2007/2/9 12:03:00   | 只看该作者 查看该作者主题 楼主 
方便大家学习DIV+CSS做模板,DIV+CSS是以后WEB设计的趋势,望大家相互多多的学习!

CSS2.0中文手册:图片点击可在新窗口打开查看点击浏览该文件

对象模型中文手册:图片点击可在新窗口打开查看点击浏览该文件

默认行为中文手册:图片点击可在新窗口打开查看点击浏览该文件

样式表滤镜手册:  图片点击可在新窗口打开查看点击浏览该文件

=+++++++++++++++++++++++++++++++++++++++++++++++++++++=

CSS专用书写工具

TopStyle Pro v3.11      点击下载

官方网站地址:http://www.bradsoft.com/

功能专注于CSS设计的辅助工具,功能相当多,附有CSS码检查功能,减少写错的机会。尤其是它的HELP文件中详细的CSS指令介绍,很适于用作参考文件与初次接触CSS的人做为学习使用。最有用的功能为CSS排错检查,可以对各个版本的CSS文件进行标准化排查并对其进行书写格式化!

[PS:最新的TopStyle版本为V3.12英文版,可升级] 


+========================================================+

CSS是Cascading Style Sheets(层叠样式表)的缩写。是一种对web文档添加样式的简单机制,属于表现层的布局语言。

1.基本语法规范

分析一个典型CSS的语句:

p {COLOR:#FF0000;BACKGROUND:#FFFFFF}
 

  • 其中"p"我们称为"选择器"(selectors),指明我们要给"p"定义样式;
  • 样式声明写在一对大括号"{}"中;
  • COLOR和BACKGROUND称为"属性"(property),不同属性之间用分号";"分隔;
  • "#FF0000"和"#FFFFFF"是属性的值(value)。

2.颜色值

颜色值可以用RGB值写,例如:color : rgb(255,0,0),也可以用十六进制写,就象上面例子color:#FF0000。如果十六进制值是成对重复的可以简写,效果一样。例如:#FF0000可以写成#F00。但如果不重复就不可以简写,例如#FC1A1B必须写满六位。

3.定义字体

web标准推荐如下字体定义方法:

body { font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif; }
 

  • 字体按照所列出的顺序选用。如果用户的计算机含有Lucida Grande字体,文档将被指定为Lucida Grande。没有的话,就被指定为Verdana字体,如果也没有Verdana,就指定为Lucida字体,依此类推,;
  • Lucida Grande字体适合Mac OS X;
  • Verdana字体适合所有的Windows系统;
  • Lucida适合UNIX用户
  • "宋体"适合中文简体用户;
  • 如果所列出的字体都不能用,则默认的sans-serif字体能保证调用;

4.群选择器

当几个元素样式属性一样时,可以共同调用一个声明,元素之间用逗号分隔,: p, td, li { font-size : 12px ; }
 

5.派生选择器

可以使用派生选择器给一个元素里的子元素定义样式,例如这样:

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

就是给li下面的子元素strong定义一个斜体不加粗的样式。

6.id选择器

用CSS布局主要用层"div"来实现,而div的样式通过"id选择器"来定义。例如我们首先定义一个层

<div id="menubar"></div>
 

然后在样式表里这样定义:

#menubar {MARGIN: 0px;BACKGROUND: #FEFEFE;COLOR: #666;}
 

其中"menubar"是你自己定义的id名称。注意在前面加"#"号。

id选择器也同样支持派生,例如:

#menubar p { text-align : right; margin-top : 10px; }
 

这个方法主要用来定义层和那些比较复杂,有多个派生的元素。

6.类别选择器

在CSS里用一个点开头表示类别选择器定义,例如:

.14px {color : #f60 ;font-size:14px ;}
 

在页面中,用class="类别名"的方法调用:

<span class="14px">14px大小的字体</span>
 

这个方法比较简单灵活,可以随时根据页面需要新建和删除。

7.定义链接的样式

CSS中用四个伪类来定义链接的样式,分别是:a:link、a:visited、a:hover和a : active,例如:

a:link{font-weight : bold ;text-decoration : none ;color : #c00 ;}
a:visited {font-weight : bold ;text-decoration : none ;color : #c30 ;}
a:hover {font-weight : bold ;text-decoration : underline ;color : #f60 ;}
a:active {font-weight : bold ;text-decoration : none ;color : #F90 ;}

以上语句分别定义了"链接、已访问过的链接、鼠标停在上方时、点下鼠标时"的样式。注意,必须按以上顺序写,否则显示可能和你预想的不一样。记住它们的顺序是“LVHA”。

呵呵,看了这么多,有点头晕吧,实际上CSS的语法规范还有很多,这里列的只是一些常用的,毕竟我们是循序渐进,不可能一口吃成胖子:)

CSS布局入门

CSS布局与传统表格(table)布局最大的区别在于:原来的定位都是采用表格,通过表格的间距或者用无色透明的GIF图片来控制文布局版块的间距;而现在则采用层(div)来定位,通过层的margin,padding,border等属性来控制版块的间距。

1.定义DIV

分析一个典型的定义div例子:

#sample{ MARGIN: 10px 10px 10px 10px;
PADDING:20px 10px 10px 20px;
BORDER-TOP: #CCC 2px solid;
BORDER-RIGHT: #CCC 2px solid;
BORDER-BOTTOM: #CCC 2px solid;
BORDER-LEFT: #CCC 2px solid;
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;
COLOR: #666;
TEXT-ALIGN: center;
LINE-HEIGHT: 150%; WIDTH:60%; }

说明如下:

  • 层的名称为sample,在页面中用<div id="sample">就可以调用这个样式。
  • MARGIN是指层的边框以外留的空白,用于页边距或者与其它层制造一个间距。"10px 10px 10px 10px"分别代表"上右下左"(顺时针方向)四个边距,如果都一样,可以缩写成"MARGIN: 10px;"。如果边距为零,要写成"MARGIN: 0px;"。注意:当值是零时,除了RGB颜色值0%必须跟百分号,其他情况后面可以不跟单位"px"。MARGIN是透明元素,不能定义颜色。
  • PADDING是指层的边框到层的内容之间的空白。和margin一样,分别指定上右下左边框到内容的距离。如果都一样,可以缩写成"PADDING:0px"。单独指定左边可以写成"PADDING-LEFT: 0px;"。PADDING是透明元素,不能定义颜色。
  • BORDER是指层的边框,"BORDER-RIGHT: #CCC 2px solid;"是定义层的右边框颜色为"#CCC",宽度为"2px",样式为"solid"直线。如果要虚线样式可以用"dotted"。
  • BACKGROUND是定义层的背景。分2级定义,先定义图片背景,采用"url(../images/bg_logo.gif)"来指定背景图片路径;其次定义背景色"#FEFEFE"。"no-repeat"指背景图片不需要重复,如果需要横向重复用"repeat-x",纵向重复用"repeat-y",重复铺满整个背景用"repeat"。后面的"right bottom;"是指背景图片从右下角开始。如果没有背景图片可以只定义背景色BACKGROUND: #FEFEFE
       
  • COLOR用于定义字体颜色,上一节已经介绍过。
  • TEXT-ALIGN用来定义层中的内容排列方式,center居中,left居左,right居右。
  • LINE-HEIGHT定义行高,150%是指高度为标准高度的150%,也可以写作:LINE-HEIGHT:1.5或者LINE-HEIGHT:1.5em,都是一样的意思。
  • WIDTH是定义层的宽度,可以采用固定值,例如500px,也可以采用百分比,象这里的"60%"。要注意的是:这个宽度仅仅指你内容的宽度,不包含margin,border和padding。但在有些浏览器中不是这么定义的,需要你多试试。

下面是这个层的实际表现:

这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,这里是演示内容,

这里是演示内容,这里是演示内容,

这里是演示内容,这里是演示内容,

这里是演示内容...

我们可以看到边框是2px的灰色,背景图片在右下没有重复,内容距离上和左边框20px,内容居中,一切和预想的一样。hoho,虽然不好看,但它是最基本的,掌握了它,你就已经学会一半的CSS布局技术了。就是这样,不算难吧!(另一半是什么?另一半是层与层之间的定位。我会在后面逐步讲解。)

2.CSS2盒模型

自从1996年CSS1的推出,W3C组织就建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层<div>。盒模型主要定义四个区域:内容(content)、边框距(padding)、边界(border)和边距(margin)。上面我们讲的sample层就是一个典型的盒。对于初学者,经常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的3D示意图,希望便于你的理解和记忆。


 

3.辅助图片一律用背景处理

用XHTML+CSS布局,有一个技术一开始让你不习惯,应该说是一种思维方式与传统表格布局不一样,那就是:所有辅助图片都用背景来实现。类似这样:

BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat right bottom;
  

尽管可以用<img>直接插在内容中,但这是不推荐的。这里的"辅助图片"是指那些不是作为页面要表达的内容的一部分,而仅仅用于修饰、间隔、提醒的图片。例如:相册中的图片、图片新闻中的图片,上面的3d盒模型图片都属于内容的一部分,它们可以用<img>元素直接插在页面里,而其它的类似logo,标题图片,列表前缀图片都必须采用背景方式或者其他CSS方式显示。

这样做的原因有2点:

  • 将表现与结构彻底相分离(参考阅读另一篇文章:《理解表现与结构相分离》),用CSS控制所有的外观表现,便于改版。
  • 使页面更具有易用性,更有亲和力。例如:盲人使用屏幕阅读机,用背景技术实现的图片就不会被朗读出来。

[此贴子已经被作者于2007-2-9 12:48:24编辑过]

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
mxzg 当前离线

222

主题

0

广播

3

粉丝
添加关注
级别:二年级

用户积分:2177 分
登录次数:148 次
注册时间:2006/8/9
最后登录:2009/3/17
mxzg 发表于:2007/5/19 18:42:00   | 只看该作者 查看该作者主题 沙发 
科汛智能建站系统
好东西,适合发到我模板区
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
ysmxqso 当前离线

26

主题

0

广播

0

粉丝
添加关注
级别:学前班

用户积分:671 分
登录次数:158 次
注册时间:2007/4/24
最后登录:2018/6/9
ysmxqso 发表于:2007/5/19 18:05:00   | 只看该作者 查看该作者主题 藤椅 
科汛在线网校系统

顶起来,看一下原贴.

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
ff_ff 当前离线

253

主题

0

广播

0

粉丝
添加关注
级别:二年级

用户积分:1563 分
登录次数:300 次
注册时间:2007/1/6
最后登录:2010/12/9
ff_ff 发表于:2007/2/9 13:33:00   | 只看该作者 查看该作者主题 板凳 
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
lxykx 当前离线

325

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:4196 分
登录次数:536 次
注册时间:2006/9/25
最后登录:2012/10/31
lxykx 发表于:2007/2/9 12:12:00   | 只看该作者 查看该作者主题 报纸 
科汛智能建站系统
CSS的十八般技巧(四)

十五.导入(Import)和隐藏CSS

因为老版本浏览器不支持CSS,一个通常的做法是使用@import技巧来把CSS隐藏起来。例如:

@import url("main.css");

然而,这个方法对IE4不起作用,这让我很是头疼了一阵子。后来我用这样的写法:

@import "main.css";

这样就可以在IE4中也隐藏CSS了,呵呵,还节省了5个字节呢。想了解@import语法的详细说明,可以看这里《centricle’s css filter chart》

十六.针对IE的优化

有些时候,你需要对IE浏览器的bug定义一些特别的规则,这里有太多的CSS技巧(hacks),我只使用其中的两种方法,不管微软在即将发布的IE7 beta版里是否更好的支持CSS,这两种方法都是最安全的。

1.注释的方法

(a)在IE中隐藏一个CSS定义,你可以使用子选择器(child selector):

html>body p {

/* 定义内容 */

}

(b)下面这个写法只有IE浏览器可以理解(对其他浏览器都隐藏)

* html p {

/* declarations */

}

(c)还有些时候,你希望IE/Win有效而IE/Mac隐藏,你可以使用"反斜线"技巧:

/* \*/

* html p {

declarations

}

/* */

2.条件注释(conditional comments)的方法

另外一种方法,我认为比CSSHacks更加经得起考验就是采用微软的私有属性条件注释(conditional comments)。用这个方法你可以给IE单独定义一些样式,而不影响主样式表的定义。就象这样:

<!--[if IE]>

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

<![endif]-->

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
lxykx 当前离线

325

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:4196 分
登录次数:536 次
注册时间:2006/9/25
最后登录:2012/10/31
lxykx 发表于:2007/2/9 12:07:00   | 只看该作者 查看该作者主题 地板 
科汛在线网校系统
CSS的十八般技巧(二)

九.使用子选择器(descendant selectors)

CSS初学者不知道使用子选择器是影响他们效率的原因之一。子选择器可以帮助你节约大量的class定义。我们来看下面这段代码:

<div id="subnav">

<ul>

<li class="subnavitem"> <a href="#" class="subnavitem">Item 1</a></li>>

<li class="subnavitemselected"> <a href="#" class="subnavitemselected"> Item 1</a> </li>

<li class="subnavitem"> <a href="#" class="subnavitem"> Item 1</a> </li>

</ul>

</div>

这段代码的CSS定义是:

div#subnav ul { /* Some styling */ }

div#subnav ul li.subnavitem { /* Some styling */ }

div#subnav ul li.subnavitem a.subnavitem { /* Some styling */ }

div#subnav ul li.subnavitemselected { /* Some styling */ }

div#subnav ul li.subnavitemselected a.subnavitemselected { /* Some styling */ }

你可以用下面的方法替代上面的代码

<ul id="subnav">

<li> <a href="#"> Item 1</a> </li>

<li class="sel"> <a href="#"> Item 1</a> </li>

<li> <a href="#"> Item 1</a> </li>

</ul>

样式定义是:

#subnav { /* Some styling */ }

#subnav li { /* Some styling */ }

#subnav a { /* Some styling */ }

#subnav .sel { /* Some styling */ }

#subnav .sel a { /* Some styling */ }

用子选择器可以使你的代码和CSS更加简洁、更加容易阅读。

十.不需要给背景图片路径加引号

为了节省字节,我建议不要给背景图片路径加引号,因为引号不是必须的。例如:

background:url("images/***.gif") #333;

可以写为

background:url(images/***.gif) #333;

如果你加了引号,反而会引起一些浏览器的错误。

十一.组选择器(Group selectors)

当一些元素类型、class或者id都有共同的一些属性,你就可以使用组选择器来避免多次的重复定义。这可以节省不少字节。

例如:定义所有标题的字体、颜色和margin,你可以这样写:

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

font-family:"Lucida Grande",Lucida,Arial,Helvetica,sans-serif;

color:#333;

margin:1em 0;

}

如果在使用时,有个别元素需要定义独立样式,你可以再加上新的定义,可以覆盖老的定义,例如:

h1 { font-size:2em; }

h2 { font-size:1.6em; }

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
lxykx 当前离线

325

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:4196 分
登录次数:536 次
注册时间:2006/9/25
最后登录:2012/10/31
lxykx 发表于:2007/2/9 12:18:00   | 只看该作者 查看该作者主题 7楼 
做在线知识付费 选科汛云开店
从基础开始:CSS实用教程(三)

十二.控制BOX的样式

样式表规定了一个容器BOX,它将要储存一个对象的所有可操作的样式。包括了对象本身、边框空白、对象边框、对象间隙四个方面。

图片点击可在新窗口打开查看

为了大家更好地理解这些属性的意义,以及互相之间的关系,请看下面这个图示:

1.边框空白(MARGIN)

如图所示,位于BOX模型的最外层,包括四项属性。

格式分别如下:

·margin-top:顶部空白距离

·margin-right:右边空白距离

·margin-bottom:底部空白距离

·margin-left:左边空白距离

空白的距离可以用带长度单位的数字表示。

如果使用上述属性的简化方式margin,可以在其后连续加上四个带长度单位的数字,来分别表示margin-top、margin-right、margin-bottom、margin-left,每个数字中间要用空格分隔。

2.对象边框(BORDER)

如图所示,位于边框空白和对象空隙之间,包括了七项属性。

格式分别如下:

·border-top:顶边框宽度

·border-right:右边框宽度

·border-bottom:底边框宽度

·border-left:左边框宽度

·border-width:所有边框宽度

·border-color:边框颜色

·border-style:边框样式参数

其中border-width可以一次性设置所有的边框宽度,border-color同时设置四面边框的颜色时,可以连续写上四种颜色,并用空格分隔。上述连续设置的边框都是按border-top、border-right、border-bottom、border-left的顺序。

Border-style相对别的属性而言稍稍复杂些,因为它还包括了多个边框样式的参数:

·none:无边框。

·dotted:边框为点线。

·dashed:边框为长短线。

·solid:边框为实线。

·double:边框为双线。

·groove:根据color属性显示不同效果的3D边框

·ridge:根据color属性显示不同效果的3D边框

·inset:根据color属性显示不同效果的3D边框

·outset:根据color属性显示不同效果的3D边框

3.对象间隙(PADDING)

如图所示,位于对象边框和对象之间,包括了四项属性。

基本格式如下:

·padding-top:顶部间隙

·padding-right:右边间隙

·padding-bottom:底部间隙

·padding-left:左边间隙

和MARGIN类似,PADDING也可以用padding一次性设置所有的对象间隙,格式也和MARGIN相似,不再一一列举了

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
bxin 当前离线

271

主题

0

广播

1

粉丝
添加关注
级别:二年级

用户积分:1584 分
登录次数:105 次
注册时间:2006/10/30
最后登录:2010/8/31
bxin 发表于:2007/2/9 15:53:00   | 只看该作者 查看该作者主题 8楼 
科汛在线网校系统
看下来好累的,先收藏,晚上慢慢学习
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
tigerdan 当前离线

412

主题

0

广播

0

粉丝
添加关注
级别:四年级

用户积分:2704 分
登录次数:107 次
注册时间:2006/11/12
最后登录:2016/7/25
tigerdan 发表于:2007/2/9 12:42:00   | 只看该作者 查看该作者主题 9楼 
这个。...还能算沙发吗?
 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
lxykx 当前离线

325

主题

0

广播

0

粉丝
添加关注
级别:三年级

用户积分:4196 分
登录次数:536 次
注册时间:2006/9/25
最后登录:2012/10/31
lxykx 发表于:2007/2/9 12:19:00   | 只看该作者 查看该作者主题 10楼 
科汛在线网校系统

十三.显示控制样式

基本格式如下:

基本格式如下:

基本格式如下:

基本格式如下:

display: 参数

参数取值范围:

·block(默认):在对象前后都换行

·inline:在对象前后都不换行

·list-item:在对象前后都换行,增加了项目符号

·none:无显示

十四.空白控制样式

基本格式如下:

空白属性决定如何处理元素内的空格。

white-space: 参数

参数取值范围:

normal:把多个空格替换为一个来显示

pre:忠实地按输入显示空格

nowrap:禁止换行

但要注意的是,write-space也是一个块级属性。

--系列完--

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.37500秒 powered by KesionCMS 9.0