采用CSS+DIV对网站重构日趋被大家重视起来了,尤其是大型站点。~=uG]
nXV@ lrGs" y3";x4sJ#tq#:%
采用CSS+DIV进行网页重构相对与传统的TABLE网页布局而具有以下4个显著优势:][PuFM(=%6{=^|p&j
1:表现和内容相分离R?~h
wS8kh1€.
将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。9T;1H4e%IA''M?6
2:提高搜索引擎对网页的索引效率[jf4\'~lCz~O:v
用只包含结构化内容的HTML代替嵌套的标签,搜索引擎将更有效地搜索到你的网页内容,并可能给你一个较高的评价。nmLR6A}1TC'BNCY/ys
3:提高页面浏览速度V3{)B
vyR}Pq|d !{
对于同一个页面视觉效果,采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。Yw%|!1XT&eXxK
4:易于维护和改版aa*
€KL(AJ&3
你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。L:0E{pi1x]%^E
H
从以上的描述来看,采用CSS+DIV对网站重构可以大大提升网站用户与搜索引擎的友好度。=HtX5ZW=)+?L@'e
CSS+DIV所以成为目前网页布局主流,在我看主要核心原因,其实不仅仅是其符合W3C标准,而是通过采用CSS+DIV,网页工程从此: -G?=nRO_ %qPe-v^7
bcbY,Ib63`,#
表现与内容分离MlmWxLCD(xmZE&
r:{()ory-PbK^F
现在div+css已经很风靡了,各大网站都纷纷重构为div+css模式,网易就是最好的例子,采用层和CSS后,给用户最直观的体验就是网页打开速度快了很多。能给用户好的体验,为什么不做呢?Kz6|5}=,.+8?x`€Q
从SEO的角度来分析用DIV+CSS进行网站制作或重构的必要性: #[;6Ob#*`}Dkydd;5
用div+css构架的网站容易向W3C 标准靠拢,网站是否符合W3C标准是搜索引擎给网页排名的一个影响因素,特别是YAHOO,它看的比较重。 P
AY|L4k`BL2'B 网站源代码简洁,除了几个div,ul,li,dl,dd,dt之类的标签外,几乎不用其他标签,这样,是网站内容完全裸露在搜索引擎的蜘蛛面前,便于抓取关键内容,增大关键内容的页面的比重,从而为排名因素增加比重。 ZV2eJotlcuin1HY= 可轻松做到关键内容先被蜘蛛读取。一般的站点都是左中右三栏式,页面的主要内容是在中间一栏,而蜘蛛读取页面内容是按照从上而下,从左至右的顺序进行的,如果你的左栏内容比较多,那就麻烦了,你的页面主要内容权值就会下降。而用div+css就可以把主要先写在前面,在写左栏,右栏内容,然后通过CSS一定位就可以了 LCNPw74xNS{Jl 方便调整网站结构布局。对于常用的表格布局,若想改下布局,可谓牵一发而动全身,网站层结构如果设计的合理,可以用CSS很轻松的改变网站的表现,这就是结构和内容,行为的分离。如果网站结构定期改动,自然对搜索引擎的蜘蛛吸引力不小的。\BP?Ef#aD[
jm16V-: 一个用层和css做好根基的网站,以后的优化工作自然会省力不少的。 Frov}mi(U4@t4
问:6S]WxeCoqP+tHX99G
3 ?+?gWKt;Xg|=% 1、简介:为何使用表格排版是不明智的?"GhXawzm%m€:%Q~ 表格之所以存在于 HTML 中,只是为了一个目的:显示表格状的数据。然而此后的 border="0" 使得设计师可以将图片和文本放在这无形的网格中。迄今为止,表格仍然主导着视觉丰富的网站的设计方式,但它却阻碍了一种更好的、更有亲和力的、更灵活的,而且功能更强大的网站设计方法。AsWhlzD,€UxgmV?V 2、概览:这对我有什么用处?bvY/&o?.9#}|Rra}ii
它会:}EziE0
OXJc€MxT]Fx-f
使你的页面载入得更快(表格要加载到</table>才能显示表格内的内容,而CSS+DIV则不必要。当我们发现一个网站半天才突然显示出来的,基本上就是因为用了大大的的TABLE相互嵌套引起的。如果用CSS+DIV,我们会非常明显的发现,网站一部分一部分的显示出来,当网速慢时,效果非常的明显。ySn98x~0,$
wR#=r0k9K3Z"
+x[IP 降低你的流量费用 因为CSS代码可以缓存,所以只下载一次就行了。并且,DIV本身的写法代码量就小于TABLEt@E7'D["!A@s
2 让你在修改设计时更有效率而代价更低cR%mS&4T;.tx?l}6
F}b!I5I_i"O5T;BG 帮助你的整个站点保持视觉的一致性=V9m)?2oMnqn?n@
y.G
p(ZpTm#_€Ys1e6 让你的站点可以更好地被搜索引擎找到BMem€4nS!Q`O*6o
U?GY{SK8iOgPfU 使你的站点对浏览者和浏览器更具亲和力v&K6M'-kA5
&N=%Ej&N5yyo'J5Nmk
3、表格带来的问题bX
~wCri}5 KvX"-
把格式数据混入你的内容中。Ew"EK%q~G6= 这使得文件的大小无谓地变大,而用户访问每个 页面时都必须下载一次这样的格式信息。W6%l6otFiMlC€7B_$ 带宽并非免费。^
3h"vMJfhMbr8 这使得重新设计现有的站点和内容极为消耗劳力 (且昂贵)。5mP?}]€#v€`C(-{Hp 这还使我们保持整个站点的视觉的一致性极难,花费也极高。!Q^R9uF;B57QW_u 基于表格的页面还大大降低了它对残疾人和用手机或 PDA 浏览者的亲和力。,FKx7s1u)#(5 v3$
4、过渡性的设计bmkQz?$Ny[?07 uB
使用 margin 和 padding 来代替多余的表格单元和间隔 GIF。{hsDsEe5Pr&68rxfV
使用 link 和 @import 来载入样式。前者用于早期浏览器,后者给现在的浏览器。2A
Q
ie~$mTNn1_
<link href="/basic.css" rel="stylesheet" type="text/css">.s, =w*"`/?ZyQn€][
<style type="text/css" media="screen"><!--Hn[5=4fJo|/iYj @import url(modern.css) screen;o.!palKdKy_[z~BZ --></style>!S6t(
Byh6t]p"EJ+
5、结构化标记:所写即所想,所想即所写CamIP^0WUuX P5
即便书写 CSS 很简单,使用 CSS 来排版却真的需要一种和我们以往有些不同的思维方式。,0&]v'rshXtW1c%
我们排版时考虑的不是“这个东西放在这儿,那个东西放在那儿”,而是页面中信息的类别和信息的结构。]_tN90ZQ*"n6rR
我们用 <h1> 标记来标示最重要的头条;次一级的条目则用 <h2> 来标记,以此类推;而段落则放在 <p> 标记中。`eY,M
E*ns@m?3/j
这就是我们称之为“结构标记”或“语义标记”的东西。;I-"zv2\!€q,+B9
你的内容将不放在表格和表格元素中,取代它们的是 div 元素。还要给你的 div 元素安排一个 id 或 class,不过这是为了描述它们的内容或功能,而非它们的外观。4@2%\H)QKg6n
当你把某个对象设为斜体时,大概要么就是想强调它,要么是想 引用某个书中标题吧? 如果是前者,应该用 <em>;如果是后者,其实得用 <cite>。no|ah'\fz\Q;\09H
如果某个对象被标记为粗体,事实上它应该被标记的是, <strong>。[[IjB;;T7|`~]j?e?
如果你希望在某处添加一个换行,这大概是开始了一个新的开头。如果不是开头,会不会是某种在你的站点中出现过的class (类型)?在上面两种情况下,你都应该用 CSS 替换 <br>。'L1xU]@YmPa9i(
.foo {display:block}X`€0KlMZ+iZ`8 GQ]WF
考虑你需要导航的内容是一些无序的链接这种情况:6$;HFA*U:Ay5/9|K
用 <ul> 标签来编辑它们。mOd0F[\pc?R rL
link1NhHsN6wH/tm0l? link2
I-mCxO QiZV
._j( link3/]'#/y&!P6Iz€` link4GC?`$}@f*1F}6\nJ; link5/tWSH!@.
!}~?b$[UC 水平导航条=zX7HXrt=I*p9F 我们可以用 CSS 来控制这个列表显示在网页上的外观。Sm?$Df'iDW)GQV
通过使用 display:inline 我们可以创建水平导航条。Dnbc#gL(gFV6x
e^
link1?o&dYfT&ype?fTm. link2"b@5$2*6)lN^R link32()`'IWK.}z;j@mOf link4{HQ^%NVJU6e\'-p\ link5NOf
;G^8`xR^wT=x 这是上面这个导航条用到的代码:(!KEKR!j}6~c8i
#nav1{^o/$;~D;}?'S margin-top: 1em; ||-b^0}Zv@]te~9. margin-bottom: 0.5em;4oj.kE"]mVGH`z }N
\)n4WgIV$}weB
#nav1 ul {O}/28De,,Bt_G background-color: silver;w:me8
Rvl=/@ Wh text-align: center;9#bh`WrRv;spbGV0z&@ margin-left: 0;tI:/T(fLw515|SOM padding-left: 0;W!&*9/-&*b%rCC#=CK border-bottom: 1px solid gray @Dvl!dI*ivlG:0Vdu }mU&|S_[4js?O
#nav1 li {g.%_5;CdLJiw:d list-style-type: none;gOZ)GBjc|3gk[R8d padding: 0.25em 1em;87rnk4T_x@1?E$i border-left: 1px solid white;Qn,kC=*.."#a`T`[T: display: inlineWD=zA(Pb(7 tG~€ }nL:
l"e/rGAzq
#nav1 li:first-child {[sQ{+$Q^x€ph]W1(n border: none;of*d0wWis\}q]?= }Y)cql;XJC_)xabG
垂直导航条+,
s&[IniKQ
j@ link1m_/Hz?3LwFzU\ link2;o-(nzt ;f[t;G7J link3HN_vg
w Ag@*7
)sOG link4=/rRN=p?):[5( link5.smY]sa? ~3`0[HXZ 这是垂直导航条的代码:n€=l.q3$#F5789b?P
#nav2 {y=D-[Su#8A*3 background-color: silver;:39!K#AyQ5UZD2 border: solid 1px gray;)&E[Nux]]er26u /,% width: 8em?aFfmYyp|!yl.K? }%Xn
+ ![`+c}?Ef
#nav2 ul {"f}c*{QOKX KR]68(, list-style-type: none;zwd+y=!=R\LXXC5_ margin: 0;%WD,=%1{,jPqlZ-rA
8 padding: 0;b[#ql@
Ey6%?4#&
x border: none'M:I7YM0v2N$WxaY }%Nk'2qLE2" N(,%
#nav2 li {\ARIJy5:8q&DYgou margin: 0;ez`k
4w~@.w, padding: 0.25em 0.5em 0.25em 1em;3`(v-Z;ZKDOD?z4X border-top: 1px solid gray;S;
=
102$}1?\o width: 100%;UE_
suRGnz
=h/ display: blockg3GV!Q+BrZpK@{L }~\€IJNe1~BQ^*9 t
html>body #nav2 li {](9{
{' Wd ^I$8", width: auto;
ez::5
%LX
\:{ }51CX4L?j2y]@@BO)
#nav2 li:first-child {y4€]^ y
xDr+O2|=6P border: noneE,
KjCAzl~&\Cj }oJh='Ju
rXAzvBs&E
6、从玩弄表格技巧到遵循 Web 标准:通盘考虑Sc}Xsc.v;LO`S|nfR
如果你已经把站点的内容分好了类,那么是时候分析每个页面,把它们按照逻辑关系进行分解了。k0rggD[`Rc,`1-
主导航条TkB#%)~nt[pCQiP$F 子导航条_R{"`D8"iYB*= 页眉与页脚|MM000L]Q{€-x0C?Y 内容?pJ"@iCB[ak{WUw84 相关信息uBez_TY_2MqOO 其他W
4=&Mel[K/|`+^%f 注意分析由嵌套表格、空白分隔符和边框元素组成的表格结构 (因为我们希望把它们替换为用 div 标记组织的那种简单得多的表格结构)。FJeT#\SEC?B+
9~|@r
一旦你分析好页面的结构,就可以着手揭开表象,分析你现在的页面代码中可以转换成结构化标记的那些地方。:E}m X3+b=##Ba7
作为一个完美主义者,消灭所有的 <font> 标记和间隔 GIF 吧!4A&2Sy+hVL] 同样的,一并搞定 <b> 和 <br> 标记。-1`UEDTn: F&NOeu 去除表格中的那些外观标记 (bgcolor, background, 等等)。a/dH 5^L_Gj}'Y'- 把纯粹用来表示外观的那些 CSS 调用 (比如 <span class="header">) 改成结构化的标记。F|}LA1 F}Wf8=VIG7
7、把描述外观的标记改为描述结构的标记wuFFeG|5 R8 r!3
你可以使用“查找加替换”(或者正则表达式),不过最好的方法还是在浏览器里打开这个页面,然后把文本复制粘贴到你的 HTML 编辑器里。X~HPi)H-VN$r&g
关键还是要用结构化的方式来思考!仅仅把 <b> 标记替换为 <strong> 是远远不够的。h#uNOC8@hKFDq
,"`€
最重要的条目是哪个?用 <h1> 来标记它。次要一点的就用 <h2>,依此类推。用 <p> 来标记段落。把导航条标记为无序列表。jIj]J,`1%BS0;-9$
选定一个 DOCTYPE 来使用。(我们推荐 XHTML transitional,除非你是此道高手,否则别用 XHTML strict。)Ae
@-OdVN&IJD3H~6
8、把你的页面合理分布在的 div 中YdZeDH3X8G*Co '
把你的主导航条放在一个 id 属性设为 mainnav 的 div 中,子导航条则放在一个 id 或者 class 是 subnav 的 div 中。而页脚类似这个形式:<div id="footer">,至于整个页面,它被放在 <div id="content"> 里边。Hx=n83Q5Nl"
即便现在它还不怎么讨人喜欢,但只要你开始给样式表添加规则,它就会马上变得可爱起来。lErx qlRhVyapD;
9、是开始自己编写 CSS 的时候了BYK&u~=Q;G\j5n
首先,给每个 div 设置一个边界。例如: div {border: 1px dotted gray; padding: .5em} 这可以帮助你完完整整地看到里边的内容,也不再需要卷动屏幕了。49**.-G
u%1)^c]oq
首先为以定义的元素编写 CSS (<html>, <body>, <p>, <h1>, <h2>, <ul>, <li>, 等等。)uh^ksjUVvd D)r
V@h
尽量运用上下文相关或者有递归下降结构的选择符。这可以使得你的标记更清晰。例如:#subnav li {border: 1px solid black; padding: .5em; display: inline} 将能够只能影响你的子导航栏的 div 中的列表项。D[U}i-tU',on
在尽可能多的浏览器下进行测试,毕竟你可以让朋友帮助你用它们自己的浏览器测试。k|H!7vCs/`E.rj [版权归原作者及coolcxm共同拥有,转载请注明出处]
|