从“div+css”说起谈结构的合理

css

 大家都知道,web标准在中国传播初期,人们使用“div+css”描述web标准,似乎有点道理,根据国内网页设计师的编码水平,看似就是使用div配合css来替代table布局。

可是学过一段时间web标准的人士,都知道这是误解,那么有人提出,摒弃div+css的说法,提倡XHTML+CSS的说法,因为要使用两门语言来架构网页,但是这种称呼也不准确,不完整,因为只提到了XHTML1.0标准和CSS2.0(CSS2.1)规范。

其实web标准就是web标准,叫别的都不对,他就是web开发中的一些列标准的集合,XHTML,XML,CSS,DOM,ECMAScript,制定这些标准是为了更好的约束,web运行平台(浏览器)的开发厂商,而我们遵循web标准开发,也是为自己着想,通过大众的努力,迫使流氓开发商,遵循统一标准,降低开发者的难度,让我们的作品能更好的跨平台,跨越浏览器的障碍(IE,FF,Opera等等),跨越设备的障碍(PC,手持设备,手机,打印设备等),跨越用户障碍(色盲,色弱,视力不好,肢体残疾等)。

为什么要遵循web标准进行设计和开发?上一段也已经宏观的提到了,跨平台统一于一个标准,最终降低开发难度。具体实施上肯定没有一个老板这么伟大的投身标准事业,商人总是依照利益的驱动,是哪些利益驱动了他们应用web标准的?

  • 更少的代码和组件,容易维护
  • 带宽要求降低(代码更简洁),成本降低。
  • 更容易被搜寻引擎搜索到
  • 改版方便,不需要变动页面内容
  • 提供打印版本而不需要复制内容
  • 提高网站易用性。

当最终老板看到在应用web标准后的代码很简洁,出现了许多未曾谋面的div,然后你给他展示,可以随意改版,多种设备兼容,多种浏览器兼容,很好,老板很欣赏,这么多的好处,我们全力支持web标准,而导致的结果,web标准技术人才火热,应用web标准开发的项目增多,开发效率成为问题,开发模式还在摸索之中,同时也出现了在web标准应用中的一些错误方法,div的滥用,class的滥用,结构一塌糊涂,人们重视css比重视xhtml多了许多。

div是什么?刚开始人们的认识是无语义,应用无语义的事物来布局,是正确的,既然无语义,div这三个字母就不会出现。Quote Jeffrey Zeldman的解释是“用短语division解释div,是最恰当不过的了”。Div和span一样是用作裁减分割文档的,那么他们也就拥有语义了。Div联合id和class属性,提供了一个把结构添加到文档的通用机制。Div 将文档分割成一块一块的,怎么区分这一块块来进行布局呢?也就是怎么给独有的div赋予一个唯一标识ID,通用的div赋予一个class值,也可以在 class的基础上再赋一个id。如果不用id看似也可以,全部class,只要合理的命名就可以,你可以为header区域,添加class, <div class="IdHeader"> ,类IdHeader告诉你,这里是唯一的而且是header区域。可是ID是最能体现文档结构的一个属性。当你为ID不能重用而牢骚时,想想ID的强大功能吧!

ID的属性有着令人难以置信的强大功能。ID属性可以完成下列功能:

  • 作为一个样式表的选择器,可以让我们创建紧凑的、最小化了的XHTML页面文件。
  • 最为一个超文本链接的目标anchor,用来替代过时的name属性(或者向前兼容和她共存)
  • 作为基于DOM的脚本中特殊元素的引用方法。
  • 作为一个声明的对象元素名字。
  • 作为通常目的流程处理的工具(W3C的例子中:“当从HTML页面提取数据到一个数据库,或者把HTML文档转化到另外一个格式等,这个可以用来标明区域”)

现在也经常出现组合class的结构,就是拥有一个CSS框架,然后任意组合class实现布局,看似是提高效率的捷径,可是花费的代价却是破坏结构,(当然也有例外,如Grids CSS),一般的做法就像土豆网前台编码的设计<div class='box_abstract box_program box_border'>这个维护带来了很大的困难,也就是结构设计的不够合理,只是为了div+css而不是为了web标准。

Web标准的要把握几点:

  • Use structural, semantic markup.
  • Separate presentation from the (X)HTML document using CSS.
  • Rely on JavaScript as an enhancement for, not a replacement of, website features.
  • 使用结构化,语义化的标签
  • 使用CSS分离出(X)HTML文档中的表现元素
  • 依靠Javascript去增强,而不是替代,网站的特征(举个例子就是如果css做不了的,交给Javascript而不是替代css去做他能做的)

对于多样式组合的结构我一直是很反感的,可能我理解的不够深入,体会不到他的好处,或许合理的组合可以兼顾结构和开发效率,可是我没有发现,我就要抵触。

对样式组合方式是这样的<div class=”class1 class2 … classn”></div>举个布局例子<div class=”f-left w400 bgfff”>几个类组合成一个左浮动,宽400 背景为白色的一个区域
你可能拥有一个庞类库,页面只需要任意的class的组合就可以完成,省去大部分花费在css上的时间,可是带来的是结构的混乱,改版的困难,甚至向后兼容受到限制。这样做和table布局没什么两样,只是代码看着好看而以,而且代码量相差也不会太大。在应用web标准初期,合理的table布局也是允许的。

如此多的class让我想起了table冗长的属性
<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 ALIGN=CENTER WIDTH=100% HEIGHT=100%>
难道辛辛苦苦就是想使用div配合css模拟出一个table很容易实现的效果?而且达到和table布局一样的拙劣?

语义化也是结构的一个部分,语义除了合理的使用(X)HTML标记语言,id也是一个语义组成的部分,div的id就像一个即时贴,告诉你某个div的语义,告诉你这个区块的意义。

微格式(Microformat)是在标准 XHTML 代码中嵌入结构化数据的一种新方法。他的诞生也很明确的说明了web的结构永远是第一位,语义化的优势很现实的体现出来,div的属性规划也体现着语义,而不仅仅是一个传递给样式工作的接口。可以去看看ibm文档中心的一篇“使用 microformats 分离数据与格式”了解它的工作原理。

其实说了这么多,我也有点没头绪了。主要就是我对结构和开发效率之间的矛盾的一个思考,css框架怎样才能不破环结构的一个疑问。而且对于结构和效率我的观点就是“拥有合理的结构,才是你web标准化的根本动机”,web是承载信息的,没有理由为了视觉效果,而破坏合理的结构。

时间: 2024-12-22 15:08:46

从“div+css”说起谈结构的合理的相关文章

从“div+css”说起谈结构的重要性

大家都知道,web标准在中国传播初期,人们使用"div+css"描述web标准,似乎有点道理,根据国内网页设计师的编码水平,看似就是使用div配合css来替代table布局. 可是学过一段时间web标准的人士,都知道这是误解,那么有人提出,摒弃div+css的说法,提倡XHTML+CSS的说法,因为要使用两门语言来架构网页,但是这种称呼也不准确,不完整,因为只提到了XHTML1.0标准和CSS2.0(CSS2.1)规范. 其实web标准就是web标准,叫别的都不对,他就是web开发中的

Web网页标准学习:从“div+css”说起谈结构的重要性

css|web|标准|网页 大家都知道,web标准在中国传播初期,人们使用"div+css"描述web标准,似乎有点道理,根据国内网页设计师的编码水平,看似就是使用div配合css来替代table布局. 可是学过一段时间web标准的人士,都知道这是误解,那么有人提出,摒弃div+css的说法,提倡XHTML+CSS的说法,因为要使用两门语言来架构网页,但是这种称呼也不准确,不完整,因为只提到了XHTML1.0标准和CSS2.0(CSS2.1)规范. 其实web标准就是web标准,叫别的

如何制作div+css保持xhtml语义结构的表单

css|xhtml 在form表单中,我们可以对form中的信息进行分组归类,如注册表单的form,我们可以将注册信息分组成 基本信息(一般为必填) 详细信息(一般为可选) 那我们如何更好的来实现呢?我们可考虑在表单form中加入下面两个标签: fieldset:对表单进行分组,一个表单可以有多个fieldset. legend:说明每组的内容描述. 我们看下面的代码: <form id="wwwwebjxcom" class="democss" action

浅谈DIV+CSS快速布局几年心得经验

我从事网页设计行业,已经有两年光景了,浏览器对CSS的识别是让我最头疼的,我曾经彷徨了好一阵,然后不断的收集资料,不断地研究,终于有一点儿小小的经验适用到我的工作中去了.可能这点儿经验不算什么,但是我想还是有帮助的,特别是对于刚接触CSS不久,然后仍然徘徊的初学者们,希望对你们有所帮助和借鉴. 1.DIV起初布局和CSS的大方向规划 * {margin:0; padding:0;word-break:break-all;} body {background:#eeeeee url(../imag

Div+CSS布局入门教程(二) -- 写入整体层结构与CSS

css|教程|入门教程 二.写入整体层结构与CSS 接下来我们在桌面新建一个文件夹,命名为"DIV+CSS布局练习",在文件夹下新建两个空的记事本文档,输入以下内容:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=

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

css|网页 你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习: 第一种可能是你还没有理解CSS处理页面的原理.在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义.结构添加CSS.这篇文章将告诉你应该怎样把HTML结构化. 另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,.hspace.align="left"等等)束手无策,不知道该转换成对 应的什么CSS语句.  当你解决了第一种问题,知道了如何结

深入学习网页技术CSS,再谈div、span的困惑!

css|网页 使用div进行布局,提出div应当用于组织代码结构,现在我们再深入一点,div拥有语义吗? 这个问题前段时间在研究群里曾激烈争论过,当时米随随发问:"什么是语义化WEB,div是什么?"小毅答曰:"DIV表示无意义容器."我说:"否定."然后旁边有人嘀咕:"...又要打起来了."我大笑着进入战斗状态,结果迅速被围攻了.呵呵,总是和主流格格不入的我又一次站在主流的对立面.我还是不赞成将div视为无意义容器.容器这个

初学者用div+css结构写静态网页的几个误区

网页的制作中对于用div和css结构写静态页目前已经很成熟,但许多新入行的朋友对于使用div和css结构还有很多误区,这些误区也是我曾经经历过的并且被"老鸟"指正的地方,所以总结下来分享给大家,希望对写网页有所帮助. 1.用div+css结构制作静态html网页不等于彻底抛弃古老的table写法.之所以不建议用table来布局网页是因为在网页加载很慢的时候要等table结构加载完成才能看到网页,其次是table的布局没有一定的语义,网页代码修改起来比较麻烦. 在写一些栏目块时,特别是数

Div+CSS布局入门教程--写入整体层结构与CSS

接下来我们在桌面新建一个文件夹,命名为"DIV+CSS布局练习",在文件夹下新建两个空的记事本文档,输入以下内容:  这是XHTML的基本结构,将其命名为index.htm,另一个记事本文档则命名为css.css. 下面,我们在<body></body>标签对中写入DIV的基本结构,代码如下:  代码如下 复制代码 <div id="container">[color=#aaaaaa]<!--页面层容器-->[/col