Cssweb站点设计手册.docx
- 文档编号:4599549
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:19
- 大小:48.07KB
Cssweb站点设计手册.docx
《Cssweb站点设计手册.docx》由会员分享,可在线阅读,更多相关《Cssweb站点设计手册.docx(19页珍藏版)》请在冰豆网上搜索。
Cssweb站点设计手册
Cssweb站点设计手册——(美)ericA.Meyer著
常用网站:
www.webstaandards.org、www.w3.org。
作者个人站点:
-。
。
第二章理解CSS
XHTML与HTML相似,是一种简单的文本标记语言。
它旨在为纯文本文档添加结构和语义。
元素:
是文档的基本单位。
有替换元素和非替换元素之分。
像h1,h2,p这种能够包含内容的元素叫非替换元素,而像img这种表现的是一个图像元素,叫做替换元素,当文档呈现在浏览器时,替换元素指向的是另一种资源会出现在该元素的位置上。
属性的值无论是不是空值,等号和引号是必须有的(单引号和双引号皆可,但不能混用)。
CSS术语
属性:
一个属性描述元素外观的一个方面。
属性后面总是要有一个值,而且属性和值之间必须通过冒号(:
)隔开。
值:
是定义一种具体外观的描述符。
如一种颜色名称等。
在编写CSS代码时,一定要在值的后面加上一个分号(;),以创建完整的声明。
声明:
一个声明中包含一对的“属性—值”。
每一个声明应该以分号(;)结尾。
声明块:
就是包含一组声明的集合。
一个声明块必须要以一对花括号({})括起来。
分别表示声明块的开始和结束。
CSS规则只有一个声明块。
选择符:
选择符定义作为声明应用对象的文档中的元素。
规则:
一条规则就是一对选择符和声明块。
样式表:
是要应用到文档的规则的集合。
样式表既可以嵌入到一个XHTML文档中,亦可以存在于与相应的XHTML文档关联的独立的外部文件中。
实践:
练习:
添加规则,选择符,了解ID选择符,应用多个声明。
后代选择符例子:
#sidebardivh3含义是选择ID为sidebar的元素中的div元素中包含的所有h3元素。
理解颜色值:
RGB百分比值:
这种值是以0-100%之间的值定义红、绿和蓝色。
在使用RGB百分比时,每个值之间以逗号分隔。
并且放到rgb()容器中,如:
rgb(60%,50%,30%)。
RGB整数值:
以0-255之间的整数来定义红、绿和蓝色。
在使用RGB整数值时,每个值之间以逗号分隔。
并且放到rgb()容器中,如rgb(60,50,30)。
长十六进制值:
以00到FF之间的十六进制来定义红、绿和蓝色。
如#FFFFFF(黑色)。
短十六进制值:
是长十六进制值的一种特殊情况,即只是用3位数,而每位数都表示相同的两个数。
如:
#FFFFFF缩短为#FFF,#CC7722为#C72。
颜色名称:
即英文单词。
如h1{color:
red}。
样式表的类型
样式是通过选择符与XHTML文档中的元素建立关联的。
嵌入式样式表:
作为XHTML文档的一部分存储的,包含在head元素的style元素内部。
外部样式表:
单独存在的样式表。
内联样式:
内联样式是作为要应用样式的元素属性出现的,如:
red”>……
练习:
解析:
Media属性定义了基于什么媒体来应用这个样式表。
可以是all,screen(浏览器中呈现),print(打印时呈现)。
最好将style元素放在head元素中。
导入外部样式:
@importurl(styles/base.css)
@import后面的url(……),表示括号中是一个url引用,与图像的src属性值一样。
在导入了样式表后,还可以在其后面添加样式,当要注意必须添加在导入样式的后面。
rel属性定义的是目标文档与当前文档的关系。
rel="stylesheet"含义是这个link元素所指向的文件(base.css)是这个link元素所在文档的一个样式表。
必须把link元素放在head中。
注意:
link元素属于XHTML,而@import指令是CSS的一个特性。
(在使用样式表时,应考虑链接优先。
)
管理样式表
使用可组合的样式:
将一个基本的样式表作为网站的默认样式表,在此基础上,为网站的不同部分准备区域性的特殊样式表。
使用模块化的样式表:
以平面布局设计中的页面分区作为标准。
为解决这种方法的繁琐问题可以将所有的样式模块导入到一个链接的样式表中。
第三章选择符与层叠
理解选择符
ID选择符
XHTML中的任何元素都可以含有一个id属性(html除外),如:
要匹配前面的标签,可以使用如下的选择符:
#example。
就是要匹配的ID值前面加上一个#号,而且中间没有空格。
#example的含义是:
id属性的值为example的任何元素。
如果想限制选择符只匹配带有这个ID的某种类型的元素,那可以在#号前加上这个元素的名称,如:
div#example(含义是id属性值为example的任何div元素)。
注意:
任何XHTML文档中都只能有一个唯一的ID值。
所以,ID值通常用来标示页面布局中的分区。
类选择符
类必须通过class属性为元素添加类。
如:
元素class属性中的单词通常简称为元素的类。
这些单词通过类选择符进行匹配。
如.first。
类选择符就是在要匹配的类值前面加上一个点(.),而且中间不能包含空格。
.first的含义是:
类属性的值中包含单词first的任何元素。
如果想限制只匹配类为first的p元素,如下:
p.first。
XHTML文档中定义的ID值是区分大小写的。
ID选择符与类选择符的区别:
1、必须在标记中指定class属性;2、可以将一个既定的类名应用到任意多个元素中,但ID却是唯一的。
后代选择符
后代选择符使用于含有多重元素结构的情况。
如含有父元素和子元素。
如:
divp{color:
red;}表示在表情div内的所有p标签内的内容全为红色。
Div与p之间的空格表示:
div的后代是p。
组合选择符
指的是在一条规则中使用一组以逗号分隔的选择符。
如:
ul,ol,dl{……}
查找样式的来源
设计者样式表->用户样式表->用户代理样式表.
针对性解决样式冲突
针对性——CSS中化解冲突的核心机制。
如果在一个文档中,包含两条绝对冲突的规则,那么针对性就是CSS判断应该赋予哪条规则优先权的依据。
li{background:
red;}
li{background:
green;},结果是绿色,因为绿色是最后一条最后声明。
如果将li{background:
red;}改成bodyli{background:
red;}结果是红色,因为针对性变高了。
根据CSS规则,一个元素选择符的针对性是0,0,0,1,一个类选择符的针对性是0,0,1,0,一个ID选择符的针对性是0,1,0,0。
当规则之间发生冲突时,选择符针对此较高的胜出,此时不再考虑规则的先后顺序。
li{background:
red;}改成li{background:
green;font-style:
italic;}后,颜色依然是红色,但字体为斜体了,因为针对性较高的规则中没有包含冲突的字体样式声明。
除了针对性之外,内联style的方式也可以解决冲突,但不如针对性好。
!
important声明
h1{background:
green;}此条语句不会是页面发生变化,但改成h1{background:
green!
important;}之后背景就变成了绿色。
说明样式表中的某个地方已经定义了其他颜色,!
important作为诊断工具,告诉我们他的存在,而且!
important会覆盖所有不重要(unimportant)的声明。
无论声明的选择符有多高的针对性。
解决办法是我们可以修改样式表(但不是个好办法,因为有许多网页依靠他)或者提高h1{background:
green;}的针对性。
在发布网页时,不应该把!
important留在页面中,他只能临时帮你修复问题。
继承
CSS的核心特性——继承。
指的是属性和值沿着文档树向下遗传的一种机制。
body{color:
orange;}
此语句会使所有文本变为橙色,但链接的颜色不会改变,因为继承只有在不存在对抗性属性时才会发生。
而且,继承的值没有针对性。
链接的颜色(蓝色)来自于浏览器的样式表,该值会覆盖任何继承的属性和值。
将body{color:
orange;}改成body{color:
orange!
important;},正常情况下!
important声明会覆盖其他任何样式规则,但其实页面没有发生任何变化,因为橙色值是继承来的,所以该值不仅失去了针对此,而且也失去了重要性。
第四章通过CSS影响页面布局
CSS盒模型简介
在CSS中,每一个元素都会在页面中生成一个盒子,这些盒子可能前后相接,也可能上下堆叠。
除了基本的宽度之外,每个元素盒子还有外边距、内边距和边框属性,通过操纵这些属性可以实现各种效果。
p{margin:
1em;}:
这里em是CSS中相对于段落中字体大小的一个度量单位。
1em的外边距意味着外边距的宽度与段落中的字体大小相等。
基于em的尺寸始终会与字体大小成比例变化。
如:
p{margin:
1em;font-size:
10px;}、p{margin:
1em;border:
1pxsolid#000;padding:
1em;}、p{margin:
1em;border:
1pxsolid#0F0;padding:
1em;width:
300px;height:
500px;}。
外边距扩展是对处于常规流中的元素有效。
所谓常规流,指的是这个元素本事是包含文本的普通元素,没有浮动、没有定位,也没有通过任何特殊的方式进行布局。
p{margin:
10px10px10pxauto;}在这条规则中,我们分别指定了上、右和下外边距的值,将左外边距的值设为auto。
顺序为:
p{margin:
上右下左;}。
外边距:
margin,内边距:
padding,边框:
border。
创建简单的浮动
所谓浮动指的是将一副图像或其他类型的元素,放到网页的一侧,让文本流对它进行绕排。
浮动的值包括:
right、left、none默认情况是none,不能向中间浮动。
浮动不能继承,所以可以应用给任何元素。
#contentimg.illus{float:
left;margin:
10px10px10px0;}在位属性指定0值时,不必再后面添加任何度量单位。
使用浮动进行页面布局
实践:
ex0403
#content{float:
left;width:
40em;}
#sidebar{float:
right;width:
17em;}此情况下,随着浏览器窗口的逐渐缩小,当他们靠得太近而如果不发生重叠就无法对齐时,那么在文档标记中处于第二位的浮动元素会下沉到第一个元素的下方。
解决办法:
使两个都向左侧浮动。
#content{float:
left;width:
40em;}
#sidebar{float:
left;width:
17em;}除了特殊情况,浮动的元素永远不会与页面中的其他元素发生重叠。
但窗口缩小时,侧边栏还是会下沉。
修复分栏下沉
使用内边距和负外边距来避免浮动元素下沉的问题。
首先,删除内容div的宽度。
#content{
float:
left;
width:
40em;
background:
#FFA;
}
删除后:
#content{
float:
left;
background:
#FFA;
}
修改成:
#content{
float:
left;
padding:
020em4em3em;
background:
#FFA;
}
然后将sidebar放大content的右侧内部。
使用如下方法:
#sidebar{
float:
right;
width:
17em;
margin:
09px4em-18em;
}
负外边距会欺骗浏览器,使它认为浮动的侧边栏没有宽度(其实为-1em=17+(-18)),并允许它与第一个浮动元素并肩排列。
CSS中有关浮动元素的算法规则:
如果不给浮动元素指定宽度,那他的大小将有页面上的内容和空间限制自动确定。
于是这个元素会为了填充浏览器的窗口大小而收缩或扩展。
正因如此,所以开始没有给内容div指定宽度,而指定适当的内边距(注意:
若内边距指定不合适,第一个浮动元素就会扩展并滑入第二个浮动元素的底层去,所以实际应用时,应计算一下多少合适)。
内边距的值不能小于零。
清除的实质
使用clear属性相对于网页中的浮动元素来移动常规流元素。
(把其他元素移动到浮动元素的下方。
)
#footer{clear:
left;}是想把这个元素(ID为footer)向下推,或者向下清除,使其位于左侧浮动元素的下方。
页脚的确下沉了,被清除到了左侧,处于任何左侧浮动元素的下方,但没有处于右侧浮动元素的下方。
因为左侧栏更长,所以应修改为#footer{clear:
right;},最好的方法是#footer{clear:
both;}。
位于任何浮动元素的下方。
Clear声明的原理:
实际上是清除的元素的上外边距能够被自动重写并设置,从而使该元素只有可见部分会显示在浮动元素的下方。
包含浮动元素
通过容器元素,可以为页面添加外边距和边框,而这些属性不能在纯背景上完成。
容器:
container
……
如果将
#container{background:
#FCA;}
#content,#sidebar{float:
none;margin:
0;}
改为
#container{background:
#FCA;}
/*
#content,#sidebar{float:
none;margin:
0;}
*/
此时容器会失去效果。
当容器div中不含常规流时,它就会把自己折叠起来,并且没有高度。
CSS中的注释为/*……*/。
解决办法:
使用浮动容器,因为浮动的元素会增大自己的尺寸以容纳其他浮动的元素。
#container{background:
#FCA;float:
left;},但这种方法有一个潜在的问题——浮动的容器元素的尺寸不受内容区域宽度的约束。
如下面这条#container{background:
#FCA;float:
left;border:
1pxsolidred;width:
100%;}会使内容超过浏览器的窗口。
将容器元素改为常规流。
修改为:
#container{background:
#FCA;border:
1pxsolidred;overflow:
auto;}加了overflow声明(用来控制当一个元素比实际的父元素宽时如何绘制该元素。
)使其能够包含浮动元素,去掉了float和width。
overflow:
auto含义是常规流元素通过增大尺寸来包含浮动元素。
显示元素
实验:
ex0407.html。
默认情况下,列表项目生成的布局盒子被称为块级盒子。
这种盒子与div、p等元素生成的盒子相同。
块级盒子会横跨整个页面,有上往下依次排列,他们不允许其他元素与他们并肩。
但是超链接a和span元素生成的盒子被称为行内盒子,在一行文本中,可以包含很多行内盒子,而且,在必要时,行内盒子可以折行(即跨行显示)。
#navlinksli{display:
inline;}
加上这样一条语句就可以了。
但有些浏览器仍会显示项目符号,我们需要把它去掉:
#navlinksli{display:
inline;list-style:
none;}
第五章设置前景和背景属性
添加前景与背景颜色
查看firefox浏览器的样式的方法:
工具—选项—内容—字体&颜色,单击颜色以查看浏览器的设置。
前景字体色修改:
p{color:
teal;}
h2{color:
orange;}
CSS中颜色定义:
关键字:
maroon、red、yellow、orange、olive、purple、blue、navy、green、lime、white、fuchsia、aqua、teal、black、silver、gray。
十六进制值:
#RRGGBB。
DecimalRGB到percentRGB之间的转换:
RGB(A,B,C)->RGB(A/255,B/255,C/255)。
如:
p{color:
teal;}
h2{color:
orange;border-bottom:
1pxsolid;border-top-width:
3px;}
body{background-color:
#e3edc2;}
#navlinks{background:
yellow;}
#masthead{background-color:
green;}
#sidebar{background-color:
rgb(23%,24%,18%);}
#sidebarh3{background:
rgb(155,150,202);}
添加背景图像
初始状态:
#content{
background-color:
rgb(85%,85%,85%);
}
添加背景图像:
background-image:
url(images/curl-gray.gif);这是一个相对url,指向网站中的资源,而绝对url指向外部资源。
重复背景图像
使用background-repeat属性。
在CSS中,可以让图像水平(也称X轴)重复和垂直(Y轴)重复,或者不重复(no-repeat)。
如:
#content{
/*background-color:
rgb(85%,85%,85%);*/
background-image:
url(images/curl-gray.gif);
background-repeat:
repeat-x;
}
定位背景图像
使用属性background-position,其值有top、bottom、left、right和center(用于指定水平和垂直位置)。
如果background-position属性中只指定一个关键字值,浏览器会认为没有提供那个关键字值是center。
此声明中的关键字次序并不重要,如background-position:
rightbottom;和background-position:
bottomright;效果一样。
还可以使用百分比,如:
background-position:
50%0;但此时顺序是很重要的,必须首先指定水平位置,然后是垂直位置。
此外,如果我们只提供一个百分比值,那浏览器会假设第二个值,也就是垂直位置上的值,是50%。
最后,如果想把图像绝对定位在页面上,不论浏览器窗口尺寸多大都不移动的情形,可以使用像素定位。
如:
background-position:
500px50px;
在定位背景是时如果有需要,还可以组合不同类型的定位。
如:
background-position:
75%50px;
简写背景声明
如:
background:
rgb(85%,85%,85%)url(images/curl-gray.gif)no-repeat75%50px;但要注意不能将定位(75%50px)两个值拆开。
第六章排版属性
术语:
行间距(leading)、缩排(kerning)、衬线(serif)、花体(swash)、cursive(草体)。
修改行高
line-height属性。
文本行之间的垂直距离。
例:
p{line-height:
3;}这个3不带任何单位,我们称为倍数值。
此计算方法为:
行高等于元素的字体大小乘以3。
不推荐使用长度单位,当用户扩大字体时,如果是固定行高容易出现文字重叠的现象。
比较使用这两者的区别:
body{line-height:
1.5;}此情况下,body元素的后代会按照自己的字体大小来计算具体的行高。
body{line-height:
1.5em;}此情况下,body元素的后代都会统一继承它所产生的行高,而不是根据自己字体大小计算。
此类也会产生字体拥挤情况(类似于使用像素值)。
所以,推荐使用倍数值。
使用字体系列
为了使网页字体显示效果较好,我们应该为浏览器提供一个以逗号分隔的字体列表。
浏览器会逐个查找每种字体,直至发现他能够显示的字体系列为止。
通过这种方式,我们可以选择一些外形类似的字体,以保证页面在不同的浏览器之间效果趋于一致。
如:
h1,h2,h3,h4{font-family:
Verdana,Geneva,sans-serif;}
#sidebar{font-family:
"CourierNew",Courier,monospace;}
注意第二行的CourierNew加了引号,因为当一个字体的名称有两个单词时,要用单或双引号引起来,以便浏览器将其看成一个值。
此外,有必要为我们的浏览器指定一种通用字体系列,作为在用户计算机中不包含我们指定的任何一种字体的情况的保障。
通用字体系列
Sans-serif
Arial,verdana,Tahoma
Serif
Timesnewroman,Garamond,georgia
Fantasy
Critter,cottonwood
Cursive
Adobepoetica,zapf-chancery
Monospace
Couriernew,courier,prestige
修改字形和粗细
掌握三个属性:
font-style,font-weight,font-variant。
如:
h1,h2,h3,h4{font-variant:
small-caps;}
p{
font-style:
italic;
font-weight:
bolder;
font-family:
Arial,Helvetica,sans-serif;
font-variant:
small-caps;
}
改变字体大小
三种方法:
如
#contenth2{font-size:
150%;}百分比
#contenth1{font-size:
2em;}相对单位em
p{font-size:
small;}关键字值
具体属性值参考附录A:
CSS2属性。
如何解决嵌套列表字体大小变化:
首先,设置ul{font-size:
smaller;}为防止其后代更小,可以编写:
ulul{font-size:
1em;},这样其后代就会与父元素大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Css web站点设计手册 web 站点 设计 手册
![提示](https://static.bdocx.com/images/bang_tan.gif)