js批量修改css,js批量修改樣式

本文目錄一覽:

js修改樣式css有哪些方法呢?

修改樣式

document.getELementById(‘div’).style.fontSize = “20px”;

修改寫好的類樣式

document.getELementById(‘div’).className = “div”;

如何用js修改已加載的多個css樣式表樣式

js是無法直接修改css文件的,但可以通過取對象的方式修改對象的樣式,通常有兩種方法:

1、改變className,但首先在樣式表中預設定樣式類。

例如:document.getElementById(‘obj’).className=’…’;

2、改變cssText。

例如:document.getElementById(‘obj’).style.height=’100px’;

~如果你認可我的回答,請及時點擊【採納為滿意回答】按鈕

~~手機提問的朋友在客戶端右上角評價點【滿意】即可。

~你的採納是我前進的動力

~~O(∩_∩)O,記得好評和採納,互相幫助,謝謝。

js中巧用cssText屬性批量操作樣式

給一個HTML元素設置css屬性,如

複製代碼

代碼如下:

var

head=

document.getElementById(“head”);

head.style.width

=

“200px”;

head.style.height

=

“70px”;

head.style.display

=

“block”;

這樣寫太羅嗦了,為了簡單些寫個工具函數,如

複製代碼

代碼如下:

function

setStyle(obj,css){

for(var

atr

in

css){

obj.style[atr]

=

css[atr];

}

}

var

head=

document.getElementById(“head”);

setStyle(head,{width:”200px”,height:”70px”,display:”block”})

發現

Google

API

中使用了cssText屬性,後在各瀏覽器中測試都通過了。一行代碼即可,實在很妙。如

複製代碼

代碼如下:

var

head=

document.getElementById(“head”);

head.style.cssText=”width:200px;height:70px;display:bolck”;

和innerHTML一樣,cssText很快捷且所有瀏覽器都支持。此外當批量操作樣式時,cssText只需一次reflow,提高了頁面渲染性能。

但cssText也有個缺點,會覆蓋之前的樣式。如

複製代碼

代碼如下:

div

style=”color:red;”TEST/div

想給該div在添加個css屬性width

複製代碼

代碼如下:

div.style.cssText

=

“width:200px;”;

這時雖然width應用上了,但之前的color被覆蓋丟失了。因此使用cssText時應該採用疊加的方式以保留原有的樣式。

複製代碼

代碼如下:

function

setStyle(el,

strCss){

var

sty

=

el.style;

sty.cssText

=

sty.cssText

+

strCss;

}

使用該方法在IE9/Firefox/Safari/Chrome/Opera中沒什麼問題,但由於

IE6/7/8中cssText返回值少了分號

會讓你失望。

因此對IE6/7/8還需單獨處理下,如果cssText返回值沒”;”則補上

複製代碼

代碼如下:

function

setStyle(el,

strCss){

function

endsWith(str,

suffix)

{

var

l

=

str.length

suffix.length;

return

l

=

str.indexOf(suffix,

l)

==

l;

}

var

sty

=

el.style,

cssText

=

sty.cssText;

if(!endsWith(cssText,

‘;’)){

cssText

+=

‘;’;

}

sty.cssText

=

cssText

+

strCss;

}

相關:

JS修改CSS設置的樣式

語法:元素.style.樣式名=樣式值

注意:如果CSS的樣式名中含有-,這種名稱在JS中是不合法的,比如 background-color 。需要將這種樣式名修改為駝峰命名法:去掉-,然後將-後的第一個字母大寫,比如 backgroundColor

我們通過style屬性設置的樣式都是內聯樣式,而內聯樣式有較高的優先級,所以通過JS修改的樣式往往會立即顯示

但是如果在樣式中寫了!important,則此時樣式會有最高的優先級,即使通過JS也不能覆蓋該樣式,此時將會導致JS修改樣式失效

所以盡量不要為樣式添加!important

語法:元素.style.樣式名

通過style屬性設置和讀取的都是內聯樣式,無法讀取樣式表中的樣式

語法:元素.currentStyle.樣式名

如果當前元素沒有設置該樣式,則獲取它的默認值

例如: box1.currentStyle.width

這個方法是window的方法,可以直接使用需要兩個參數

第一個:要獲取樣式的元素

第二個:可以傳遞一個偽元素,一般都傳null

該方法會返回一個對象,對象中封裝了當前元素對應的樣式

可以通過對象﹒樣式名來讀取樣式

如果獲取的 樣式沒有設置 ,則會獲取到真實的值,而不是默認值

比如:沒有設置width,它不會獲取到auto,而是 一個長度

注意:通過currentStyle和getComputedstyle()讀取到的樣式都是只讀的,不能修改,如果要修改必須通過style屬性

參數:

obj 要獲取樣式的元素

name 要獲取的樣式名

JS 動態修改CSS 樣式方法/全局

如何配置自行百度

1.scss文件定義變量

2.js中更改$textColor 變量的值

都是獲取DOM

通過DOM分別修改當前DOM樣式屬性值、

當前DOM整體css樣式、

修改當前DOM的className類名、

將link引入的標籤作為DOM 修改link的href,從而修改引用的樣式表。

詳情轉自:

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/199101.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-04 19:14
下一篇 2024-12-04 19:14

相關推薦

發表回復

登錄後才能評論