js獲取css屬性方法,設置獲取css屬性

本文目錄一覽:

解析js如何獲取css樣式

一、獲取內聯樣式

div

id

=”myDiv”

style=”width:100px;height:100px;background-color:red;

border:1px

solid

black;”/div

script

var

myDiv

=

document.getElementById(“myDiv”);

alert(myDiv.style.width);//100px

alert(myDiv.style[‘height’]);//100px

var

style=myDiv.style;

alert(style.backgroundColor);//red

myDiv.style.backgroundColor=’green’;//myDiv背景色變為綠色

/script

在這種情況下,獲取和設置樣式只靠style屬性就可以,因為element.style屬性返回的是類似數組的一組樣式屬性及對應值,因此訪問具體樣式的時候可以採取兩種方式即“ele.style.屬性名稱”和“ele.style[‘屬性名稱’]”。但是,要注意的是,針對css樣式里background-color;margin-left之類的短杠相接的屬性名稱,在使用style屬性獲取設置樣式的時候名稱要改為駝峰式,如ele.style.backgroundColor.

二、因為第一種方法,即使用style屬性只能獲取到內聯樣式。但是,實際情況是文檔在現在都基本遵循分離思想,樣式基本都是外部鏈接,所以三種樣式都要考慮到的,這時就要使用其他方法進行獲取,而在這種情況下進行樣式獲取時,不同的瀏覽器又有不同的處理方式(主要是ie和非ie),因此根據瀏覽器可以分為兩種方式:

(2.1)非ie瀏覽器中,使用document.defaultView對象的getComputedStyle(ele,null/偽類)方法,該方法接受兩個參數,第一個為要考察的元素,第二個則要根據情況,如果只是考察元素本身則為null,如果要

考察偽類,則為響應的偽類。該方法獲取到的為元素應用的最終樣式組合,同樣是類似數組的一個實例。

(2.2)在ie瀏覽器中,對getComputedStyle()方法不支持,但是針對每個標籤元素都有一個近似於style屬性的currentStyle的屬性,且用法和style用法相同。只不過獲取到的樣式範圍不一樣。currenStyle獲取到的和getComputedStyle()方法相接近。

為了在處理時達到兼容,可以根據這兩種不同的處理方式創建一個函數來達到兼容目的,使得不管在那種瀏覽器中,都可以成功獲取樣式。如下所示:

style

type=”text/css”

#myDiv

{

background-color:blue;

width:100px;

height:200px;

}

/style

div

id

=”myDiv”

style=”background-color:red;

border:1px

solid

black;”/div

script

var

myDiv

=

document.getElementById(“myDiv”);

var

finalStyle

=

myDiv.currentStyle

?

myDiv.currentStyle

:

document.defaultView.getComputedStyle(myDiv,

null);/*利用判斷是否支持currentStyle(是否為ie)

來通過不同方法獲取style*/

alert(finalStyle.backgroundColor);

//”red”

alert(finalStyle.width);

//”100px”

alert(finalStyle.height);

//”200px”

/script

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

js獲取某元素的class裡面的css屬性值代碼

用js如何獲取div中css的

margin、padding、height、border等。你可能說可以直接用document.getElementById(“id”).style.margin獲取。但是你說的只能獲取直接在標籤中寫的style的屬性,無法獲取標籤style外的屬性(如css文件中的屬性)。而下面方法則兩者值都可以獲取。

實例效果圖如下:

js在獲取css屬性時如果標籤中無style則無法直接獲取css中的屬性,所以需要一個方法可以做到這點。

getStyle(obj,attr)

調用方法說明:obj為對像,attr為屬性名必須兼容js中的寫法(可以參考:JS可以控制樣式的名稱寫法)。

Js代碼

複製代碼

代碼如下:

function

getStyle(obj,attr){

var

ie

=

!+”\v1″;//簡單判斷ie6~8

if(attr==”backgroundPosition”){//IE6~8不兼容backgroundPosition寫法,識別backgroundPositionX/Y

if(ie){

return

obj.currentStyle.backgroundPositionX

+”

“+obj.currentStyle.backgroundPositionY;

}

}

if(obj.currentStyle){

return

obj.currentStyle[attr];

}

else{

return

document.defaultView.getComputedStyle(obj,null)[attr];

}

}

JS使用getComputedStyle()方法獲取CSS屬性值

在對網頁進行調試的過程中,經常會用到js來獲取元素的CSS樣式,方法有很多很多,現在僅把我經常用的方法總結如下:

1.

obj.style:這個方法只能JS只能獲取寫在html標籤中的寫在style屬性中的值(style=”…”),而無法獲取定義在style

type=”text/css”裡面的屬性。

複製代碼

代碼如下:

span

style=”font-family:Arial;font-size:14px;”!DOCTYPE

html

PUBLIC

“-//W3C//DTD

XHTML

1.0

Transitional//EN”

““

html

xmlns=”“

head

meta

http-equiv=”Content-Type”

content=”text/html;

charset=utf-8″

/

titleJS獲取CSS屬性值/title

style

type=”text/css”

!–

.ss{color:#cdcdcd;}

/style

/head

body

div

id=”css88″

class=”ss”

style=”width:200px;

height:200px;

background:#333333″JS獲取CSS屬性值/div

script

type=”text/javascript”

alert(document.getElementById(“css88″).style.width);//200px

alert(document.getElementById(“css88″).style.color);//空白

/script

/body

/html

/span

2.

IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle

方法

“DOM2級樣式”增強了document.defaultView,提供了getComputedStyle()方法。這個方法接受兩個參數:要取得計算樣式的元素和一個偽元素字符串(例如“:after”)。如果不需要偽元素信息,第二個參數可以是null。getComputerStyle()方法返回一個CSSStyleDeclaration對象,其中包含當前元素的所有計算的樣式。以下面的HTML頁面為例:

複製代碼

代碼如下:

span

style=”font-family:Arial;font-size:14px;”!DOCTYPE

html

html

head

title計算元素樣式/title

style

#myDiv

{

background-color:blue;

width:100px;

height:200px;

}

/style

body

div

id

=”myDiv”

style=”background-color:red;

border:1px

solid

black”/div

script

var

myDiv

=

document.getElementById(“myDiv”);

var

computedStyle

=

document.defaultView.getComputedStyle(myDiv,

null);

alert(computedStyle.backgroundColor);

//”red”

alert(computedStyle.width);

//”100px”

alert(computedStyle.height);

//”200px”

alert(computedStyle.border);

//在某些瀏覽器中是“1px

solid

black”

/script

/body

/head

/html/span

邊框屬性可能也不會返回樣式表中實際的border規則(Opera會返回,但其它瀏覽器不會)。存在這個差別的原因是不同瀏覽器解釋綜合屬性的方式不同,因為設置這種屬性實際上會涉及很多其他的屬性。在設置border時,實際上是設置了四個邊的邊框寬度、顏色、樣式屬性。因此,即使computedStyle.border不會在所有瀏覽器中都返回值,但computedStyle.borderLeftWidth則會返回值。

需要注意的是,即使有些瀏覽器支持這種功能,但表示值的方式可能會有所區別。例如,Firefox和Safari會返回將所有顏色轉換成RGB格式。因此,即使getComputedStyle()方法時,最好多在幾種瀏覽器中測試一下。

IE不支持getComputedStyle()方法,但它有一種類似的概念。在IE中,每個具有style屬性的元素還有一個currentStyle屬性。這個屬性是CSSStyleDeclaration的實例,包含當前元素全部計算後的樣式。取得這些樣式的方法差不多,如下:

複製代碼

代碼如下:

span

style=”font-family:Arial;font-size:14px;”var

myDiv

=

document.getElementById(“myDiv”);

var

computedStyle

=

myDiv.currentStyle;

alert(computedStyle.backgroundColor);

//”red”

alert(computedStyle.width);

//”100px”

alert(computedStyle.height);

//”200px”

alert(computedStyle.border);

//undefined/span

與DOM版本的方式一樣,IE也沒有返回border樣式,因為這是一個綜合屬性。

3.

我自己在寫測試case過程中寫的一個簡單的函數(適用於Chrome):

複製代碼

代碼如下:

span

style=”font-family:Arial;font-size:14px;”function

getCSS(div){

return

document.defaultView.getComputedStyle(div,

null);

//return

div.currentStyle;//沒用過,IE

}/span

js如何獲取css文件內的一個屬性值

在理解提問君的需求的前提下,並充分借鑒一樓君的成果(如果問題得到解決,請採用他的答案!),修改如下:

html 

head 

titleJS獲取CSS屬性值/title 

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /

link href=”test.css” rel=”stylesheet” type=”text/css” /

script type=”text/javascript” 

  onload = function (){

  var i = document.getElementById(“css88”).style.width || css88.offsetWidth || css88.clientWidth;      

  alert(i);

  }

/script 

/head 

body  

    div id=”css88″ class=”w” JS獲取CSS屬性值/div 

/body 

/html

前端基本功:JS(十一)動畫封裝(CSS樣式獲取、JSON遍歷)

盒子 原來的位置 0 + 10 盒子現在的offsetLeft 10

|-5| = 5

這三個函數都是 數學函數

Math

比如說 console.log(Math.ceil(1.01)) 結果 是 2

console.log(Math.ceil(1.9)) 結果 2

console.log(Math.ceil(-1.3)) 結果 是 -1

比如說 console.log(Math.floor(1.01)) 結果 是 1

console.log(Math.floor(1.9)) 結果 1

console.log(Math.floor(-1.3)) 結果 是 -2

console.log(Math.round(1.01)) 結果 是 1

console.log(Math.round(1.9)) 結果 是 2

勻速動畫的原理: 盒子本身的位置 + 步長

緩動動畫的原理: 盒子本身的位置 + 步長 (不斷變化的)

( 缺陷:只能水平方向!隨後的“封裝運動框架單個屬性會進一步改進” )

我們訪問得到css 屬性,比較常用的有兩種:

點語法可以得到 width 屬性 和 top屬性 ** 帶有單位的 。 100px

但是這個語法有非常大的 缺陷**, 不變的。

後面的width 和 top 沒有辦法傳遞參數的。

var w = width;

box.style.w

最大的優點 : 可以給屬性傳遞參數

我們想要獲得css 的樣式, box.style.left 和 box.style.backgorundColor

但是它只能得到 行內的樣式。

但是我們工作最多用的是 內嵌式 或者 外鏈式 。

怎麼辦?

核心: 我們怎麼才能得到內嵌或者外鏈的樣式呢?

外部(使用link)和內嵌(使用style)樣式表中的樣式(ie和opera)

兩個選項是必須的, 沒有偽類 用 null 替代

我們這個元素裡面的屬性很多, left top width ===

我們想要某個屬性, 就應該 返回該屬性,所有繼續封裝 返回當前樣式的 函數。

千萬要記得 每個 的意思 : 那是相當重要

flag在js中一般作為開關,進行判斷。

等動畫執行完畢再去執行的函數 回調函數

我們怎麼知道動畫就執行完畢了呢?

很簡單 當定時器停止了。 動畫就結束了

案例源碼:

in運算符也是一個二元運算符,但是對運算符左右兩個操作數的要求比較嚴格。in運算符要求第1個(左邊的)操作數必須是字符串類型或可以轉換為字符串類型的其他類型,而第2個(右邊的)操作數必須是數組或對象。只有第1個操作數的值是第2個操作數的屬性名,才會返回true,否則返回false

案例源碼:

鏈接:

密碼:7fv8

如何javascript獲取css中的樣式

使用css控制頁面有4種方式,分別為行內樣式(內聯樣式)、內嵌式、鏈接式、導入式。

行內樣式(內聯樣式)即寫在html標籤中的style屬性中,如div style=”width:100px;height:100px;”/div

內嵌樣式即寫在style標籤中,例如style type=”text/css”div{width:100px; height:100px}/style

鏈接式即為用link標籤引入css文件,例如link href=”test.css” type=”text/css” rel=”stylesheet” /

導入式即為用import引入css文件,例如@import url(“test.css”)

如果想用javascript獲取一個元素的樣式信息,首先想到的應該是元素的style屬性。但是元素的style屬性僅僅代表了元素的內聯樣式,如果一個元素的部分樣式信息寫在內聯樣式中,一部分寫在外部的css文件中,通過style屬性是不能獲取到元素的完整樣式信息的。因此,需要使用元素的計算樣式才獲取元素的樣式信息。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/284651.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:41
下一篇 2024-12-22 15:41

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • 用不同的方法求素數

    素數是指只能被1和自身整除的正整數,如2、3、5、7、11、13等。素數在密碼學、計算機科學、數學、物理等領域都有着廣泛的應用。本文將介紹幾種常見的求素數的方法,包括暴力枚舉法、埃…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29
  • 用法介紹Python集合update方法

    Python集合(set)update()方法是Python的一種集合操作方法,用於將多個集合合併為一個集合。本篇文章將從以下幾個方面進行詳細闡述: 一、參數的含義和用法 Pyth…

    編程 2025-04-29

發表回復

登錄後才能評論