<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS如何設置元素樣式的方法示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:31:36
        文檔

        JS如何設置元素樣式的方法示例

        JS如何設置元素樣式的方法示例:一看到這個標題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設置元素樣式,但實際上,我們其實還有其他方式可以選擇。 接下來,我將詳細介紹三種設置元素樣式的方式。 一、style 這個其實就是我們所熟知的方式,舉個例
        推薦度:
        導讀JS如何設置元素樣式的方法示例:一看到這個標題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設置元素樣式,但實際上,我們其實還有其他方式可以選擇。 接下來,我將詳細介紹三種設置元素樣式的方式。 一、style 這個其實就是我們所熟知的方式,舉個例

        一看到這個標題,大家可能首先想到的就是使用“[元素].style.[CSS屬性名] = [屬性值]”這樣的套路去設置元素樣式,但實際上,我們其實還有其他方式可以選擇。

        接下來,我將詳細介紹三種設置元素樣式的方式。

        一、style

        這個其實就是我們所熟知的方式,舉個例子~~

        <div id="box"></div>
        var box = document.getElementById("box");
        box.style.width = '100px';
        box.style.height = '100px';
        box.style.backgroundColor = "#f00";

        顯示效果:

        這種方式看似簡單粗暴,但寫法過于繁冗,尤其是在需要添加很多樣式時尤為突出。并且需要注意的是,對于使用短劃線的CSS屬性名,必須將其轉換成駝峰大小寫形式。(如示例中的backgroundColor)

        二、style.cssText

        這種方式相對于上面方法更為簡潔,更像是直接在元素上寫CSS:

        [元素].style.cssText = [CSS樣式];

        例如:

        box.style.cssText = 'width: 200px; height: 200px; border: 1px solid #f00;';

        確實,寫法上很方便。

        但是,缺點是后面同樣通過這種方式添加的樣式會覆蓋之前通過style特性指定的樣式。

        同樣還是上面的例子,只不過是將兩段JS寫在一塊:

        var box = document.getElementById("box");
        box.style.width = '100px';
        box.style.height = '100px';
        box.style.backgroundColor = "#f00";
        box.style.cssText = 'width: 200px; height: 200px; border: 1px solid #f00;';

        如果按照層疊樣式表的特性,上面定義的紅色的背景顏色應該還存在,然而實際上,下面通過style.cssText方式定義的樣式會將style(包括style.cssText)方式添加的樣式全部重寫。所以,這個例子最終表現結果與上面只有一句時的效果是一樣的:

        最后注意下兼容性,IE8及更早版本均不支持cssText。

        三、insertRule()

        這個用法相對上面兩種方法都較為復雜一些:

        [sheet].insertRule([CSS樣式],指定位置)

        [sheet]表示某個樣式表,它可以通過document.styleSheets來獲得。那么,document.styleSheets又是什么呢? 說得簡單一點就是應用在文檔中的所有樣式表,包括通過link標簽引入的樣式和style標簽定義的樣式。如果理解上還是有點困難,那么我們還是放個實例吧~~

        首先頭部引入樣式表:

        <link rel="stylesheet" type="text/css" href="css/index.css" rel="external nofollow" />

        當然,這個樣式表得真實存在,就算里面什么樣式都不寫也沒關系。也可以直接用style標簽,內容為空也不要緊。

        然后用JS獲取這個樣式表:

        var sheet = document.styleSheets[0];

        最后我們就可以給這個樣式表中添加樣式了:

        sheet.insertRule('#box{width: 300px; height: 300px; background-color: #0f0;}',0);

        如果是在上面所有例子的基礎上添加的這段代碼,那么顯示結果會是這樣的:

        大小還是200*200大小,背景顏色是綠色,說明通過style.cssText所設置的寬高樣式把通過insertRule()設置的樣式覆蓋了,原因很簡單,style(包括style.cssText)方式設置的樣式屬于行內樣式,自然要比通過insertRule()設置的樣式優先級更高咯~~

        那么,示例當中insertRule()的第二個參數0又是指的什么呢?

        它指的是我們需要添加CSS代碼的位置,所以參數0就代表的是該樣式表的最開始位置。

        例如,我們先給樣式表中手動添加一段樣式(以下例子與上述例子無關):

        <style>
         #box{ width: 100px; height: 100px;}
        </style>
        var sheet = document.styleSheets[0];
        sheet.insertRule('#box{width: 300px; height: 300px; background-color: #0f0;}',0);

        以上執行結果就是,寬高100*100的綠色盒子:

        如果將insertRule()中的第二個參數改為1,那么通過JS添加的這段CSS代碼相當于添加到了#box{ width: 100px; height: 100px;}的后面,類似下面這樣:

        <style>
         #box{ width: 100px; height: 100px;}
         #box{ width: 300px; height: 300px; background-color: #0f0;}
        </style>

        顯示結果:

        同樣需要注意的是,insertRule()不兼容IE8及更早版本,但可以使用addRule()替代,語法稍微有點不同,上面例子這樣寫:

        代碼如下:
        sheet.addRule('#box','width: 300px; height: 300px; background-color: #0f0;',0);

        第一個參數代表元素,第二個參數代表CSS樣式,第三個參數代表插入位置,前兩個參數必選,最后一個可選,不填則默認為0。

        結束語:瀏覽器兼容性問題對于前端開發者來說一直是個很頭疼的問題,很多問題也是主要集中在IE上,只希望可惡的IE早日退出歷史舞臺吧!希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS如何設置元素樣式的方法示例

        JS如何設置元素樣式的方法示例:一看到這個標題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設置元素樣式,但實際上,我們其實還有其他方式可以選擇。 接下來,我將詳細介紹三種設置元素樣式的方式。 一、style 這個其實就是我們所熟知的方式,舉個例
        推薦度:
        標簽: 設置 元素 js
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产精品永久免费| 亚洲乱码中文字幕在线| 中文在线观看国语高清免费| 国产免费久久精品99re丫y| 亚洲V无码一区二区三区四区观看| 九九视频高清视频免费观看 | 亚洲av无码专区亚洲av不卡| 成人黄软件网18免费下载成人黄18免费视频 | 久久一区二区免费播放| 亚洲自偷自偷偷色无码中文| 丰满人妻一区二区三区免费视频| 亚洲人成影院在线无码观看| 中文字幕永久免费视频| 久久99国产亚洲高清观看首页 | 国产黄色片免费看| 亚洲中文字幕无码永久在线| 中文字幕免费在线播放| 亚洲AV区无码字幕中文色| 中文字幕免费视频| 亚洲一区精彩视频| 日本一道在线日本一道高清不卡免费| 亚洲AV成人精品一区二区三区| 国产成人免费片在线视频观看| 一级人做人a爰免费视频 | 亚洲视频网站在线观看| 91成人免费观看网站| 亚洲人成色77777在线观看| 免费夜色污私人影院在线观看| sss日本免费完整版在线观看| 亚洲AV无码久久精品色欲| 无码精品A∨在线观看免费| 亚洲第一成年免费网站| 亚洲中文字幕无码一久久区| 91成人在线免费视频| 亚洲GV天堂无码男同在线观看| 亚洲性日韩精品国产一区二区| 99精品一区二区免费视频| 亚洲码和欧洲码一码二码三码| 青青草原亚洲视频| 成人无码区免费A片视频WWW| yellow视频免费看|