Posts Tagged ‘xhtml’

十一月 22, 2008 0

xhtml CSS网页布局:HTML结构化 DIV CSS网页布局入门指南

By admin in xhtml+css

你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:    第一种可能是你还没有理解CSS处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义、结构添加CSS。这篇文章将告诉你应该怎样把HTML结构化。    另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,、hspace、align=”left”等等)束手无策,不知道该转换成对 应的什么CSS语句。     当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表,详细列出原来的表现属性用什么CSS来代替。    结构化HTML    我们在刚学习网页制作时,总是先考虑怎么设计,考虑那些图片、字体、颜色、以及布局方案。然后我们用Photoshop或者Fireworks画出来、切割成小图。最后再通过编辑HTML将所有设计还原表现在页面上。    如果你希望你的HTML页面用CSS布局(是CSS-friendly的),你需要回头重来,先不考虑“外观”,要先思考你的页面内容的语义和结构。    外观并不是最重要的。一个结构良好的HTML页面可以以任何外观表现出来,CSS Zen Garden是一个典型的例子。CSS Zen Garden帮助我们最终认识到CSS的强大力量。    HTML不仅仅只在电脑屏幕上阅读。你用photoshop精心设计的画面可能不能显示在PDA、移动电话和屏幕阅读机上。但是一个结构良好的HTML页面可以通过CSS的不同定义,显示在任何地方,任何网络设备上。    开始思考    首先要学习什么是”结构”,一些作家也称之为”语义”。这个术语的意思是你需要分析你的内容块,以及每块内容服务的目的,然后再根据这些内容目的建立起相应的HTML结构。    如果你坐下来仔细分析和规划你的页面结构,你可能得到类似这样的几块:    标志和站点名称    主页面内容    站点导航(主菜单)    子菜单    搜索框    功能区(例如购物车、收银台)    页脚(版权和有关法律声明)    我们通常采用DIV元素来将这些结构定义出来,类似这样:    <div id=”header”></div>    <div id=”content”></div>    <div id=”globalnav”></div>    <div id=”subnav”></div>    <div id=”search”></div>    <div id=”shop”></div>    <div id=”footer”></div>    这不是布局,是结构。这是一个对内容块的语义说明。当你理解了你的结构,就可以加对应的ID在DIV上。DIV容器中可以包含任何内容块,也可以嵌套另一个DIV。内容块可以包含任意的HTML元素—标题、段落、图片、表格、列表等等。    根据上面讲述的,你已经知道如何结构化HTML,现在你可以进行布局和样式定义了。每一个内容块都可以放在页面上任何地方,再指定这个块的颜色、字体、边框、背景以及对齐属性等等。    使用选择器是件美妙的事    id的名称是控制某一内容块的手段,通过给这个内容块套上DIV并加上唯一的id,你就可以用CSS选择器来精确定义每一个页面元素的外观表现,包括标 题、列表、图片、链接或者段落等等。例如你为#header写一个CSS规则,就可以完全不同于#content里的图片规则。    另外一个例子是:你可以通过不同规则来定义不同内容块里的链接样式。类似这样:#globalnav a:link或者 #subnav a:link或者#content a:link。你也可以定义不同内容块中相同元素的样式不一样。例如,通过#content p和#footer p分别定义#content和#footer中p的样式。从结构上讲,你的页面是由图片、链接、列表、段落等组成的,这些元素本身并不会对显示在什么网络 设备中(PDA还是手机或者网络电视)有影响,它们可以被定义为任何的表现外观。    一个仔细结构化的HTML页面非常简单,每一个元素都被用于结构目的。当你想缩进一个段落,不需要使用blockquote标签,只要使用p标签,并对p 加一个CSS的margin规则就可以实现缩进目的。p是结构化标签,margin是表现属性,前者属于HTML,后者属于CSS。(这就是结构于表现的 相分离.)    良好结构的HTML页面内几乎没有表现属性的标签。代码非常干净简洁。例如,原先的代码<table width=”80%” cellpadding=”3″ border=”2″ align=”left”>,现在可以只在HTML中写<table>,所有控制表现的东西都写到CSS中去,在结构化的HTML中, table就是表格,而不是其他什么(比如被用来布局和定位)。   亲自实践一下结构化    上面说的只是最基本的结构,实际应用中,你可以根据需要来调整内容块。常常会出现DIV嵌套的情况,你会看到”container”层中又有其它层,结构类似这样:    <div id=”navcontainer”>    <div id=”globalnav”>    <ul>a list</ul>    </div>    <div id=”subnav”>    <ul>another list</ul>    </div>    </div>    嵌套的div元素允许你定义更多的CSS规则来控制表现,例如:你可以给#navcontainer一个规则让列表居右,再给#globalnav一个规则让列表居左,而给#subnav的list另一个完全不同的表现。     用CSS替换传统方法    下面的列表将帮助你用CSS替换传统方法:    HTML属性以及相对应的CSS方法    HTML属性    CSS方法说明    align=”left”    align=”right” float: left;    float: right; 使用CSS可以浮动 任何元素:图片、段落、div、标题、表格、列表等等    当你使用float属性,必须给这个浮动元素定义一个宽度。    marginwidth=”0″ leftmargin=”0″ marginheight=”0″ topmargin=”0″ margin: 0; 使用CSS, margin可以设置在任何元素上, 不仅仅是body元素.更重要的,你可以分别指定元素的top, right, bottom和left的margin值。  [...]

Tags: , , , ,

五月 4, 2008 0

xhtml+css VS div+css

By admin in Web Standards

转自linxz’BOG 不知道从什么时候开始,在网络上到处可以看到div+css,到底什么是div+css呢?难道就是传说中的标准重构吗?标准从最简单的根源来说不是合理使用xhtml的标签吗?可为什么还是有这么多div+css呢?既然可以div+css,那为什么不可以叫span+css ul+css li+css等等呢? 疑问,满脑子的疑问!为了这个疑问,我把自己脑子里的东西从最底层翻了一遍。 在几年前大家都是用table来布局,一层套一层,没发现什么不妥,一直用到《网站重构》这本书出来后的不久开始看到很多人讨论重构。当时的我对所谓的重构一点都不清楚,当然啦,现在还不是很清楚,至于《网站重构》这本书我也没看过几页,不敢说自己什么都了解。但就目前而言,还是有很多朋友是从table布局转变过来,也包括我自己在内。 看了网上很多教程以及很多朋友的文章或者是提到的问题,代码结构中少不了的是div。甚至看到代码结构中除了div标签在body中外,找不到其他用来处理结构的标签了。或许就是因为如此,才出现了div+css,用div来做布局,结合css来表现样式,那这样就是标准了? 是把table换成了div,把td换成ul来排列后,那其他xhtml的标签怎么办呢? 或许有朋友会说“我是用div来布局,所以要叫div+css,而且现在大家都这样叫啊”。嗯,没错,因为div在xhtml中没有语意,而且是块元素,用在布局方面比较合理。但如果因为如此而把div独立出来称呼为了div+css,貌似跟xhtml可以平起平坐了。就好比你的辈分原本就是晚辈,却跑去跟长辈争上座,太不像话了,不是吗? 说了这么多,无非是想希望大家以后不要再说div+css了,为什么不能再多打2个字母,改叫xhtml+css呢?如果觉得这样还不妥,那就叫网站重构吧,你也可以称自己为网站重构工程师,多好听的名字呢,总不能让别人叫你div+css人员吧。 在《超越CSS》中,他们还是推荐大家少用div,多合理的使用标签,不要遗忘了在xhtml中还有p,form诸多的标签。合理的使用标签,合理的页面结构才会让你的站点更容易被搜索找到重要内容。简单说吧,大家都知道hn(n=1,2,3,4,5,6)是用在标题,那p,form,table是不是也可以让他们有自己在页面结构中的一个位置呢? 以上只是个人在文字方面对网络上到处可见的div+css一些看法,文字表达方面不对的地方大家批评,但最终希望的是不要再叫div+css了,div不是主要的东西,主要的是xhtml。

Tags: , ,