JavaScript css-dom

Claire_ljy發表於2020-04-04

HTML負責結構層,網頁的結構層由HTML或者XHTML之類的標記語言負責構建

CSS負責表示層,描述頁面內容應該如何呈現。

JavaScript負責行為層,負責內容應該如何響應事件這一問題。

 

能利用css解決的問題不要用js去實現,能用css實現的內容不要在html中使用,每個都應該嚴格負責自己的領域。

文件裡的每個元素都是物件(一切皆物件)

 

文件的每個元素節點都有一個屬性style,style包含著元素的樣式,查詢這個屬性將返回一個物件而不是一個簡單的字串,樣式都放在這個style物件的屬性裡

因為每個屬性都會包含多個樣式,所以要返回一個物件才比較好對屬性進行操作!

 

格式:element(元素).style.property(屬性樣式)

 

如果要得到一個標籤的樣式:

  1. 從文件裡把這個元素找出來
  2. 利用element.style.property獲取樣式(css樣式名之間的-要用駝峰命名法來表示,否則js無法解析。例如:font-family-->fontFamily

style屬性的一個很大的侷限性:style只能返回內嵌樣式,即只有把css style 新增到標記裡,才能用DOM style屬性去查詢那些資訊

                   來自外部的.css檔案已經不能再用DOM style檢索出來了。

ps:顏色:在css用顏色的英文名來命名顏色,如red,在js中會顯示red,如果用#000000類似的用法,js會顯示為RGB的格式

 

 

 

為內嵌樣式設定屬性:

style屬性的各個樣式,不僅可讀,還可寫。可以通過style屬性去更新樣式;

格式: element(元素).style.property(要改變的屬性樣式) = " value "(引號必加);

注意:只有在css不方便的場合,才可以使用DOM對文件的樣式做一些的小的增強,但是css始終是主體;

js特別擅長處理重複性任務,用一個while或者for迴圈就可以輕鬆地遍歷一個很長的列表

 

 

在.CSS檔案中改變樣式:(確保網頁的表示層和行為層分離的徹底)

與其使用DOM直接改變某個元素的樣式,不如通過JavaScript程式碼去更新這個元素的class屬性

技巧:在css樣式表裡寫多一個class屬性的樣式表,利用setAttribute方法來把標籤中class屬性的值改變,從而得到新的樣式。

className屬性:有一個更簡單的辦法更新class的是使用className屬性(是一個可讀,可寫的屬性),只要是元素節點都有這個屬性

獲取元素的class值,格式: element(元素).className

用className屬性和賦值操作符可以設定一個元素的class屬性值

格式: element(元素).className = "classname"

使用這個操作可以把新的class值把原先的class的值替換掉。

但有一個問題是,我們有時並不是想要替換掉這個class值,我們只是想在原來的class的值後面再追加一個class的值。

可以使用字串拼接的方法: element(元素).className += " classname"   注意:在classname前面需要有一個空格

 

推薦步驟:

  1. 檢查className屬性的值是否為空
  2. 如果是,則直接把class的設定值直接賦給className
  3. 如果不是,則把一個空格和新的class設定值追加到className上面去

 

對函式進行抽象可以使函式的使用範圍更廣,通過賦予引數呼叫的方式;當發現可以對一個函式進行抽象時,應該立刻就去做!!!!!!

轉載於:https://www.cnblogs.com/Gary-Guoweihan/p/4774673.html

相關文章