作者TonyQ (沉默是金。)
看板Ajax
標題[心得] js 踩到雷 3: style
時間Tue Jun 8 09:20:02 2010
這系列我定義是比較輕鬆的分享過去開發時的痛苦經驗,
所以請大家隨性的看看笑笑就好,如果有誤還請不吝更正這樣。XD
這篇主要是要探討一些有關在 style 上的問題。
@!important
在改變樣式的需求下,要記得一件事情,
!important 樣式是非常重要的,所以你用 js 在修改時,
要寫的跟他一樣重要瀏覽器才會理你。 XD
延伸閱讀 overriding-important-style-using-javascript
http://0rz.tw/6WnMj
@ DO NOT USE setAttribute
還有就是,要改變元素樣式成員時,
請不要用setArrtibute("style","xxx") 或 style= "xxxxx" 。
因為很容易做出你不想要的結果,強烈建議透過 style 成員來操作。
@ Be carefull about the name
雖然我們知道 style 裡面的東西都是駱駝式命名法,
不過小心他的命名有時候跟你想的不太一樣。
也就是CSS有這個設定,但是照著駱駝式命名法你不一定找的到。
對照表。
http://www.w3schools.com/jsref/dom_obj_style.asp
還有就是有一個很經典的例子,要修改一個 html 物件的「類別名稱」,
請不要對 obj.class 做修改,要對 obj.className 做修改。
另外 className 在 default 的狀態下是沒有提供新增刪除的method的,
一次就是改一串要自己 maintain 。
@ WATCH OUT the cross browser issue ..... IN CSS
css 自己也有跨瀏覽器議題,比方說 opacity 這個屬性在 ie6 的惡名昭彰,
還有一些其他的事情,有時候不一定是 javascript 的錯,
要記得做 double check 。
因為又到了下交流道的時間了~所以這次照舊在這裡收尾。XD
--
我發現有時間壓力的前提下寫文章真的比較輕鬆,
雖然能提到的不多,努力再挑戰看看這系列能寫幾篇。:)
--
我:一半的日子讓你說,我聽你說你的所有
______________________________________
______________________________________一半的日子我想說,對你說過去的所有:我
_______________________________________________________
在討論中妥善扮演兼具聆聽與分享的角色,是我們一生的課題。
_______________________________________________________
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.136.219.110
推 iam87king:這一系列我莫名的想起一句話「Chrome work IE suck」 06/08 23:30
→ ybite:opacity和border-radius這種一寫會寫三行以上的真的是惡夢.. 06/09 02:01
推 j100002ben:!important還沒有遇過,很堅持要過CSS Vaild的小小好處 06/09 06:53
→ TonyQ:我怎麼記得 !important 是css valid的東西。@_@ 06/09 08:34