js獲取元素css樣式表中的樣式

2021-07-25 02:25:32 字數 1191 閱讀 1177

情況一:寬高都寫在樣式表裡,即外部樣式或嵌入式樣式,比如#div1。這種情況通過#div1.style.width拿不到寬度,而通過#div1.offsetwidth才可以獲取到寬度。

情況二:寬和高是寫在行內中,即內聯式樣式,比如style="width:120px;",這中情況通過上述2個方法都能拿到寬度。

因為id.offsetwidth和id.offsetheight無視樣式寫在樣式表還是行內,所以我們獲取元素寬和高的時候最好用這2個屬性。注意如果不是寫在行內style中的屬性都不能通過id.style.atrr來獲取。

**:var $ = document.getelementbyid("view");

var h = $.offsetheight;  //高度

var w = $.offsetwidth;  //寬度

現在的前端製作很少直接把樣式寫style裡了,都是寫在樣式表裡。如果你要獲取的樣式沒有相對應(即#div1.style.width與#div1.offsetwidth的值不等,因為offset計算時包括padding和border),就只能分別針對不用瀏覽器來獲採樣式表的屬性了,方法如下:

//ie8及以前版本:通過currentstyle

alert(document.getelementbyid('id').currentstyle.width);

//ff,safari,opera,chrome,ie9及之後版本:通過window.getcomputedstyle

var el=document.getelementbyid('id');

alert(window.getcomputedstyle(el,null).width);

附錄:樣式分類 

外部樣式 external style sheet

以css為副檔名的檔案(又稱為"超文字樣式表"檔案),它的作用範圍可以是多張網頁,或整個**,甚至不同的**。與網頁鏈結後,才能應用。 

嵌入式樣式 internal style sheet ()

包含在網頁內部的樣式設定,它的作用範圍僅限於嵌入的網頁。 

內聯式樣式 inline style

在html文件中,內聯式樣式表的格式化資訊直接插入所應用的網頁元素的html標籤中,作為其html標籤的屬性引數。嚴格地說,內聯樣式表稱不上表,僅僅是一條html標記。 

當出現相同的樣式時,優先順序是內聯大於嵌入式樣式, 嵌入式樣式大於外部樣式。

CSS引入方式 內部樣式表 行內樣式表 外部樣式表

內部樣式表就是將css在寫html頁面內部。是將所有的css 抽取出來,單獨放到乙個標籤中。例如 divstyle 標籤理論上可以放在文件的任何地方,但是一般會放在文件的標籤中。通過此種方式,可以方便的控制整個頁面中的元素樣式設定,結構清晰,但是並沒有實現結構與樣式的完全分離。行內樣式表是在元素標籤...

js js 獲取css 樣式表屬性

今天看到這樣兩個屬性 currentstyle defaultview,這兩個屬性從字面上看,是獲取css 屬性的,而我之前獲取css屬性用的則是dom.element.style.height 類似這樣的寫法,今天看到上面提到的兩個屬性有好奇,與在網上查了一下,這個兩用法是區別的 dom.elem...

使用js修改css樣式表

有些情況下,我們需要頁面載入時就快速修改元素的樣式,但如果在頁面dom載入完後再修改css,雖然元素樣式快速變化,但肉眼能觀察到,所以需要js動態生成樣式表,宣告所希望的css樣式.執行js時,頁面會有很短暫的阻塞,等js執行完畢後,瀏覽器會根據所修改的樣式繼續渲染css.這樣的樣式才不會 閃一下 ...