搜尋
首頁web前端css教學background-color 與 backgroundColor的有什麼區別

background-color 與 backgroundColor的有什麼區別

Sep 11, 2017 am 11:07 AM
background-color差別


說明

我們先來看看出了什麼問題。

<!doctype html><html lang="zh">
 <head>
     <meta charset="utf-8">
 </head>

 <body style="background-color:red;">
 </body>

 <script>
    var a = document.querySelector(&#39;body&#39;);    var CamelCase = a.style.backgroundColor;
    console.log(&#39;驼峰命名结果:&#39;+CamelCase);    var CSSProperty = a.style[&#39;background-color&#39;];
    console.log(&#39;CSS语法结果:&#39;+CSSProperty); </script></html>

結果圖:
background-color 與 backgroundColor的有什麼區別

可能你還沒覺得那裡奇怪,我們再來看看a.style 是什麼,
background-color 與 backgroundColor的有什麼區別
上面的截圖是一部分,沒有全部截出來,因為實在太長了,主要是想說,在a.style 這個物件中並沒有看見background-color 這樣的屬性呀! 為什麼 a.style['background-color'] 居然也能取得到值,這是很奇怪的事。

解釋

經過各種查資料,終於算是明白了,這主要是因為 CSSStyleDeclaration 做了 介面擴展,讓  IDL屬性 能夠取得和設定 瀏覽器支援的 CSS屬性。

CSSStyleDeclaration
background-color 與 backgroundColor的有什麼區別
CSSStyleDeclaration 表示一個CSS屬性鍵值對的集合。它被用於一些API中:

  • HTMLElement.style - 用於操作單一元素的樣式(<elem style="..."></elem> );

  • (TODO: reword) 作為declaration block 的接口,當規則為CSSStyleRule 時,由stylesheet中的style  屬性傳回。

  • CSSStyleDeclaration也是由window.getComputedStyle()傳回的唯讀介面。

IDL  

介面描述語言(Interface description language,縮寫IDL),是CORBA規格的一部分,是跨平台開發的基礎。
 IDL是用來描述軟體元件介面的一種電腦語言。 IDL透過一種中立的方式來描述接口,使得在不同平台上運行的對象和用不同語言編寫的程序可以相互通信交流;比如,一個組件用C++寫成,另一個組件用Java寫成。

在 CSSOM 中這樣寫到

For example
  if the user agent supports the -webkit-transform
 property, there would be a webkitTransform IDL attribute. There would
 also be a WebkitTransform IDL attribute because of the rules for
 camel-cased attributes.

例如
如果使用者代理支援-webkit-transform 屬性,因為駝峰命名的規則 會有webkitTransform IDL屬性。也會有一個WebkitTransform IDL屬性

說到這裡大家應該明白點了。
我們最開始 a.style,a的style屬性的值就是一個物件。  
這個物件所包含的屬性與CSS規則一一對應,但是名字需要用駝峰命名的方式進行改變,例如background-color寫成backgroundColor。改寫的規則是將橫槓從CSS屬性名中移除,然後將橫槓後的第一個字母大寫。如果CSS屬性名是JavaScript保留字,則規則名稱之前需要加上字串css,例如float寫成cssFloat,而改寫後的 backgroundColor 就是 IDL屬性。

注意: “-” 在JS 中是減法的意思,變數名稱中是不能用“-”的

總結

#說了這麼多概念,我們簡單理解就是, 像backgroundColor 與background-color 這樣的屬性,他們的屬性值是一樣的,改變兩個中任何一個屬性的值,另一個屬性的值也會隨之改變,但JS中變數不能用“-”,所以可以透過每個CSS屬性對應的IDL屬性,來取得和設定CSS屬性,所以JS 有background-color 這樣的屬性,只是不能這樣顯示出來,但是我們最開始的寫成a.style['background-color'],這樣就不受「-」的影響了,所以也能取得屬性值。

以上是background-color 與 backgroundColor的有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
這麼多顏色鏈接這麼多顏色鏈接Apr 13, 2025 am 11:36 AM

最近有一系列有關顏色的工具,文章和資源。請允許我通過將它們四捨五之後關閉幾個標籤,以供您享受。

自動利潤在Flexbox中的工作方式自動利潤在Flexbox中的工作方式Apr 13, 2025 am 11:35 AM

羅賓以前已經介紹過這一點,但是我在過去的幾周里聽到了一些關於它的困惑,看到另一個人在解釋它,我想

移動彩虹移動彩虹Apr 13, 2025 am 11:27 AM

我絕對喜歡三明治網站的設計。在許多美麗的功能中,這些標題是滾動時帶有彩虹的下線。它不是

新年,新工作?讓我們做一個網格驅動的簡歷!新年,新工作?讓我們做一個網格驅動的簡歷!Apr 13, 2025 am 11:26 AM

許多流行的簡歷設計通過以網格形狀鋪設部分來充分利用可用的頁面空間。讓我們使用CSS網格創建一個佈局

將用戶擺脫過多習慣的一種方法將用戶擺脫過多習慣的一種方法Apr 13, 2025 am 11:25 AM

頁面重新加載是一回事。有時,當我們認為它沒有響應或認為新內容可用時,我們會刷新頁面。有時我們只是生氣

域驅動的設計與React域驅動的設計與ReactApr 13, 2025 am 11:22 AM

關於如何在React世界中組織前端應用的指導很少。 (只需移動文件,直到“感覺正確”,大聲笑)。真相

檢測非活動用戶檢測非活動用戶Apr 13, 2025 am 11:08 AM

大多數情況下,您並不真正在乎用戶是否積極參與或暫時非活動。不活躍,意思,也許他們

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufoo一直在集成方面非常出色。他們與特定應用程序(例如廣告系列顯示器,MailChimp和Typekit)進行集成,但他們也

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器