本文目錄一覽:
- 1、js修改樣式css有哪些方法呢?
- 2、如何用js修改已加載的多個css樣式表樣式
- 3、js中巧用cssText屬性批量操作樣式
- 4、JS修改CSS設置的樣式
- 5、JS 動態修改CSS 樣式方法/全局
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”})
發現
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