属性篇(2)—If you love css …
Author: Jorux/Bluecssr
Posted on: September 11, 2006
Filed under: Web Design
Comments: 23 Responses
keywords: css, tutorial
FontSize: + Increase - Decrease
Trackback: URL(copy the link)- edit
上次主要说明了css对于颜色和文本属性的控制, 这次介绍css对于字体, 背景等属性的控制.
字体(Font):css控制的字体属性包括font-family, font-style, font-variant, font-weight, font-size.
1.font-family: 由字体名(family-names)和字组名(generic families)两个部分组成.首先来看个实例,例:查看Jorux.com首页的css文件,可以看到以下代码:
body {
font: normal 12px/1.5 Georgia, sans-serif;
text-align:left;
background:#444 url(images/bodybg.jpg) repeat-y;
}
蓝色加亮部分就是font的属性值, 这种写法为简写, 可将其还原为:
font-weight: normal;
font-size: 12px;
line-height: 1.5;
font-family: Georgia, sans-serif;
行高(line-height)其实并不属于font属性, 但可以在简写时归入font属性值内. 现在我们先只看最后一行font-family的部分. “Georgia“即为字体名(有simhei, arial, verdana等), “sans-serif“即为字组名(包括衬线字体(Serif), 非衬线字体(Sans-Serif) 和等宽字体(MonoSpace)三种).
由于Windows自带的汉字字体极为有限. 但一般中文Windows系统都支持宋体(默认, SimSun)和黑体(SimHei)和楷体(kaiti_gb2312). 我们来看看这几种汉字字体(要注意这几种字体名, 楷体的英文字体名为kaiti_gb2312, Firefox对汉字字体支持不良):
宋体 楷体 黑体 默认
中国人看到西方字体名可能会比较迷惑, 但就如同学习英文时所遇到的英文名一样, 一些常用的字体名的表现和拼写必须要掌握, 对于中文学习者, 目前只推荐掌握以下几种英文字体:
Arial Verdana Georgia Courier
这几种字体的一般用法如下:
1. Arial: 是目前最为流行的正文字体, 几乎所有的web2.0站点(如Google, Flickr, Wikipedia等)都使用arial字体作为正文甚至是标题的字体. 特点是亲和力比较强, 阅读起来不易疲劳;
2. Verdana: 是1996年微软邀请顶级字体设计师花了两年时间出品的字体, 免费提供给windows用户. 和arial用法比较相似, 是目前使用最为广泛的字体, 几乎能在任何地方看到;
3. Georgia: 这个后起之秀, 由于其花哨的衬线(后说明), 被很多网页设计师所青睐, 逐渐取代了Times New Roman在serif字组中的核心地位. 本网站的标题也使用的是Georgia字体.
4. Courier: 隶属于Monospace字组, 由于其字母的宽度均一, 一般用于对单词长度控制比较严格的地方, 比如网页导航条和报纸(印刷品).
英文有那么多字体, 但都隶属于serif, sans-serif和monospace三种字组. 由于英文本身的特点, 不同于方块字(汉字), 英文字母的宽度是不相等的, 这就给出版业如报纸的排版工作增加了难度, 于是发明了等宽字体(monospace).
字组及字体关系图如下:
现在有必要解释一下serif和sans-serif的区别. “sans”来源于古法语, 意为”without”, 即”非”. 而”serif”来源于荷兰语, 译为衬线, 指字母的拐角或端点位置的修饰线, 如图所示:
所以非等宽字组又分为有衬线(serif)和无衬线(sans-serif)两组. verdana和arial均属于无衬线组.
对于字组和字体的选择, 其实是很个性化的, 读者可以根据自己的喜好, 灵活搭配, 但总的原则是不要选取一些罕见的字体, 如果访问者没有这种字体的话,就会和你的设计意图相悖.
例:如font-family的属性值如下:
font-family: verdana,arial,sans-serif;
浏览器首先在字体库中寻找verdana字体, 如果没找到则寻找arial字体, 如果还没找到就在sans-serif字组中的选择其他字体显示.
2. font-style: 包括normal, italic和oblique三个属性值. css代码如下:
font-stye:normal;
font-stye:italic;
font-stye:oblique;
表现如下:
normal italic oblique
可以看到italic和oblique都是向右倾斜的文字, 但区别在于Italic是指斜体字,而Oblique是倾斜的文字,对于没有斜体的字体应该使用Oblique属性值来实现倾斜的文字效果。主要用于一些需要区别于正文的备注说明文字.
3. font-variant: 包括normal和small-caps两种属性值. 非英文用户可能很少用到这个属性. small-caps是指小型大写字母, 是介于大写字母和小写字母之间的一种字母表现形式, css代码如下:
font-variant: normal;
font-variant: small-caps;
表现如下:
NORMAL small-caps
可以看到小型大写字母比正常的大写字母要矮一截, 需要注意的是, 要实现此效果, html中的中必须使用小写字母, 在css中用font-variant:small-caps;就能自动转化为小型大写, 否则就会显示为正常的大写字母.
4. font-weight: 包括normal和bold两种属性值. blod属性值即指粗体. css代码如下:
font-weight: normal;
font-weight: bold;
表现如下:
normal bold
5. font-size: 用于控制字体大小的属性, 属性值的单位主要有px, pt, cm, mm, %, em, 其中pt, cm, mm为字体绝对大小单位,px, %, em为相对大小单位. 这两种单位各有裨益, 绝对大小单位的优势在于, 不管用户的浏览器设置如何, 均能保持原有的设计样式, 但对于一些有阅读障碍, 习惯于大字体的用户就显得有点死板. 而相对大小单位虽然在可读性上有优势, 但网页界面容易被增大的字体所冲散.
在这里, 限于篇幅就不再解释每个单位的区别和用法. 可以参考Length units.
这里只是强调一点, 如果你的网页主要是在电脑屏幕上显示, 首推px作为你的首选单位, 因为px能够精确地表示元素在屏幕中的位置和大小. 如果你的网页主要用于打印, 则推荐使用绝对单位pt(1pt=1/72英寸)来作为首选单位, 这是因为不管屏幕的分辨率是多少, 打印出来的大小都是一样的.
Summary: 现在总结一下font的属性, 如果想让”Font Property”表现为32px, 行高为150%, 粗体, 斜体, 字体为Georgia, 字组为serif, 代码如下:
font-size: 32px;
line-height: 1.5;
font-style: italic;
font-weight: bold;
font-family: Georgia, serif;
简写为:
font: italic bold 32px/1.5 Georgia,serif;
表现如下:
Font Property
背景(background): 包括background-color, background-image, background-repeat, background-attachment, background-position五种属性.
1. background-color: 指背景颜色, 其属性值有三种形式, 十六进制, 颜色名称, rgb值. 目前最为常用的是”#+十六进制数”. 例: 本站显示代码的段落背景为#EEEEEE的灰色, 代码及示例如下:
background-color: #EEEEEE;
2. background-image: 指背景图片, 其属性值为背景图片的地址, 代码和格式如下:
background-image: url(http://jorux.com/back.png);
例: 本站首页的第一篇文章标题前有个”NEW”图标, 查看css可见如下代码:
#homeheadline a{
color:#444;
padding: 30px 68px 0 40px;
margin:0;
background:url(images/new.png) no-repeat 0 16px ;
}
3. background-repeat: 指背景图片的重复与否以及重复方式, 有no-repeat, repeat, repeat-x, repeat-y四种属性值.
no-repeat: 即无论背景图片的大小, 只显示单个背景图片, 如首页的第一篇文章标题前的”NEW”图标, 代码如上所示;
repeat: 指背景图片横向和纵向重复连续显示;
repeat-x: 指背景图片横向重复连续显示;
repeat-y 指背景图片纵向重复连续显示;例: 查看本站css文件,可以看到以下代码:
body {
font: normal 12px/1.5 Georgia, sans-serif;
text-align:left;
background:#444 url(images/bodybg.jpg) repeat-y;
}
可以看到背景图片bodybg.jpg是纵向重复显示的, 并随页面的长度的增加而增加.
4. background-attachment: 指背景图片的附着方式, 有scroll(默认属性)和fixed两种属性值. scroll指背景图片随页面的滚动而滚动, 而fixed属性值则可使背景图片固定于浏览器的某个位置, 不随页面滚动而滚动. 如下例所示, 您可以试着滚动本页面来看看两图的差别, 左边为scroll, 右边为fixed(请用IE观看以下演示):
5.background-position: 指背景图片的位置属性. 属性值可以有百分比, 位置名称和具体数值三种形式, 如下图所示(蓝色部分表示距离左边框的数据, 黑色部分表示距离上边框的数据):
可以看到, 要使背景图片位于左上角有三种方法, 代码如下:
background-position: 0% 0%;
background-position: top left;
background-position: 0 0;
实际上, 不声明此属性, 即默认背景图片为左上角显示. 值得注意的是, 当用属性值为位置名称时, 先写距离上边框的数据(top), 后写距离左边框的数据(left). 而当用百分比或是具体数值表示时, 则反过来写.请读者仔细看看上图的蓝色和黑色部分的顺序.
不要小看这个属性, 在导航条的制作中, 这个属性将是实现一些动态变化的关键手段(将在以后的实例篇中说明).
Summary: 现在总结一下background的属性, 如果想让某背景图片表现为固定, 位于右上角, 不重复, 背景颜色为#CCC, 代码如下:
background-image: url(http://static.flickr.com/86/240223091_dc1dce25a5_m.jpg);
background-color: #CCC;
background-attachment: fixed;
background-position: top right;
background-repeat: no-repeat;
简写为:
background: url(http://static.flickr.com/86/240223091_dc1dce25a5_m.jpg) #CCC fixed no-repeat top right;
表现如下(请用IE观看以下演示):
本篇正文完.
原以为可以多写几个属性的, 没想到字体和背景两个属性就写了这么长, 在体力和精神上都已经到了极限, 暂写到这, 其余的还看下回更新.


向常在本站留言的朋友征求Gravatar.
Gravatar是一个全球通用的储存个人图标的网站. 您需在Gravatar申请一个帐号, 上传一个80*80的个性图标(需要一天左右时间验证), 就能和自己的邮箱地址绑定, 在世界任何支持Gravatar的地方留下自己的个性标志, 给你的留言增加吸引力!
您的图标被Gravatar收录后, 在本站留言时, Email地址栏填写您在Gravatar注册时的邮箱地址, 即可自动绑定到您的图片(如右图所示).
来试试Gravatar,不知你是怎么让blog支持它的呢?
还有,这个CSS属性是你自己编的? 不错.看着很有帮助的!
总有同学要问, 这些文章到底是不是我写的, 我要说的是, 这是我花一整天才完成的”作品”. 参考了一些东西, 但90%是我平时积累原创的, 并力求在写作过程中避免落入已存在的教程套路, 多写一些大家平时忽略和难于掌控的部分.
还是那句话, 请大家不要吝啬留言, 如果有闲情逸致, 还请注册一个Gravatar!
如有错误的地方, 也请在这留言指出, 必表谢意!
写得非常好。对于一些初学者来说,这是一个非常生动易懂及有效的教程!
很不错,让读者看了就明白是怎么回事!挺实用的!
对了,jorux 这个Gravatar能否在Z-blog中添加呢???
Darknew, Gravatar官方的插件集里没有支持asp的,所以暂不支持Zblog.
没看够!
不过在评论中知道Gravatar倒也有点意思。
不错哦
发现一个错误,呵呵,说明background-position的图片左上角的0 0 颜色反了。谢谢JORUX提供那么好的教程。
To sat:
Thanks! 暂保留这个错误,等有时间再做修改。
尤其是字体部分的教程,很特别,谢!!!!!!
讲的very good,网页界面good too,我受益,谢!
上了那个网站,我怎么没找到申请帐号的地方啊;-P
To: luluzhu :
Gravatar.com正在步入2.0,可能需要几星期,完成更新后接受新的注册。
很高兴又找到一位使用WordPress的同好
也很喜欢你写的这篇文章
刚才在写CSS教学时引用了您对oblique的说法
我也终于能分出italic和oblique的差别了
十分感谢您,也希望您不会介意
該教學在以下網站CSS單元中的 “文字格式” 裡
http://hit1205.ispaz.blogdns.org/
順帶一提,我的部落格就在同一個網址的blog目錄裡 ^^
TO 風痕影: 不介意你的转载,但希望加上反向链接。
不过大陆的网路好像访问不了你的blog。
好运!
有的,在教学文章底端的参考资料有列出您的连结唷 ^^
之前也有大陆的朋友反映说连不上我的blog
而且我发现同一网域其他人的blog也是连不上的
因此我怀疑整个blogdns.org会不会都被挡住了…
所以,前几天为了做大陆的 “博客男女” 测验,费尽心思
经过好几层的转换,总算让 “博客男女” 可以连上我的 blog
不过,各省的情形应该不大相同,因为…
前几天我的计数器告诉我说,有从南京连过来的
我在想,是不是該用 FeedBurner 或者其他服務
弄一个新的 feed 出来,专门给大陆的朋友订阅
PS. 很抱歉,上篇我竟没注意到,后面三行没有转成简体
To 風痕影:
1. 我也推荐用FeedBurner烧制一下,不过要注意把全文都要烧制入Feed。
2. 你习惯用繁体的话,用繁体就好,没必要转成简体。不像某些大陆人,明明是用简体的人,非得转成繁体装门面。
3. blogdns.org确实被屏蔽了。
4. 说到大陆的网络管制,真是…..
最近对web design感兴趣了,又在这看到这么好的资源,真是太感谢了!!!
解决大陆用户不能访问国外某些站点的问题—-匿名软件Tor
TOR官方网站:http://tor.eff.org/
参考1:http://lanker.130.tofor.com/blogview.asp?logID=115&cateID=1
参考2:http://lanker.130.tofor.com/blogview.asp?logID=116
希望能给大家带来方便!!!
从你的Blog中,我看出了什么才叫真正的高手,那就是把优秀的外文网站的精华吸收之后,然后介绍给我们这些国内的使用者。我很早就开始接触css,但是一直因为自己的英文不好,惧怕英文网站,直到最近,在delicious上落户,才开始慢慢接触国外的优秀网站。向站长学习,我听说站长是学医学的,但是对webdevelop感兴趣,我也是,不过我是学财政税收的,问我怎么缴税还可以,呵呵。
打算认真学习您!希望教程写完并且写好!
但是IE7下,你的演示显示不出
发现错误:
font-stye:normal;
font-stye:italic;
font-stye:oblique;
stye少个l,呵呵