若水
智者乐水
posts - 2,  comments - 0,  trackbacks - 0

要实现web标准初步先要做到:
     1.为页面添加正确的DOCTYPE 
DOCTYPE其实是document type 的缩写,主要用来说明你用的XHTML或者HTML是什么版本。浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。XHTML1.0提供了三种DOCTYPE可选择:
     (1)第一种过渡型(Transitional )求非常宽松的DTD,它允许你继续使用HTML4.01的标识:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    (1)第二种严格型(strict)要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    (1)第三种框架型(frameset)专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    2.设定一个名字空间(Namespace)(xmlns"是XHTML namespace的缩写,叫做"名字空间)
<html XMLns="http://www.w3.org/1999/xhtml" >
    3.声明你的编码语言
为了被浏览器正确解释和通过标识校验,所有的XHTML文档都必须声明它们所使用的编码语言。代码如下
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> 
这里声明的编码语言是简体中文GB2312
    4. 用小写字母书写所有的标签 
XML对大小写是敏感的,所以,XHTML也是大小写有区别的。所有的XHTML元素和属性的名字都必须使用小写。否则你的文档将被W3C校验认为是无效的。例如下面的代码是不正确的:
<TITLE>公司简介</TITLE> 
正确的写法是:
<title>公司简介</title> 同样的,<P>改成<p>,<B>改成<b>等等。
   5.为图片添加 alt 属性 
为所有图片添加alt属性。alt属性指定了当图片不能显示的时候就显示供替换文本,这样做对正常用户可有可无,但对纯文本浏览器和使用屏幕阅读机的用户来说是至关重要的。只有添加了alt属性,代码才会被W3C正确性校验通过。注意的是我们要添加有意义的alt属性,象下面这样的写法毫无意义:
<img src="logo_unc_120x30.gif" alt="logo_unc_120x30.gif"> 
正确的写法:
<img src="logo_unc_120x30.gif" alt="UNC公司标志,点击返回首页"> 
   6.给所有属性值加引号 
在HTML中,你可以不需要给属性值加引号,但是在XHTML中,它们必须被加引号。
例:height="100",而不能是height=100。 
   7.关闭所有的标签
其次,可以进一步,做到结构和表现相分离上:
   1.用CSS定义元素外观:例如对font元素,以及对p,等元素处理....

   2.用结构化元素代替无意义的垃圾 
句子一<br /> 句子二<br /> 句子三<br /> 
如果我们采用一个无序列表代替会更好:
<ul> <li>句子一</li> <li>句子二</li> <li>句子三</li> </ul> 
    3.给每个表格和表单加上id
给表格或表单赋予一个唯一的、结构的标记,例如
<table id="menu"> 
接下来,在书写样式表的时候,你就可以创建一个“menu”的选择器,并且关联一个CSS规则,用来告诉表格单元、文本标签和所有其他元素怎么去显示。这样,不需要对每个<td>标签附带一些多余的、占用带宽的表现层的高、宽、对齐和背景颜色等等属性。只需要一个附着的标记(标记“menu” 的id标记),你就可以在一个分离的样式表内为干净的、紧凑的代码标记进行特别的表现层处理。
    样式表使用方法:第一种内嵌法....
就是将样式表直接写在页面代码的head区。类似这样:
<style type="text/css"> <!-- body { background : white ; color : black ; } --> </style> 
    第二种外部调用法:将样式表写在一个独立的.css文件中,然后在页面head区用类似以下代码调用。 
<link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" /> 
在符合web标准的设计中,我们使用外部调用法,好处不言而喻,你可以不修改页面只修改.css文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。
     关于收藏夹小图标为搜索引擎准备的内容(meta 的设定)转摘于
                                                                         ——http://www.52css.com/article.asp?id=23
收藏夹小图标

首先制作一个16x16的icon图标,命名为favicon.ico,放在根目录下。然后将下面的代码嵌入head区:
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />


为搜索引擎准备的内容

代码如下,替换成你自己站点的内容就可以:
允许搜索机器人搜索站内所有链接。如果你想某些页面不被搜索,推荐采用robots.txt方法
<meta content="all" name="robots" /> 

设置站点作者信息
<meta name="author" content="ajie@netease.com,阿捷" /> 

设置站点版权信息
<meta name="Copyright" content="www.yzci.com,自由版权,任意转载" /> 

站点的简要介绍(推荐)
<meta name="description" content="新网页设计师。web标准的教程站点,推动web标准在中国的应用" /> 

站点的关键词(推荐)
<meta content="designing, with, web, standards, xhtml, css, graphic, design, layout, usability, ccessibility, w3c, w3, w3cn, ajie" name="keywords" /> 

补充说明,前面花了5节都是讲head区的代码,实际页面内容还一字未提,不要急!
其实head区是非常重要的,看一个页面的head的代码就可以知道设计师是否够专业!

       其它细节注意

1.把所有<和&特殊符号用编码表示
任何小于号(<),不是标签的一部分,都必须被编码为& l t ; 
任何大于号(>),不是标签的一部分,都必须被编码为& g t ; 
任何与号(&),不是实体的一部分的,都必须被编码为& a m p; 
注:以上字符之间无空格。
2.给所有属性赋一个值
XHTML规定所有属性都必须有一个值,没有值的就重复本身。例如:
<td nowrap> <input type="checkbox" name="shirt" value="medium" checked> 必须修改为:
<td nowrap="nowrap"> <input type="checkbox" name="shirt" value="medium" checked="checked">

3.不要在注释内容中使“--”
“--”只能发生在XHTML注释的开头和结束,也就是说,在内容中它们不再有效。
例如下面的代码是无效的:
<!--这里是注释-----------这里是注释--> 
用等号或者空格替换内部的虚线。
<!--这里是注释============这里是注释--> 

关于校验

1.XHTML校验

● 校验网址:http://validator.w3.org/ 
● 校验方式:网址校验、文件上传校验 
● 校验成功,会显示"This Page Is Valid XHTML 1.0 Transitional!",如图:


● 校验失败,会显示更多校验选项和错误信息,如图:


一般选择"Show Source"和"Verbose Output"可以帮助你找到错误代码所在行和错误原因。

XHTML校验常见错误原因对照表
● No DOCTYPE Found! Falling Back to HTML 4.01 Transitional--未定义DOCTYPE。 
● No Character Encoding Found! Falling back to UTF-8.--未定义语言编码。 
● end tag for "img" omitted, but OMITTAG NO was specified--图片标签没有加"/"关闭。 
● an attribute value specification must be an attribute value literal unless SHORTTAG YES is specified--属性值必须加引号。 
● element "DIV" undefined---DIV标签不能用大写,要改成小写div。 
● required attribute "alt" not specified---图片需要加alt属性。 
● required attribute "type" not specified---JS或者CSS调用的标签漏了type属性。

其中最最常见的错误就是标签的大小写问题了。通常这些错误都是关联的,比如忘记了一个</li>其他<li>标签都会报错,所以不要看到一堆的错误害怕,通常解决了一个错误,其他的错误也都没有了。

如果你的页面通过XHTML1.0校验,可以在页面上放置这么一个图标: 

代码如下:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
<p> <a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a> </p> 



2.CSS2校验

● 校验网址:http://validator.w3.org/%C2%A0
● 校验方式:网址校验、文件上传校验 
● 校验成功,会显示"This Page Is Valid XHTML 1.0 Transitional!",如图:


校验失败,会显示两类错误:错误和警告。错误表示一定要修正,否则无法通过校验;警告表示有代码不被W3C推荐,建议修改。

CSS2校验常见错误原因对照表
● (错误)无效数字 : color909090 不是一个 color 值 : 909090 ---十六进制颜色值必须加"#"号,即#909090 
● (错误)无效数字 : margin-topUnknown dimension : 6pixels ---pixels不是一个单位值,正确写法6px 
● (错误)属性 scrollbar-face-color 不存在 : #eeeeee --- 定义滚动条颜色是非标准的属性 
● (错误)值 cursorhand不存在 : hand是非标准属性值,修改为cursor:pointer 
● (警告)Line : 0 font-family: 建议你指定一个种类族科作为最后的选择 --W3C建议字体定义的时候,最后以一个类别的字体结束,例如"sans-serif",以保证在不同操作系统下,网页字体都能被显示。 
● (警告)Line : 0 can't find the warning message for otherprofile --表示在代码中有非标准属性或值,校验程序无法判断和提供相应的警告信息。 

同样,通过检验后,可以放置一个CSS校验通过图标,代码如下:

div css xhtml xml Example Source Code Example Source Code [www.52css.com]
<p> <a href="http://jigsaw.w3.org/css-validator/"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" /> </a> </p> 









posted @ 2008-07-18 15:43 狂奔的蜗牛 阅读(469) | 评论 (0)编辑

段正淳的css笔记(6)-浅谈css框架开发

个人总结了在开发css框架中的一点经验,献丑了。希望大家的讨论能使我们共同进步。:)

1、css框架

中国的互联网行业已经发展了10年,浏览器也从最早流行的NS到现在的FF3.IE7等等……前端开发工程师的职位也诞生了。近几年在web开发中,有个非常火的词——“框架”。YUI、JQuery、Prototype这些javascript框架在开发网站时,确实成为前端开发工程师的手中利器。为什么呢?因为框架是包含工具、函数库、约定,以及尝试从常用任务中抽象出可以复用的通用模块,让设计师与程序员避免重复开发。通俗地讲便是把大多数重复工作的时间给节约了。

编写css也是一样,从最初只是定义文字颜色、内容排版,到现在定义所有的表现。css框架也渐渐被重视了,因为大家都认识到:从具象的表现中抽出抽象的模块来重复使用,是减少用户下载、方便团队及个人开发最重要的手段。

2、css框架的开发顺序

a) 格式化 reset.css

格式化css的真正好处是能够快速启动工作,你可以在新的HTML文件里引入框架,不用再处理重置padding 和 margins,实现统一的排版、浏览器下的相同表现。

b) 布局 layout.css

定义页面是二栏还是三栏,是全屏还是1024×768……

一个网站的设计可能有很多种布局,但是大多数都是由几个具有复用性的布局组成,选择性的引入所需要的布局,可以很快地应用所期望的页面布局。

c) 基本样式 type.css

定义body、h1-h6、a:link-a:active、p等的字体大小和颜色。
基本样式的css引用,譬如将ul定义class为“ul-text”,用来展现相同的icon、行间距、链接色彩。
还可以像这样应用:class=”ul-text square”,li前展现的是方型的icon。

d) 表格修饰 table.css

定义table、tr、td、th、thead、tfoot、tbody、caption等标签的表现。
和基本样式一样,但是表格在现有网站的展现形式几乎都是处理数据,所以分开存放引用。譬如在table上应用table-style-1便是黑色边框的表格,table-style-2便是黄色边框的表格。

e) 表单修饰 form.css

定义fieldset、label、button、input 、select、textarea这几个标签的表现。
大多数网站的表单、按钮、输入框几乎都是一样的。之所以引入这个css,是为了便于统一在各个浏览器中的展现。默认的按钮、输入框等在各个浏览器下的展现区别很大,虽然在格式化的css中已经初步的统一,但是输入框的边框,按钮的样式都是需要在这个css中定义的。无奈的是select无法做到统一,如果考虑到用js实现的话,这个成本太大了点。

f) 打印修饰 print.css

修饰打印输出的页面。

g) 包含其他css的css

frontpage.css、list.css、detail.css、register.css等等

根据各种引用去引入相应的css。譬如list页面中没有需要表格的修饰,那就不引入table.css。以节约代码量。

3、css框架文件夹的建立

a) core 主要的
存放reset.css、layout.css、type.css、print.css

b) bud 模块
存放table.css、form.css、album.css等css

c) petal 具体应用
存放封装过的css。frontpage.css、llist.css、detail.css、register.css等css。这个文件夹存放的css都是被直接引用的。

文件夹的命名,按个人喜好啦! :) 我还希望用电子、质子等命名呢。嘿嘿!

4、css框架的优点

a) 提高开发效率。
b) 规范名称定义,便于维护。
c) 规范项目开发流程
d) css代码更清晰、简单。html代码更合理。

5、css框架的弊端。

a) 学习成本提高。你需要了解整个框架,需要阅读框架的文档。
b) css框架对于一个小项目等页面来说很臃肿。框架中可能有大部分你用不到的代码。
c)可能会无法帮助你的技术提高。太依赖框架,以至于很难排除bug。包括框架中本身就带的bug。
d) 选择自己需要的框架与开发框架都很痛苦。写到后面发现越来越不灵活,越来越臃肿。残念 -_-

6、开发及使用css框架中常遇到的问题。

1、页面外部引用样式过多。
譬如关于ul的margin定义,在格式化的css中会声明为0,而在基本样式的css中又可能会声明margin:5px 10px;
所以在Yslow中会出现多次定义。

2、组件复用性的考量。
譬如表单定义的css中定义了所有表单的修饰,而假定在注册这个页面中只是需要这个css的百分之三十。那是否应切割出去那不要的百分之七十?

综合以上的二个问题,个人认为解决的方式便是封装,让该有的有,不该有的没有。尽量减少http连接数和css的大小。但如果彻底是这样做的话,css的复用性又会变得很差,后期手工的封装会很痛苦。只能套用小马的一句话“具体情况,具体分析”。人生真是矛盾啊…

3、到底该不该支持em?
可见如要支持em,最大的目的是为了在浏览器中可以根据用户的分辨率大小自由缩放,对于拥有超大显示器的用户与小显示器的用户是非常有用的。可是在采集我们用户的浏览器数据后,发现分辨处于这二端的用户非常少,可想而知,为这部分的用户多花比正常开发一倍以上的时间显然是件不划算的事情,所以当初在开发tbsp的时候,我们团队就决定了不支持em。当然这是个建议,我们也希望能使用em带给用户最好的感受。

posted @ 2008-07-18 10:55 狂奔的蜗牛 阅读(6) | 评论 (0)编辑
  

<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

与我联系

搜索

 

常用链接

留言簿

随笔档案

朋友

最新评论

阅读排行榜

评论排行榜