阿七
级别: 未验证会员
精华:
0
发帖: 909
威望: 0 点
金钱: 2161 RMB
贡献值: 0 点
在线时间:512(小时)
注册时间:2006-03-29
最后登录:2008-08-07
|
为何使用表格排版是不明智的
为何使用表格排版是不明智的 H$G`e'`OZ 出处 Zw4z`x1f D=ZH? d 找出问题,对症下药 ,dyCuH!B 表格之所以存在于 HTML 中,只是为了一个目的:显示表格状的数据。然而此后的 border="0" 使得设计师可以将图片和文本放在这无形的网格中。迄今为止,表格仍然主导着视觉丰富的网站的设计方式,但它却阻碍了一种更好的、更有亲和力的、更灵活的,而且功能更强大的网站设计方法。下面我们开始寻找这个问题滋生的源头,并学习创建过渡性的,甚或完全不需表格的排版方式。 E(%_aFx>/ &:Mk^DH5 概览:这对我有什么用处?
_c:}i\8R 我们将告诉你这样一种工作方式,它会: W.67};', 6sE%] u<V 使你的页面载入得更快 e
#{,M8 降低你的流量费用 ! J7ExfEA 让你在修改设计时更有效率而代价更低 TDqH"q0 帮助你的整个站点保持视觉的一致性 3fdx&}v/ 让你的站点可以更好地被搜索引擎找到 YoU|)6Of 使你的站点对浏览者和浏览器更具亲和力 c}$C=s5 h} 在世界上越来越多人采用 Web 标准时,它还能 提高你的职场竞争实力 (事实上也就是降低失业的风险)。 a%FM)/oI|T 我们还会讨论如何用层叠式样式表 (CSS) ——也许是一个和你曾经采用的方式 (表格) 有些微不同的——思维方式来处理你的内容和标记。 Y:;]qoF L+GVB[@3Y 魔鬼网站:嵌套的表格与 GIF 分隔图片 * |dz.Tr 开始的时候,Internet 不过是学校、研究者和军方用来交换信息的一个媒介罢了。然而那些早期的梦想家们没花多长时间就发现:这实在是个理想的媒体,尤其对于销售从新鲜农产品和狗粮到二手车和实时体育报道来说。 Ja`xG{~Y7i ZjB]pG+ 即便如此,和其他媒体的幼年时期一样,早期的 Internet 看起来是那么的‘粗糙’ (以至于实在不怎么能吸引顾客)。直到大概 1997 年的时候,David Siegel 出版了他那本里程碑式的书*,它在当时有限的浏览器功能和 W3C 标准之下,设计出非常华丽的网页效果。(朋友,其实我们说的是 Netscape 2 和 3 啰。) }4dbS ;C< qG&}lg?g{ 这些效果是多么漂亮啊,以至于到今天,它们还是最流行的网页排版方式。 m
N&
G =#z8CFq[O 译注:David Siegel 这本书的名字是 "Creating Killer Web Sites",表明用表格和分隔 GIF 可以设计出魔鬼般迷人的站点。 ].(l^W Qo%IZw$l 表格带来的问题: F4R0A6HL 把格式数据混入你的内容中。 O
5v)}4 这使得文件的大小无谓地变大,而用户访问每个 页面时都必须下载一次这样的格式信息。 KFuPgp 带宽并非免费。
dm:2:A8^ 这使得重新设计现有的站点和内容极为消耗劳力 (且昂贵)。 awC:{5R8v 这还使我们保持整个站点的视觉的一致性极难,花费也极高。 }M0GPpv 基于表格的页面还大大降低了它对残疾人和用手机或 PDA 浏览者的亲和力。 rYn)E=FG/ 解决方案近在眼前 .,l4pA9v 现在的浏览器在支持 Web 标准方面有了很大的改进,所以我们再也不必使用那些古老的方式了。 4S7#B azCod1aL{ 我们将去掉那些表格里嵌套的表格和用 GIF 填充的单元,代之以简洁的标记和 CSS 排版出的载入快速、修改方便、对所有人都那么有亲和力的漂亮站点。 pl4:>4l/ y$Rh$eK 解决方案:CSS 与结构化标记 EvJ<X,Bo 通过在 HTML 文档中使用结构化的标记以及层叠式样式表来排版,我们可以使页面的实际内容与它们呈现的格式相分离。 l'Kx#y$ j7>a^W
比之使用表格,它有这么一些优势.... s9\N{ar# UNOKK_ 把页面中的外观标记去除以后,重新设计现有的站点和内容将变得非常节省人力 (同时便宜得多)。如果想改变站点的输出,你只需要改动一下样式表就行了,而完全不必改动页面本身。 +YFA Zv7` tupAU$h?! 比如说,你可以看看 CSS Zen Garden,或者 Eric Meyer 的站点 上的样式切换器。如果想了解更多,可以看看 Paul Sowden 写的 Alternative Style。 G)8H9EV ny'wS 带宽并非免费 W2T-TI,>PC 运用 Web 标准来缩减网页文件的大小,这样用户将不必访问每页都下载一次外观的数据。控制输出效果的样式表是由用户的浏览器自动缓存的。
Sa 8T'%W p?H2W- 缩减文件大小意味着更快地载入和更少的流量费用。 )/FEjo i%3q*:A]2 嘿,这些网页就像一个模子里刻出来的! 'mm~+hp 运用 Web 标准还能使保持整个站点的视觉一致性变得非常简单。因为页面使用同样的 CSS 文档来进行排版,所以它们会被格式化为相同的风格。 ]ddTHl 1x3>XN]a 这样加深了你的站点给人的印象还能使它更便于使用。
m.b}A'GT 3[
cGSI"+ 一次编辑,到处应用,人人皆然 hx$bY 运用 Web 标准使得你的站点对残疾人和使用手机或 PDA 的 Web 浏览者 更具亲和力。 mhv ;pM6 ^$x1~}D 使用读屏器 [2] 的访问者 (或者连接速度比较慢的访问者) 不希望在下载了数不尽的表格单元和分隔图片后才获得我们页面的实际内容。 ["~T)d' [;LP6n7v 换句话说,把内容与格式分开使得你的内容与设备无关。 dUc([&
h~-cnAMt [2] 译注:读屏器(screen reader)是盲人等无法观看显示器的用户使用的一种把当前屏幕上的内容朗读出来的设备。 Cb
i;CF\{ }Q-%ij2 Google 的眼神不大好 ]?*L"()kp 保持网页的亲和力、尽量减少它的标记、并合理的运用网页头部的标签同样会帮助你提高搜索引擎上的排名。 Z1N=tL kj]m@mS[ 降低代码/内容比、在头部标签中加入关键字,把网页顶部的的标志图片改为文本……这些行为都可以帮助你的站点在搜索引擎中获得更好的搜索结果。 D&|HS! mBON>Z[4. 你仍然可以在需要时运用表格,别用得太多就行了 ~@%#eg 这对于那些固执于老式的第四代浏览器的浏览者 (和你的老板们) 会比较好接受,而在直到他们回心转意之前,其他人至少也能接受。 v&3 Oc 1{$=N2U 5XF&yYWq /=gU 看看表象之下是什么 ;9)A+bD] }_,={<g 下面的代码描述的表格的结构: (yv)zg9 -/LB-t table { margin: 3px; padding: 2px; border: solid 2px blue } (P|k$S?m &.chqP(| td { padding: 2px; border-style: solid; border-width: 1px; border-color: gray gray silver silver } ~zcB@; : a'|/=$
这样就好多了 &]jCoBj+_ miEf<<L#z 这是用来去掉那些多余的标记的 CSS 代码: .&;:X ) ]>oI3&6s table { border-bottom: 1px dotted fuchsia; border-left: 1px dotted fuchsia } JVq`v#8 T&u25"QOf td { padding: 11px 20px 20px 11px; border-top: 1px dotted fuchsia; border-right: 1px dotted fuchsia } %R@&8 %Zi}sm1t ul { margin-top: 10px; margin-bottom: 10px; margin-left: 0; padding-left: 1em } [9,34/i ,%$Cf
u li { margin-bottom: 10px } Q|tzA10E
ku^0bq}BrH 过渡性的设计 )O$T; U 使用 margin 和 padding 来代替多余的表格单元和间隔 GIF。 |6T"T P 8
_|"+Ze 使用 link 和 @import 来载入样式。前者用于早期浏览器,后者给现在的浏览器。 F:'>zB]-} R0bWI`$Z <link href="basic.css" rel="stylesheet" type="text/css"> }-%:!*bLj mL3 Q <style type="text/css" media="screen"><!-- yCZ[z
A @import url(modern.css) screen; z]n&,q,5g --></style> s,]z6L0 /A>1TPb09" 一些实例: XE?,)8 y0\ = F Santa Cruz Montessori School *%jd>e7d k10k EQ2HQz] Fox Searchlight Pictures e|Mw9DIW 等等,还有更多: R*>EbOuI 想了解更多关于过渡性设计的信息,请阅读 Eric Meyer on CSS 的第一章。和 Jeffrey Zeldman 的 Designing with Web Standards 的大部分内容。 0w ;#4X:m _0!<iN L CSS 排版:希望就在眼前 eZ;DNZK av 大部分用户使用的浏览器都有很好的 CSS 支持,当然它们也有个各自的脾性,不过只要你习惯了它们,就能够处理得很好。 dY'>'1>P
9 S'(Hl}h!. 编写 CSS 代码很简单。即便对于一个看 JavaScript 就像看天书的家伙来说也是如此。 :AM_C^j~
D *Fz#x{zt if(links[x].length > 0);{ (q
g~l@rf for (y=0; y<links[x].length; y++) { 7oFA5T _ -r@/8" 每条 CSS 规则都有一个选择符和一个声明。声明是由 属性名(property) 和 属性值(value) 组成的。属性名一般使用连字符(-)连接。 xT;j_'9U; Aj "SSX!L body {margin:0; padding:0} xqLIs:* T[]kun .related {float:right; width: 15em; margin-left:1em; margin-bottom: 1em; color:blue} O*-sSf LAPCL&Z #footer {color: gray; font-size: 0.6em; line-height: 1.2em; background-color: white; margin: 0} *&vi3#ur un(fr7NW 结构化标记:所写即所想,所想即所写 eW zyydl 即便书写 CSS 很简单,使用 CSS 来排版却真的需要一种和我们以往有些不同的思维方式。 Uiu9o]n >TddKR@C 我们排版时考虑的不是“这个东西放在这儿,那个东西放在那儿”,而是页面中信息的类别和信息的结构。 @d_;p<\l -[-Ry6G 我们用 <h1> 标记来标示最重要的头条;次一级的条目则用 <h2> 来标记,以此类推;而段落则放在 <p> 标记中。 C 8qVYrw Y~uqKb;A 这就是我们称之为“结构标记”或“语义标记”的东西。 $,#,yl ol <n|.Z-gF\ 你的内容将不放在表格和表格元素中,取代它们的是 div 元素。还要给你的 div 元素安排一个 id 或 class,不过这是为了描述它们的内容或功能,而非它们的外观。 R;Gf3K HP*AN@>Kw 避免 <b>ed 与 <br>eakfast 标记 XIJ{qrDr 且想想为何你希望某个对象按特定的方式出现;它有什么含义?你的标记能够也必须表达意思,即便对于那些无法观看页面的人来说也是如此。语义性的标记使得你的页面对一切受众都更有亲和力,这还包括了搜索引擎。 `8N],X :z} 当你把某个对象设为斜体时,大概要么就是想强调它,要么是想 引用某个书中标题吧? 如果是前者,应该用 <em>;如果是后者,其实得用 <cite>。 t4CI +fqy 3+| {O 如果某个对象被标记为粗体,事实上它应该被标记的是, <strong>。 {_5PN^J >5}jM5$ 如果你希望在某处添加一个换行,这大概是开始了一个新的开头。如果不是开头,会不会是某种在你的站点中出现过的class (类型)?在上面两种情况下,你都应该用 CSS 替换 <br>。 C*fSPdg? {glRXR .foo {display:block} 7]6HXR @ M/^kita 如果希望了解更多,请阅读 Bed and BReakfast markup (B&BR), Tantek Çelik 作品。 ~TEKxgU _Q3Ad>,U 导航条该怎么做? Z,bv D'u 考虑你需要导航的内容是一些无序的链接这种情况:
.4-I^W"1 95CCje{o_ 用 <ul> 标签来编辑它们。 jboQ)NxT!, >J[Wd<~t link1 >o"3:/3 link2 ]kd
)j link3 VT&R1)c link4 63?fn~0\ link5 :,^p
L At 水平导航条 >@o}l:* 我们可以用 CSS 来控制这个列表显示在网页上的外观。 32*FI SH^ ,3{z_Rax- 通过使用 display:inline 我们可以创建水平导航条。 t"@:a
Y" &G>EBKn\2` 6!}tmdzR OgTE^W@ 这是上面这个导航条用到的代码: "A_WU| -\`n{$OR #nav1{ =e)[?{H margin-top: 1em; 0Up@+R2 margin-bottom: 0.5em; \
l+RX* } Zbp ByRyN 'sL>U$(
#nav1 ul { [z:bnS~yiD background-color: silver; Aghcjy|j text-align: center; $e|G#mMd- margin-left: 0; rZy38Wo padding-left: 0; u|=G#y;3 border-bottom: 1px solid gray b-{\manH } KsGS s9 b+NF:-fO #nav1 li { =De%]]> list-style-type: none; 1@Bq-2OD4 padding: 0.25em 1em; ^ZFbp@#U border-left: 1px solid white; ;C%D+"l1g display: inline @\_tS H }
< | |