Tags: web_design
在 Web 應用的設計工作中,我們常常會讓"資料新增"、"資料編輯"與"資料檢視"這幾個動作共用同一個頁面樣板,差別僅在於檢視動作下的表單欄位輸入控制元件是不可編輯的。而要讓輸入控制元件不可編輯的方式很簡單,僅需要設置輸入控制元件的 disabled 或 readonly 即可。只不過,我們最好能在視覺上美化一下不可編輯表單欄位,讓使用者可以看出哪些欄位是不可編輯的。特別是 disabled 的輸入控制元件,其預設的顯示樣式實在很醜。非美化不可。
如果你使用 Selenium Core 編寫 Web 應用的測試案例,那麼關於輸入控制元件的 readonly 屬性有一些測試上的注意事項,請參考《A patch of isEditable of Selenium Core 0.83》。
首先來看一個簡單的範例與圖像。這是在 Firefox 下的預設顯示樣式。
我們可以看出預設顯示樣式很醜,而且不符合我們的用途。我們的用途是讓使用者"檢視"內容。但預設樣式卻是灰字灰底,搞得一團灰,看著就礙眼,如何"檢視"?所以我們接著要用 CSS 美化它。作法很簡單,用 CSS 的 attr selector 語法,指定 input[disabled]
的 style sheet 即可。如下所示:
提醒一下,萬惡淵藪的 M$IE6 並不支援 CSS attr selector 語法 (M$IE7 以後才支援)。為了美化檢視頁面,就會看到一些對應 M$IE6 的奇招怪式。我個人已經無視 IE6 了。對那些還在用 IE6 的人,我都會"嚇他們"說微軟已經停止 IE6 支援了,要趕快升級 IE7。這時候我才發現 FUD (Fear, uncertainty and doubt) 策略還真好用,嘿嘿嘿(奸笑中)
最後,我展示一段配合 JavaScript 改變表單欄位可編輯狀態的範例。這也是很常用的技巧。
Editable
樂多舊網址: http://blog.roodo.com/rocksaying/archives/5895849.html
樂多舊回應