使用严格的XHTML构建网站并依靠CSS 100%的视觉风格是否切实可行?

时间:2009-01-12 15:47:12

标签: css xhtml standards

我倾向于经常采用学术方法,并且在我的发展中坚持严格的原则,而事实是,如果我有点谨慎,我可以尽快完成项目。我希望找到适当的实用性。

我想采用“Zen”方法来设计一个网站(用我的话说)“严格使用HTML来实现内容结构,然后让CSS魔术完成其余部分”。这实际上有多实用?我遇到的一个问题是我想先开发(制作功能)网站,然后再回来设计它。我知道结构方面我希望网站如何流动,但我还没有开始玩CSS布局,图形或任何其他设计的东西。这里有什么正确的方法?

10 个答案:

答案 0 :(得分:21)

绝对实用,并提供无限的好处。实际上,它正是CSS以及内容和布局的分离所针对的。

鉴于上述情况,正确的方法是让不同的团队继续处理手头的不同任务。这需要(也许)一个初始的图形设计,这个设计可能非常粗糙,并且为“#viewport”,“。user”等事情提供了一套记录和协作一致的命名约定。

标记团队通常会受到后端驱动,通常会略微引导设计团队,但他们应该而且必须保持足够的灵活性,以便在需要时更改标记,或者将其置于设计师的控制之下。

这最后只是我的$ .02,但是当一个人同时担任这两个角色时,我认为你先用标记/后端引导自己然后迭代地进入设计阶段,然后根据需要进行标记,然后进行设计。

答案 1 :(得分:4)

您想要遵循的方法是正确的方法。只有两件事:

  1. 如果您对css或html使用验证器,请不要假装您的所有html或css都通过了测试。显然,理想的目标是一切都有效,但在第一阶段,我认为最好不要在验证问题上花费大量时间。并且请记住,没有一个验证器是完美的,并且在开始时使用它的好方法是引导您正确的方向并避免重大错误(即在一个页面中将相同的id放两次,或者将块元素放在内联的内部。 ..)。然后,当应用程序处于良好的阶段时,您可以使您的css和html完美有效。
  2. 最后不要设计界面。我认为应用程序的界面可以为您提供有关如何开发后端的良好指导。所以,在你的地方,我会首先用html和css设计界面,然后我开始为它添加功能。
  3. (对不起我的英文,欢迎拼写更正。)

答案 2 :(得分:3)

它非常实用,您会惊讶于HTML的外观。我喜欢使用CSS重置文件来帮助入门,我个人喜欢YUI reset。另一个需要考虑的Zen项目是使用unobtrusive JavaScript。这进一步分离了代码的不同层。 JavaScript库,例如jqueryprototypedojo可以为此提供帮助。

答案 3 :(得分:3)

可以做到,我认为您的网站(以及您的网页设计技能,尤其是)将会更好。但它也有一定的学习曲线。它需要比许多人更全面地了解XHTML / CSS规范。

确保您的HTML可以验证只是一个开始。 哦,确保所有浏览器在渲染页面时都以严格模式运行。

当然, 需要IE支持的变通办法,但可以通过多种方法完成。 首先,IE支持条件注释,允许您包含特殊的CSS样式表,只是为了修复IE错误,这应该可以帮助您完成大部分工作,而不会影响您的合规标准版本的页面。

对于某些事情,你可能也需要一些javascript,但对于大多数常见功能来说它不是必需的。

答案 4 :(得分:3)

http://www.webdevout.net/articles/beware-of-xhtml解释了今天使用XHTML的原因。总而言之,XHTML是不受支持的,除非你是这样服务的,并且如果你的目标是旧的浏览器(任何IE版本都是旧的,考虑到它的大多数功能在它们尚未成熟时实现并且暂时没有大幅改变)你别无选择,将其作为HTML提供。

除非您不需要XML提供的功能(如SVG,MathML),否则请坚持使用HTML。你不会比HTML有任何明显的优势,更具语义性,有更好的CSS支持(甚至更少)。但是你获得了更广泛的兼容性,你的布局将更加可预测(例如,表格单元格可以从HTML中的行中的第一个单元格继承,在XML中没有这样的东西,甚至不确定XHTML在某处有任何例外)。

验证者不会帮助编写XHTML而不是HTML。甚至烦恼,如果你使用一个严格的,如果你撒谎并说它是HTML,你会想知道br标签中的/是什么。 (如果您将XHTML作为HTML提供,Firefox视图源会显示为鲜红色)。我相信你可以找到更多的例子。

答案 5 :(得分:2)

当然,你可以这样做,但要做好准备,不要在IE下呈现。在最近的一个Web项目中,我们的大多数前端缺陷都是在IE中修复已经在Firefox中运行良好的东西。也许这会在IE8中发生变化,但我对此表示怀疑。在某些情况下,我们甚至不得不编写一些将在IE上执行的javascript,以解决仅用CSS无法完成的事情。

答案 6 :(得分:2)

虽然理论上听起来不错,但你不能用css为网站创建100%的布局。你仍然需要使用一些标记,以便你有一些东西可以应用css。也就是说,使用这种方法可以非常接近理想状态。我一直很惊讶真正的CSS大师实际上需要多少标记。

更接近你真正想要的“禅”方法是xslt。它适用于您的应用程序生成xml数据,然后xslt将该xml转换为html / css。这需要学习xslt并在生成页面的过程中添加另一层复杂功能,但添加了您正在寻找的分离。在一个理想的世界中,理论是程序员只需要担心生成xml数据,然后设计师就可以使用该数据生成视觉效果,但是它很少有效,因为xslt比大多数设计师能够处理的技术更具技术性。大多数情况下,程序员最终会生成xslt,这有点违背了目的。

答案 7 :(得分:1)

对我有用的一种方法是首先构造HTML,然后在同一文件的标签中添加一些最小的CSS(足以创建正确的布局等)。然后,一旦您对结构感到满意,就可以将CSS拉出到单独的文件中和/或完全重写CSS。这对我来说是一个合适的平衡 - 它仍然是一个轻量级的过程,但它避免了查找和替换内联CSS的潜在麻烦。

答案 8 :(得分:0)

在theoria yes中,实际上,浏览器差异可能会迫使您添加一些javascript来处理差异。

答案 9 :(得分:0)

现在......某些东西的好处与实现它的实用性不同。你们是否忘记了IE甚至是那些想要完成这项工作的痛苦客户?

我很想说你必须对你使用的严格DTD做一些例外,以使其在一组合理的浏览器中运行,并请你的网站/网络应用程序的利益相关者。

我是一个标准狂热者,如果有可能建立一个不违反1 DTD规则的网站,没有人会比我更开心。但是4年之后,我只是因为实际目的而无法做到这一点。

当然,如果我能够提出我要开发的网站的要求,那么它可能是可能的,但我必须弯曲业务规则以适应这一点。相信我,这是唯一可能的方式。