DOM程式設計 樣式操作

2021-08-04 05:33:36 字數 1650 閱讀 6178

幾個需求

一、在我們進行登入註冊的時候,當我們的輸入不符合規則,游標離開後會變色來提示使用者

二、頁面換膚,使用者的選擇會改變整個頁面的樣式

可以通過外部引入css檔案,在head中內嵌css,在style屬性中新增css屬性

說明:下面的style對應的是cssstyledeclaretion的乙個物件

內部樣式表

body

pstyle>

我們通過element.sheet.cssrules得到css的列表

列表可以用下標訪問element.sheet.cssrules[1]就是對p

element.sheet.cssrules[1].selectortext對應的是選擇器p

element.sheet.cssrules[1].style對應的就是css宣告color:red;line-height:20px;,是乙個物件

element.sheet.cssrules[1].style.lineheight對應的是屬性值20px,注意屬性名應該寫成駝峰格式

內嵌css

sttyle="color:red;">paragrephp>
element.style.color對應的就是red

對於我們的需求更改輸入框

element.bordercolor = "red"

;element.style

.color="red"

;

這樣會在input上新增乙個內嵌的樣式表,優先順序最高,可以有效改變樣式。

問題對於同樣的需求element.style.csstext = 'border-color:red;color:red;'可以在一條語句中實現需求,並且和css格式相同。

問題樣式混在邏輯中,js和css混合起來

我們先在css中寫乙個不被引入的樣式.index

然後在js中element.classname += 'index'

這樣就在input元素上增加了class

問題當需要一次更新很多元素的樣式時,比較繁瑣難以實現

比如對頁面進行更換主題,換膚,我們可以使用更換樣式表來解決。

比如從更改為我們可以用如下語句$('index').href = "index2.css"

通過這個方式我們還可以增加樣式,刪除樣式來進行批量處理。

element.style 是獲取不到實際樣式的,只能得到行內的style,因此style得到的不一定是實際的樣式。

var style = window.getcomputedstyle(element[,pseudoeit]);

對於我們使用這個方法window.getcomputedstyle(element).color; //"rgb(155,0,0)"

這個方法在ie9以下不支援,我們使用element.currentstyle做相容

function

getstyle

(element, cssname)else

}

DOM操作 操作樣式

dom操作 操作樣式 1.style 屬性 行內樣式 讀取 dom.style.樣式名稱dom操作 操作樣式 設定 dom.style.樣式名稱 樣式值 說明 所有的樣式名稱都與css相通,但命名規則為駝峰命名法。dom.style.fontsize 30px dom.style.display n...

javascript 操作DOM元素樣式

點語法 dom.style.color 中括號 dom.style color 相同點 1.只能獲取行內樣式,不能獲取內嵌和外部樣式 2.獲取的是帶單位的字串 如 100px 不同點 點語法只能獲取固定的屬性而且不能動態傳參,中括號可以 var h height box.style.h 100px ...

DOM外聯樣式相關操作

dom在對css樣式進行修改的時候,直接使用style會出現無法獲取外聯樣式表樣式的情況,這時需要使用css 樣式宣告物件 cssstyledeclaration 其中有乙個csstext屬性,用於設定或返回樣式宣告文字,csstext 對應的是 html 元素的 style 屬性。語法如下 返回 ...