91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS怎么設置元素樣式的

發布時間:2021-02-19 10:02:55 來源:億速云 閱讀:116 作者:小新 欄目:web開發

小編給大家分享一下JS怎么設置元素樣式的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

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

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

一、style

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

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

顯示效果:

JS怎么設置元素樣式的

這種方式看似簡單粗暴,但寫法過于繁冗,尤其是在需要添加很多樣式時尤為突出。并且需要注意的是,對于使用短劃線的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)方式添加的樣式全部重寫。所以,這個例子最終表現結果與上面只有一句時的效果是一樣的:

JS怎么設置元素樣式的

最后注意下兼容性,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);

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

JS怎么設置元素樣式的

大小還是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的綠色盒子:

JS怎么設置元素樣式的

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

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

顯示結果:

JS怎么設置元素樣式的

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

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

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

以上是“JS怎么設置元素樣式的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭山县| 田东县| 中阳县| 瑞金市| 庆阳市| 右玉县| 多伦县| 紫阳县| 志丹县| 四川省| 长寿区| 顺昌县| 安泽县| 龙陵县| 西乌珠穆沁旗| 噶尔县| 桐城市| 临潭县| 永泰县| 阜新市| 梁山县| 吴忠市| 永定县| 正阳县| 蒙自县| 奇台县| 板桥市| 宜城市| 崇左市| 张家界市| 铁岭市| 呼伦贝尔市| 齐河县| 肥城市| 滦平县| 临沧市| 绵竹市| 阿拉善左旗| 神农架林区| 色达县| 临城县|