2008-11-15 33 views
5

我觉得我在用我的网页上的语义标记不错,但我仍然有类像这样的一把:XHTML/CSS标记语义如何?

/**** Aligns ****/ 
.right_align { text-align: right; } 
.left_align { text-align: left; } 
.center_align { text-align: center; } 

从技术上讲,是一个禁忌。但是当你只想在表格中放置一些文本时,我应该用语义标记获得多大的疯狂?

回答

13

为什么你想对齐文本?

问题的答案是您需要为选择器设置的id或class的名称。你想调整它,因为这是一个价格?

table .price { 
    text-align: right 
} 

问问你自己为什么要应用一个特定的风格,一切都会变得清晰。

我可能对它做了过分的评价,但是我的最后一个工作项目非常接近100%语义 - 我需要的任何语义都不是语义的(比如填充div,我不能没有这个布局需求) jQuery的。

+0

如果您动态添加它,这并不意味着您的网站在没有Javascript的情况下将无法正确显示,从而使其不易访问,违背我们为什么使用语义标记的精神? – 2008-11-15 21:58:01

+0

好点。我没有做尽可能多的测试,但我很确定这个网站在没有JS的情况下可以访问。在没有CSS,没有JS的情况下,它几乎100%可用。 – alex 2008-11-15 22:02:53

1

语义标记是一个令人钦佩的目标,但在现实世界中,您有时必须做出妥协。在某些情况下,唯一明智的做法是打破语义,然后抛出一个right_align

编辑:人们似乎误解了我的观点。您应尽可能使用语义标记。但是,在某些情况下,它确实只是一种风格选择,并且数据可以用来描述或分类数据。这通常适用于表格数据的大部分,特别是如果它是动态生成的。

我遇到过客户希望能够动态控制数据网格中显示的列的情况。没有办法事先知道他们要选择显示什么类型的数据。如果他们想要一种将动态生成的列居中或右对齐的方式,最好让中心和右对齐类可供他们使用,而不是让他们在任何地方都使用属性。

+0

就像Jeremy Keith一样,我也将自己形容为“边缘语义精神病”。但我投了这个答案,因为我同意人们可能会误解这一点。 – 2008-11-16 02:49:45

+0

谢谢,安迪,我很感激。当涉及到语义标记时,我倾向于相当困难,但是我已经被客户端的bug咬了太多次,太热切了。 :) – 2008-11-16 03:02:42

2

如果您希望表格单元与对齐之间的紧密耦合,您可以直接在标签上指定属性style="text-align:right"。无论如何,如果你不把它用于抽象层次,那么就没有理由通过一个类来增加额外的间接级别。

0

100%的语义标记是一个愚蠢的目标。你的平面设计师会说,“让我们对齐这个”,原因将是“因为它看起来很好”。你应该做什么,在div上添加一个“lookgoodthatway”类?只要对齐它,并继续你的生活! :)

2

我尝试考虑为什么我想要一个列右对齐表中。例如,如果该列包含货币金额,那么我会使用名为currency的样式而不是right_align。

-3

根据经验,出于可用性的原因,您应该在尽可能多的行上放置标记。

我用下面的符号

 
matcher,¶ 
matcher¶ 
{¶ 
··attribute:·property;¶ 
}¶ 

你问为什么?这解决了碰撞的许多问题,因为它减少了2个不同位置可能发生的不相关变化(导致碰撞)的2个不相关变化的次数,并且当碰撞发生时,它更容易看到造成它的原因和选择正确的解决方案。

这是因为SCM的DIFF是面向行的,如果您将所有内容放在一行上,您会得到2个选择,一个完整集或一个完整集。

此外,我发现,如果坚持使用特定的风格,可以很容易地编写检测CSS中错误的lint检查代码。

对于insance,现货错别字:

matcher 
matcher, 
{ 
    attribute property 
    attribute 
} 

在这种情况下,代码简单地检查空白和定界符一致性还检测编码错误!