DOM動作表格,dom表格

來源:互聯網
上載者:User

DOM動作表格,dom表格

CSS分類

       行內: 

<div id="box"  style="width:200px;border:1px solid red  color:red;font-size:16px;"></div>

       內聯:在HTML的頭部一般為如下格式

<styletype=”text/css”>         div.test{                         background-color:red;                         height:10px;                     width:10px; margin:10px;               }</style>

       連結:在HTML中引入一個單獨的CSS檔案,格式如下

<linkrel="stylesheet" type="text/css"href="xx.css"/>

首先整體的看一下JS對CSS的操作


JS可以對行內樣式進行擷取和設定

       在HTML中每個元素都有一個屬性對象style,該對象包含了該元素的所有的css樣式,這種CSS樣式稱為內嵌樣式,如下

<div id="box"  style="width:200px;border:1px solid red  color:red;font-size:16px;"></div>       var box = document.getElementById('box');//獲得id為box的元素節點       alert(box.style);                 //CSSStyleDeclaration對象       alert(box.style.color);              //red       alert(box.style.width);

注意:在CSS中如果出現類型font-size的屬性在JS中把-號去掉,後面的字元大寫,寫成alert(box.style.fontSize);

利用JS的style可以獲得所有設定過的屬性值。也可以設定屬性值。  

       box.style.color=green;//將顏色改為綠色       box.style.height=12px;//也可以設定沒有的屬性

DOM2級還為style定義了一些屬性和方法    

       removeProperty(name)——移除指定的屬性       setProperty(name,value,position)——給指定的屬性設定值

但是通過style只能夠獲得行內的css樣式,如果使用內聯或連結的則無法獲得,在非IE中可以使用getComputedStyle()在IE中使用currentStyle()屬性,這兩個方法只能夠獲得。

JS對內聯及連結樣式進行擷取和設定

       對這兩種樣式的操作時是通過CSSStyleSheet對象進行.對該對象的擷取有兩種方式

方法一:先獲得元素,然後獲得該對象

在IE中通過sheet屬性獲得,在非IE中通過styleSheet獲得。

var link = document.getElementsByTagName('link')[0];//通過標籤面獲得所有的連結的css樣式然後去第一個var sheet = link.sheet || link.styleSheet;//通過sheet或styleSheet獲CSSStyleSheet對象

方法二

通過doucument中的styleSheets直接獲得,返回的是個數值,它相容所有的瀏覽器。

       var sheet=document.styleSheets[0];

       CSSStyleSheet有一些屬性和方法可以操作外聯的樣式,常用的“增”和“刪”,但是IE和非IE是不相容的,所以需要自己寫函數進行相容。如果要“改”CSS中的樣式則可以使用CSSRules,對CSS檔案中的某一條規則進行修改。


小結

       CSS一共三種樣式,DOM操作可以分為兩個大類,行內的使用style可讀可寫,內聯和連結的使用getComputedStyle或currentStyle只能讀,如果使用CSSStyleSheet對象下的CSSRules對象則可以對指定的CSS規則進行讀和寫。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.