javascript獲取元素CSS樣式代碼示例
使用css控制頁(yè)面有4種方式,分別為行內(nèi)樣式(內(nèi)聯(lián)樣式)、內(nèi)嵌式、鏈接式、導(dǎo)入式。
行內(nèi)樣式(內(nèi)聯(lián)樣式)即寫(xiě)在html標(biāo)簽中的style屬性中,如<div style="width:100px;height:100px;"></div>
內(nèi)嵌樣式即寫(xiě)在style標(biāo)簽中,例如<style type="text/css">div{width:100px; height:100px}</style>
鏈接式即為用link標(biāo)簽引入css文件,例如<link href="test.css" type="text/css" rel="stylesheet" />
導(dǎo)入式即為用import引入css文件,例如@import url("test.css")
如果想用javascript獲取一個(gè)元素的樣式信息,首先想到的應(yīng)該是元素的style屬性。但是元素的style屬性僅僅代表了元素的內(nèi)聯(lián)樣式,如果一個(gè)元素的部分樣式信息寫(xiě)在內(nèi)聯(lián)樣式中,一部分寫(xiě)在外部的css文件中,通過(guò)style屬性是不能獲取到元素的完整樣式信息的。因此,需要使用元素的計(jì)算樣式才獲取元素的樣式信息。
用window對(duì)象的getComputedStyle方法來(lái)獲取一個(gè)元素的計(jì)算樣式,此方法有2個(gè)參數(shù),第一個(gè)參數(shù)為要獲取計(jì)算樣式的元素,第二個(gè)參數(shù)可以是null、空字符串、偽類(如:before,:after),這兩個(gè)參數(shù)都是必需的。
來(lái)個(gè)例子
<style type="text/css">
#testDiv{
border:1px solid red;
width: 100px;
height: 100px;
color: red;
}
</style>
<div id="testDiv"></div>
var testDiv = document.getElementById("testDiv");
var computedStyle = window.getComputedStyle(testDiv, "");
var width = computedStyle.width; //100px
var height = computedStyle.height; //100px
var color = computedStyle.color; //rgb(255, 0, 0)
[/code]
注:獲取到的顏色屬性都是以rgb(#,#,#)格式返回的。
這個(gè)時(shí)候如果用testDiv.style來(lái)獲取樣式信息,如testDiv.style.width肯定是為空的。
getComputedStyle方法在IE8以及更早的版本中沒(méi)有實(shí)現(xiàn),但是IE中每個(gè)元素有自己的currentStyle屬性。
so,來(lái)個(gè)通用的
var testDiv = document.getElementById("testDiv");
var styleInfo = window.getComputedStyle ? window.getComputedStyle(testDiv, "") : testDiv.currentStyle;
var width = styleInfo.width; //100px;
var height = styleInfo.height; //100px;
var color = styleInfo.color; // rgb(255, 0, 0)
最后要注意一點(diǎn),元素的計(jì)算樣式是只讀的,如果想設(shè)置元素樣式,還得用元素的style屬性(這個(gè)才是元素style屬性的真正用途所在)。
相關(guān)文章
JavaScript for循環(huán) if判斷語(yǔ)句(學(xué)習(xí)筆記)
下面小編就為大家?guī)?lái)一篇JavaScript for循環(huán) if判斷語(yǔ)句(學(xué)習(xí)筆記)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10javaScript復(fù)制功能調(diào)用實(shí)現(xiàn)方案
說(shuō)到使用js實(shí)現(xiàn)點(diǎn)擊復(fù)制的功能,我下面想說(shuō)的方法也是和網(wǎng)上的大同小異的。js實(shí)現(xiàn)是很簡(jiǎn)單,最難的是兼容問(wèn)題,畢竟用IE以外的人還是有很多的2012-12-12JavaScript parseInt()與Number()區(qū)別案例詳解
這篇文章主要介紹了JavaScript parseInt()與Number()區(qū)別案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09javascript實(shí)現(xiàn)的圖片切割多塊效果實(shí)例
這篇文章主要介紹了javascript實(shí)現(xiàn)的圖片切割多塊效果,涉及javascript操作圖片及css樣式的技巧,需要的朋友可以參考下2015-05-05