Niquelao » 網誌存檔 » 我也看到了…
» 網誌檔案 » 我也看過了… Niquelao - CSS 我也看過了… 2006年11月11日 由 Rumoroso 這篇文章我要倒著開始寫。不是說我要背對著寫,而是要從引用(blockquote-引用)我將在結尾提出的建議開始:除非我們想搞原創,刻意要顯示那個由隱藏欄位(「幾乎隱藏」)產生的框框,否則解決方法很簡單。我們對它套用「 display: none 」就搞定了。我的建議是,不要試著用 class 標記隱藏欄位,然後再套用我剛才寫的屬性。取而代之,可以善用 Firefox 對屬性選擇器的理解與解析:[css]input[type=hidden] { display: none; }[/css] 直接進入正題… 不,這篇文章不是要講如何排版那些理論上應該隱藏的東西( hidden 型態的欄位),我之所以說「理論上」,是因為在 Firefox 瀏覽器中,當 CSS 啟用且我們對表單欄位宣告了特定的「 display 」屬性值時,隱藏欄位就不再隱藏,反而會被瀏覽器渲染出來(如果你用 Firefox 瀏覽器觀察範例,或者如果你信任我們、相信我們所說的,可以看下面的截圖)。講到這裡,可能會浮現一些疑問:為什麼要對「 hidden 」欄位套用 display ?;如果隱藏欄位的目的是在不顯示的情況下傳遞資訊,為什麼會想要顯示它?;…答案很簡單,也許用一個例子會更好理解:我們有以下表單:[html] [/html]…然後對它套用一些基本樣式:[css]form { border: 2px outset; background-color: #CCCCCC; } fieldset { margin: 20px auto; width: 500px; border: 1px solid; padding: 10px; } legend { font-size: 1.5em; color: #000; } label { font-weight: bold; font-size: 1.1em; } fieldset input { display: block; width: 90%; height: 1.3em; line-height: 1.3em; margin-left: 5%; font-size: 1em; } p { text-align: center; margin: 1em 0; } fieldset p { text-align: left }[/css] 我們對表單欄位套用了 display: block ,讓它們產生換行效果,使標籤文字能位於欄位上方。標籤緊貼在文字欄位上方,這樣的排列讓標籤產生的匿名文字區塊與欄位區塊有更大的接觸面積,因此在視覺上能更快、更好地傳達兩者之間的關聯(而且,這也是我喜歡的排版方式,就這樣)。也許用視覺呈現會更好理解:上圖展示了同一表單的三種排版方式。第一種是將 label 文字放在欄位上方,因此接觸面積較大。另外兩種則可以看出,如果文字放在欄位旁邊,接觸面積會縮小。此外,第三種還顯示了想要對齊欄位時會遇到的問題。而且,用這種方式還能將所有文字欄位靠左對齊,這在很多情況下是理想的,但如果標籤在欄位前面,就可能產生衝突(因為標籤長度通常不一)。問題在於,當我們在 Firefox 中對「 input 」套用這個屬性時,而且只有在 Firefox 中,隱藏欄位會被渲染出來,變成一個空白的區塊。這是正確的行為還是 bug?如果觀察 IE 的行為,會發現這種情況不會發生。到目前為止,IE 的反對者大概會說 Firefox 的做法是正確的,因為在選角時它總是被選為好人角色。這種情況下,讓每個人自己下結論吧,不過在結論之前,先提出幾點思考(好吧,是四點,「幾點」只是一種說法):難道有程式設計師想顯示隱藏欄位產生的框嗎?難道設計師打算忽略程式設計師的做法,擅自把它顯示出來嗎?規範中不是這樣說的嗎:隱藏控制項:作者可以建立不會被渲染、但其值會隨表單提交的控制項。作者通常使用這種控制項類型來儲存客戶端/伺服器端交換之間的資訊,這些資訊若無此機制,會因 HTTP 的無狀態特性而遺失。INPUT 元素用於建立隱藏控制項。( hidden control )?顯示隱藏欄位產生的空白框到底有什麼目的?一個解決方案 除非我們想搞原創,刻意要顯示那個由隱藏欄位(或者說「幾乎隱藏」)產生的框框,否則解決方法很簡單。我們對它套用「display: none」就搞定了。我的建議是,不要試著用 class 標記隱藏欄位,然後再套用我剛才寫的屬性。取而代之,可以善用 Firefox 對屬性選擇器的理解與解析:[css]input[type=hidden] { display: none; }[/css] …以及一個反思 Firefox 的開發者們,有沒有想過要嘗試顯示其他隱藏的東西,例如氣場、靈魂、鬼魂…?我要等到他們成功做到,才把這篇文章寄給 Iker Jiménez 嗎? 分類: CSS —> 你可以透過 RSS 2.0 feed 追蹤留言。你也可以留下一個留言 ,或從你的網站發送 trackback。上一篇:但,真是聰明啊!! 下一篇:沒有里肌肉,就什麼都「不」! 留下你的留言 姓名和 Email 欄位為必填 加入我們… 我們特別推薦的標籤 一般 無障礙性 bert bos blockquote bug 啤酒 引用 cite 行為 知識 CSS 社團 標準 fieldset Firefox 格式 表單 字型 hidden ie IE 7 資訊 javascript legend 清單 niquelando 必填 opera 海灘 q squash 假期 w3c WCAG xhtml 這部作品採用 Creative Commons 授權條款 。
P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.
¿Cumplir WCAG sin tocar el código?
Superposición de IA que promete cumplimiento WCAG en 48 horas