亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript改變CSS樣式的方法匯總

2019-11-20 12:32:03
字體:
來源:轉載
供稿:網友

JavaScript允許你即時的改變CSS樣式,這樣就可以將用戶的眼球吸引到你想他們關注的地方上,并且提供較好的交互體驗給力 。

JavaScript修改CSS有4種方法:

修改節點style(內聯樣式);
改變節點class或id;
寫入新的css;
替換頁面中的樣式表。

個人不建議使用后兩種方法,幾乎所有的功能都可以通過前兩種方式實現,并且代碼更加清晰、易理解。

后面還會說說如何獲取元素的真實樣式和一個表單中的注意事項。

1、修改節點style(內聯樣式)

這種方法權重是最高的,直接寫在節點的style屬性上,他會覆蓋其他方法設置的樣式。使用方法很簡單:

var element = document.getElementById("test");element.style.display = "none" //讓元素隱藏

但是要注意的是,有些CSS樣式名稱是由幾個單詞組成的例如font-size、background-image等,他們都是用破折號(-)連接起來的,然而JavaScript中破折號表示“減”,因此不能作為屬性名稱。我們需要使用“駝峰格式(camelCase)”來書寫屬性名,例如fontSize、backgroundImage。

還要注意的是,很多style都是有單位的,不能只給一個數字。例如fontSize的單位有px、em、%(百分比)等。

這種方法違背了表現和行為分離的原則,一般只適合定義元素經常變化的即時樣式(與行為相關),例如一個可用于拖拽的div,隨著拖拽,他的top、left屬性是不斷變換的,此時就不能用class或其他方式定義了,使用這種方式可以即時修改樣式,并且覆蓋掉其他方式的設置。

2、更改class、id

id和class是設置樣式的“鉤子”,更改之后瀏覽器會自動更新元素的樣式。

更改id的方法和class的類似,但是個人并不建議這樣使用,因為id是用于定位元素的,最好不要用它來定義元素的顯示樣式,并且id也常作為JavaScript的鉤子,可能會引起不必要的錯誤。
在JavaScript中,class是一個保留關鍵字,因此使用className作為訪問元素class的屬性,例如:

.redColor{ color: red;}.yellowBack{ background: yellow;}element.className = "redColor";//設置classelement.className += " yellowBack";//增加class

但比較郁悶的是,這個屬性是一個包含元素所有class的字符串,所有class以空格分開,這樣在刪除class時就很不方便(增加就好說,之間做個字符串連接就可以了,不過記得前面要加個空格~)。

我之前在刪除的時候用了正則表達式,根據class在字符串中的不同位置進行刪除(頭部、尾部、中間),不過后來想到了更好的辦法,就是在className屬性頭尾都加上一個空格,那就全部變成中間的方法了,直接進行子串替換:

//刪除classfunction removeClass(element,classRomove){var classNames = " "+element.className+" ";classNames = classNames .replace(" "+classRomove+" ", " ");//String.trim(classNames);element.className = classNames;}

一般的樣式修改最好都用這種方法,定義好CSS的樣式,JavaScript只是發出樣式改變的指令,具體的樣式定義還是交給CSS去做。

后兩種方法,既不優雅,也有一定兼容性問題,我就不介紹了~

3、獲取真實樣式

首先要說清楚的是,通過element.style是不行的,他只能獲取內聯樣式,樣式表中的定義無法獲取到。
既然元素的樣式可以定義在這么多種地方,那他的真實樣式到底是什么樣子就不好說了,有什么辦法能獲取到元素在瀏覽器中顯示的真實樣式呢?
其實微軟和W3C都提供了相應的方法,我們只需要進行一下封裝就可以用了:

//獲取元素樣式function getRealStyle(element,styleName){var realStyle = null;if(element.currentStyle){realStyle = element.currentStyle[styleName];//IE}else if(window.getComputedStyle){realStyle=window.getComputedStyle(element,null)[styleName];//W3C}return realStyle;}

記得傳入的styleName是用“駝峰格式”的~~

4、表單的顯示和隱藏(不要濫用CSS)

我們經常會見到一些表單的選項是動態添加的,例如你某個表單中選擇了婚姻狀態是“已婚”,那么就會多一個輸入框讓你輸入配偶的姓名。

如果沒有選擇那當然就要把“配偶”的相關表單都隱藏了,但在這個時候不應當用CSS來解決,即不能用style.display=”none”來隱藏。

因為無論你隱還是不隱藏它,輸入框就在那里,不增不減~ [暈] 直白點說,就是雖然隱藏了,但他還是存在與DOM中,如果此時用戶提交表單,會把這個隱藏的輸入框的內容一起提交,可能會出現些意想不到的錯誤~

正確的做法是將這段內容放入DOM超空間中,這樣就不會有上面的問題了。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人h猎奇视频网站| 主播福利视频一区| 欧美激情亚洲一区| 亚洲社区在线观看| 国产精品网红直播| 亚洲日本aⅴ片在线观看香蕉| 日韩精品视频免费在线观看| 国产成人一区二区在线| 久久精品国产亚洲精品2020| 久久精品国产成人| 国产精品美女主播在线观看纯欲| 亚洲一区二区在线播放| 国产日韩欧美日韩大片| 国模精品视频一区二区三区| 国产婷婷色综合av蜜臀av| 久久成人精品电影| 18久久久久久| 亚洲一区二区精品| 北条麻妃在线一区二区| 成人国产精品久久久| 韩国一区二区电影| 日韩电视剧免费观看网站| 国产精品露脸av在线| 亚洲精品电影网| 欧美富婆性猛交| 欧美高清无遮挡| 亚洲成人动漫在线播放| 亚洲欧美综合区自拍另类| 青草热久免费精品视频| 国产精品igao视频| 亚洲国产精彩中文乱码av在线播放| 亚洲午夜精品久久久久久性色| 成人免费观看49www在线观看| 国产精品女主播视频| 国产经典一区二区| 国产成人精品久久亚洲高清不卡| 激情懂色av一区av二区av| 成人网在线视频| 青青草精品毛片| 欧美国产精品人人做人人爱| 97视频国产在线| 国产亚洲综合久久| 91精品国产自产在线观看永久| 欧美精品免费在线| 国产欧美日韩中文字幕在线| 欧美一区二三区| 精品国产91久久久久久老师| 国产第一区电影| 91在线无精精品一区二区| 欧美日韩亚洲一区二区| 欧美在线性视频| 精品自拍视频在线观看| 在线看国产精品| 国产亚洲精品成人av久久ww| 91在线观看免费网站| 一本色道久久综合亚洲精品小说| 亚洲国产三级网| 福利视频第一区| 亚洲美女黄色片| 国产91精品久久久久久久| 久久久亚洲福利精品午夜| 91综合免费在线| 国产综合久久久久久| 永久555www成人免费| 国产成人精品电影久久久| 日韩在线观看免费高清完整版| 久久激情五月丁香伊人| 欧美性猛交xxxx乱大交3| 97视频网站入口| 国产精品久久视频| 亚洲最大福利视频网| 欧美国产日韩一区二区三区| 国内揄拍国内精品少妇国语| 亚洲国产天堂久久综合网| 在线电影欧美日韩一区二区私密| 中日韩美女免费视频网址在线观看| 久久久久久久国产精品| 亚洲色图在线观看| 亚洲视频免费一区| 九色精品美女在线| 日韩中文视频免费在线观看| 奇米四色中文综合久久| 亚洲成人精品久久久| 国产精品欧美一区二区三区奶水| 国产精品欧美一区二区| 久久久久久久久电影| 亚洲欧美国产另类| 欧美日韩精品中文字幕| 精品久久久久久| 色婷婷**av毛片一区| 久久久久久久久久久久久久久久久久av| 国产精品普通话| 91免费精品视频| 精品福利视频导航| 777国产偷窥盗摄精品视频| 日韩一区二区三区xxxx| 另类色图亚洲色图| www.亚洲人.com| 久久久久久久久久婷婷| 一区二区三区回区在观看免费视频| 中文字幕日韩综合av| 91大神在线播放精品| 亚洲天堂av在线播放| 国产午夜精品一区理论片飘花| 国产美女扒开尿口久久久| 中文字幕精品视频| 亚洲免费伊人电影在线观看av| 搡老女人一区二区三区视频tv| 久久精品免费电影| 欧美一级电影免费在线观看| 伊人久久久久久久久久久久久| 视频在线观看一区二区| 日本久久久久久久| 81精品国产乱码久久久久久| 亚洲va欧美va国产综合久久| 欧美大片免费观看在线观看网站推荐| 91高清免费视频| 欧美理论片在线观看| 最近2019中文字幕在线高清| 亚洲午夜av电影| 国产午夜精品免费一区二区三区| 久色乳综合思思在线视频| 久热精品视频在线观看| 91探花福利精品国产自产在线| 国产精品视频精品| 日韩欧美中文字幕在线观看| 亚洲午夜精品视频| 欧美一区在线直播| 亚洲欧美综合图区| 欧美亚洲国产精品| 久久久久久一区二区三区| 91亚洲国产成人精品性色| 亚洲大胆人体视频| 国产精品一区二区久久久| 亚洲欧美日韩国产精品| 亚洲人成网站在线播| 久热精品视频在线观看| 日本不卡视频在线播放| 国产做受高潮69| 成人综合国产精品| 久久免费国产精品1| 不用播放器成人网| 成人激情黄色网| 91精品视频大全| 国产精品电影网站| 色噜噜亚洲精品中文字幕| 亚洲国产欧美一区| 日韩精品小视频| 日韩精品免费在线视频观看| 亚洲精品99999| 96pao国产成视频永久免费| 日韩精品在线免费观看视频| 最近2019中文字幕一页二页| 91香蕉亚洲精品| 欧美视频在线观看 亚洲欧| 91日本视频在线| 日韩中文字幕在线视频播放| 高清日韩电视剧大全免费播放在线观看| 亚洲伊人久久综合| 欧美另类在线播放| 国产精品一区二区久久| 亚洲区bt下载| 日韩专区在线播放| 久久久中文字幕|