`
zkgale
  • 浏览: 101585 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

根本不存在 DIV + CSS 布局这回事<转>

阅读更多
http://www.cnblogs.com/cathsfz/archive/2007/04/09/706336.html

在《欲练 CSS ,必先宫 IE》和《你有 <table /> 强迫症吗?》这两篇文章中,看到有不少评论用到div+CSS布局这个说法,用来和table布局比较。实际上div不是用来布局的,div只是用来表示一个其它元素都无法准确表达语意的一个块区,只有CSS是用于布局的,所以根本就不存在div+CSS布局这回事。反过来,table布局的时候经常依赖于CSS定义一个单元格的布局属性,所以可以说是table+CSS布局。也就是说,我们讨论的两种主流布局方法应该是纯CSS布局和table+CSS布局,如果你觉得你在用的是div+CSS布局,那么有可能你也有强迫症了。

接下来我们说说如何进行纯CSS布局,因为CSS布局依赖于XHTML,所以我们先要说说如何书写一个CSS无关的XHTML。其实书写CSS无关的XHTML并不难,虽然你不能再好像书写table布局代码那样集中精力于最重的视觉效果上,但其难度也不过是中学生写作文那样。

中学生写作文如何写呢?首先看看题目,然后想想整篇文章分为哪几个大的段落,每个大的段落说些什么,能够把你要说的东西说清楚。对于XHTML来说,这相当于用div把文档切割为几大块。这时候你不要想着这些div将构建一个怎样的DOM啊、CSS如何选择DOM中元素设置规则实现布局之类的事情,就大概划分一下文档的大区域就好了。

然后当然是用一些常用的手法来表现感情或者论证问题,这在XHTML中就是用特定的元素来完成一些常见的信息组织。下面就是信息组织形式与元素的对应列表。
img

作为内容的图片是一定要放到img里面的,这没有更好的选择了。然而如果图片不是作为内容,而是作为修饰性的,则千万不要用img。对于非内容的图片,应该在CSS中引用,而不在XHTML中出现。例如每一个导航链接有一个前导的箭头指示,那么这些箭头就应该通过CSS的background- image属性加上去,而不是直接作为img出现。
a

这也是一个非常准确定义的元素,链接都需要使用它。或许已经有很多人忘记了a的本意是锚点,其实这是一个十分有用的语义,你可以用它来标记文档中一些重要的引用位置。
ul, ol

ul和ol分别是什么意思呢?如果你回答不上来,却知道它们可以用来干什么,那证明你是被可视化工具宠坏了,要转换过来编写符合语义的XHTML需要先补充基础知识,这时候你最好先找一些看起来非常基础非常全面的XHTML书籍看看,因为没有扎实的基础你在上面构建更多的知识都是不牢固的。ul和 ol其实分别代表unordered list和ordered list,也就是无序列表和有序列表。在语义上,它们都用于表示一类并列关系的内容,例如我们去商店购物之前列一张shopping list,上面要买的东西就是并列关系,在中文可以用顿号隔开那种。它们的差别在于是否有顺序,例如shopping list是没顺序的,先买什么后买什么是没关系的,但是一份旅游行程安排上面的景点列表却是有游览的先后顺序的。

ul常用于导航栏,因为导航元素符合上面所说的并列关系,树状导航结构还可以通过嵌套ul来表述。在这里,导航可以是我们常见的水平或竖直导航栏,甚至可以是地图导航,例如在中国地图上不同的省份热区其实是不同的li。如果我说,在主流浏览器上用户看到了中国地图和可以直接点击省份热区,在不支持 CSS的浏览器上用户能看到一份纯文本的省份名称列表,使用的是同一份XHTML,而这完全通过CSS实现,甚至不依赖于JavaScript,你相信吗?

另外,如果你要显示一个图库的缩略图,这些图片也可以放在ul中哦,因为这些图片也是并列关系。它们可以自动先横排,排满一行就自动排第二行,CSS可以让他们乖乖排队,而不需好像table那样把图片定死在一个格子里。其实table用于布局就如同用监狱关押内容一样,把内容锁死在一个格子里不让它到处乱跑;符合语义的XHTML就如同一个开放的舞台,你只要懂得利用CSS的规则,内容就自然会找一个适合表现自己的地方站着。
dl

没有听说过dl吗?因为那些可视化工具生成的代码中从来不会出现dl?dl的意思是definition list,也就是定义列表。它包含的子元素不是li,而是dt和dd,也就是definition term和definition description。dl本身设计为字典单词与解释列表这样的语义,例如:
<dl>
  <dt>Apple</dt>
  <dd>苹果</dd>
  <dt>Boy</dt>
  <dd>男孩</dd>
</dl>

然而,如果你需要表示的的语义也是类似的,一个列表既包含定义也包含解释,那么也可以考虑用dl。
form, input

form也就是表单啦,这没什么好说的,就算再不顾及语义的人在书写XHTML时也会考虑到它与各种input对提交数据的影响,从而小心谨慎。
table

table自然是用来表示表格的,这不废话!如果是数据表,当然可以用table来表示,但如果不是,就最好别用table了。

人名列表呢?例如一个3行4列的人名列表。如果这12个人名是并列关系,我建议你用ul和12个li来表示,再通过CSS来让它们在一行内并列显示多个。名片表呢?也就是3行8列,每两列中左侧一列显示人名右侧一列显示电话地址等联系方式。我觉得dl在一定程度上能满足此需求,dt放人名,dd放联系方式,不过这时候就涉及了dl滥用的争论,因为人名与联系方式当作定义与解释有点牵强。

接下来还有一个关于你是否系统学习过XHTML的小提问,那就是你是否知道table下面的caption、col、colgroup、 thead、tbody、tfoot元素及summary属性分别用于定义什么,还有就是你书写table时是否会使用thead、tbody。
div, span

再次审阅上面的列表,如果你需要表示一个块区却无法在上面找到更适合的元素,那么你就可以考虑使用div和span这两个最没有语义的元素了。 div与span的区别,历史上的不说了,现在通常大块的区域用div,行内的小文本片段就用span。在上面我已经说了div一般用于全局划分为几个大的区域,所以一般不需要使用了。span其实也很少使用,因为行内的强调通常可以用语义更强的元素例如strong和em。

在理解上上述那么多常用元素后,写一个XHTML就真的如同中学生写作文一样容易啦,还是搭积木那样,其实和以前使用可使化工具搭积木没什么不同,唯一不同是现在你理解了你在搭的是什么,而以前你只在乎搭出你想要的视觉效果来。写代码与写作文所类似的地方,就在于你写得越多就越熟练,也就越能写出好东西来。在写好XHTML后我们就要开始考虑如何写CSS了,或许还需要在XHTML中略作修改以方便CSS中规则的选择与匹配,不过这是以后再说的内容了,今天就说到这里。

最后,如果你有兴趣阅读我以后发表的有关CSS的文章,可以考虑订阅我的blog:

    * Cat in Chinese (feed: http://feeds.feedburner.com/CatChen/Chinese)
    * Cat in dotNET (feed: http://feeds.feedburner.com/CatChen/dotNET)
分享到:
评论

相关推荐

    table布局网页转换为div+CSS布局的转换软件

    在描述中提到的“table布局网页转换为div+CSS布局的转换软件”能够快速高效地完成这一转变,无论是对于简化网页代码,还是提升网页性能,都有显著效果。 软件支持绝对定位和流定位,这意味着它可以处理复杂的布局...

    div+css布局大全

    下面,我们将深入探讨div+css布局的相关知识点。 1. **Div元素**:HTML中的`&lt;div&gt;`(division)元素是一个通用容器,用于组合HTML元素,为页面提供结构。通过设置`&lt;div&gt;`的类或ID属性,我们可以对多个元素进行分组...

    别具光芒DIV+CSS网页布局与美化_216-270.rar

    别具光芒DIV+CSS网页布局与美化&lt;br&gt;非常不错的书&lt;br&gt;按页码分别压缩为六个压缩包,可以单独解压&lt;br&gt;可以先下载一个看看&lt;br&gt;好了再下其他的&lt;br&gt;&lt;br&gt;注:&lt;br&gt;此书来自网络&lt;br&gt;版权归原作者所有&lt;br&gt;仅供个人学习参考...

    别具光芒DIV+CSS网页布局与美化_271-294.rar

    别具光芒DIV+CSS网页布局与美化&lt;br&gt;非常不错的书&lt;br&gt;按页码分别压缩为六个压缩包,可以单独解压&lt;br&gt;可以先下载一个看看&lt;br&gt;好了再下其他的&lt;br&gt;&lt;br&gt;注:&lt;br&gt;此书来自网络&lt;br&gt;版权归原作者所有&lt;br&gt;仅供个人学习参考...

    Table转div+css工具

    5. **增强可访问性**:对于无障碍浏览(Accessibility)来说,Div+CSS布局往往优于Table布局,因为它能更好地遵循WCAG(Web Content Accessibility Guidelines)指南。 在实际操作中,使用Table2CSS3.0.0工具时,...

    经典DIV+CSS模板 经典DIV+CSS模板

    "div+css布局"强调了如何利用&lt;div&gt;和CSS来创建网页布局;"div+css实例"暗示了这里可能包含实际的代码示例;"div+css模板"则表示这是一个可以直接应用或参考的预设设计。 **压缩包子文件的文件名称列表** 1. `style...

    div+css布局制作横向带箭头步骤流程样式

    2. **CSS基础样式**:为`&lt;div&gt;`元素添加基础样式,如宽度、高度、内边距和背景色,以满足布局需求。同时,可以为`.step`类设置浮动或者使用Flexbox或Grid布局,确保步骤元素横向排列。 ```css .step { width: 200...

    CSS文集

    利用CSS的Expression自定义属性来实现表格的OnMouseOver 特效&lt;br&gt;需要掌握的八个CSS布局技巧&lt;br&gt;用css实现链接经过时显示浮动图片背景的效果&lt;br&gt;自适应大小的CSS圆角盒子&lt;br&gt;div+css实现Firefox和IE6兼容的垂直居中...

    div+css布局实例淘宝网分析

    在这个过程中,div+css布局作为一种灵活且高效的网页布局方式逐渐成为了前端开发中的主流选择。本文将通过对淘宝网首页的具体案例分析,深入探讨div+css在实际项目中的应用技巧及其带来的优势。 #### 二、div+css...

    div+css布局制作箭头步骤流程样式 - div+css教程

    在网页设计领域,`div+css`是一种常用的技术,用于实现页面布局和样式控制。`div`元素作为容器,能够包裹其他HTML元素,而CSS(层叠样式表)则负责定义这些元素的外观和位置。在本教程中,我们将深入探讨如何使用`...

    DIV+CSS布局

    7. **更高的灵活性**:相比`&lt;table&gt;`布局,DIV+CSS布局提供了更多的排列组合方式,如`&lt;ul&gt;&lt;li&gt;`、`&lt;ol&gt;&lt;li&gt;`等。 #### 四、XHTML与HTML的区别 - **XHTML**(EXtensible HyperText Markup Language):即可扩展超文本...

    div+css div+css精通CSS

    标题与描述中提到的“div+css div+css精通CSS”这一主题,主要涉及的是网页设计与布局的核心技术——利用HTML中的div元素结合CSS样式表进行网页内容的组织与美化。接下来,我们将深入探讨这一主题所包含的关键知识点...

    Div+CSS布局入门教程(一二三四)

    【Div+CSS布局入门教程详解】 Div+CSS布局是网页设计中的重要技术,它通过分离样式和内容,使得网页设计更加灵活、可维护性更强。本教程将带你一步步入门Div+CSS布局,从基础概念到实际操作,帮助你掌握这种布局...

    Div+CSS布局入门+实例教程

    这个“Div+CSS布局入门+实例教程”是为初学者设计的,旨在帮助他们掌握这一核心技术。 Div(Division)是HTML中的一个元素,通常用于组合其他HTML元素,形成一个具有特定意义的区域。Div标签本身没有特定的含义,它...

    DIV+CSS布局练习

    这个压缩包文件"DIV+CSS布局练习"显然旨在帮助初学者通过实践掌握这一基础技能。以下是关于`DIV+CSS`布局的一些详细知识点: 1. **DIV元素**:`&lt;div&gt;`(division)是HTML中的一个通用容器元素,用于组织页面内容。...

    变幻之美Div+CSS网页布局揭秘(案例实战篇).

    《变幻之美Div+CSS网页布局揭秘(案例实战篇)》是一本专为初学者和有一定基础的网页开发者设计的教程,旨在通过实例教学,深入浅出地解析如何使用Div+CSS进行网页布局。这本书的核心内容涵盖了HTML基础、CSS选择器、...

    div+css页面布局,新手入门教材,2天学会div+css

    新手通过这门教材可以在两天内掌握基本的div+css布局技巧。以下是对标题和描述中涉及知识点的详细说明: 1. **规划网站**:在开始布局前,首先要规划网站的结构,明确各个部分的功能和尺寸。例如,导航条(Main ...

Global site tag (gtag.js) - Google Analytics