2008-11-15 36 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 
} 

在這種情況下,代碼簡單地檢查空白和定界符一致性還檢測編碼錯誤!