国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

JS如何設(shè)置元素樣式的方法示例

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:31:36
文檔

JS如何設(shè)置元素樣式的方法示例

JS如何設(shè)置元素樣式的方法示例:一看到這個(gè)標(biāo)題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設(shè)置元素樣式,但實(shí)際上,我們其實(shí)還有其他方式可以選擇。 接下來,我將詳細(xì)介紹三種設(shè)置元素樣式的方式。 一、style 這個(gè)其實(shí)就是我們所熟知的方式,舉個(gè)例
推薦度:
導(dǎo)讀JS如何設(shè)置元素樣式的方法示例:一看到這個(gè)標(biāo)題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設(shè)置元素樣式,但實(shí)際上,我們其實(shí)還有其他方式可以選擇。 接下來,我將詳細(xì)介紹三種設(shè)置元素樣式的方式。 一、style 這個(gè)其實(shí)就是我們所熟知的方式,舉個(gè)例

一看到這個(gè)標(biāo)題,大家可能首先想到的就是使用“[元素].style.[CSS屬性名] = [屬性值]”這樣的套路去設(shè)置元素樣式,但實(shí)際上,我們其實(shí)還有其他方式可以選擇。

接下來,我將詳細(xì)介紹三種設(shè)置元素樣式的方式。

一、style

這個(gè)其實(shí)就是我們所熟知的方式,舉個(gè)例子~~

<div id="box"></div>
var box = document.getElementById("box");
box.style.width = '100px';
box.style.height = '100px';
box.style.backgroundColor = "#f00";

顯示效果:

這種方式看似簡單粗暴,但寫法過于繁冗,尤其是在需要添加很多樣式時(shí)尤為突出。并且需要注意的是,對于使用短劃線的CSS屬性名,必須將其轉(zhuǎn)換成駝峰大小寫形式。(如示例中的backgroundColor)

二、style.cssText

這種方式相對于上面方法更為簡潔,更像是直接在元素上寫CSS:

[元素].style.cssText = [CSS樣式];

例如:

box.style.cssText = 'width: 200px; height: 200px; border: 1px solid #f00;';

確實(shí),寫法上很方便。

但是,缺點(diǎn)是后面同樣通過這種方式添加的樣式會覆蓋之前通過style特性指定的樣式。

同樣還是上面的例子,只不過是將兩段JS寫在一塊:

var box = document.getElementById("box");
box.style.width = '100px';
box.style.height = '100px';
box.style.backgroundColor = "#f00";
box.style.cssText = 'width: 200px; height: 200px; border: 1px solid #f00;';

如果按照層疊樣式表的特性,上面定義的紅色的背景顏色應(yīng)該還存在,然而實(shí)際上,下面通過style.cssText方式定義的樣式會將style(包括style.cssText)方式添加的樣式全部重寫。所以,這個(gè)例子最終表現(xiàn)結(jié)果與上面只有一句時(shí)的效果是一樣的:

最后注意下兼容性,IE8及更早版本均不支持cssText。

三、insertRule()

這個(gè)用法相對上面兩種方法都較為復(fù)雜一些:

[sheet].insertRule([CSS樣式],指定位置)

[sheet]表示某個(gè)樣式表,它可以通過document.styleSheets來獲得。那么,document.styleSheets又是什么呢? 說得簡單一點(diǎn)就是應(yīng)用在文檔中的所有樣式表,包括通過link標(biāo)簽引入的樣式和style標(biāo)簽定義的樣式。如果理解上還是有點(diǎn)困難,那么我們還是放個(gè)實(shí)例吧~~

首先頭部引入樣式表:

<link rel="stylesheet" type="text/css" href="css/index.css" rel="external nofollow" />

當(dāng)然,這個(gè)樣式表得真實(shí)存在,就算里面什么樣式都不寫也沒關(guān)系。也可以直接用style標(biāo)簽,內(nèi)容為空也不要緊。

然后用JS獲取這個(gè)樣式表:

var sheet = document.styleSheets[0];

最后我們就可以給這個(gè)樣式表中添加樣式了:

sheet.insertRule('#box{width: 300px; height: 300px; background-color: #0f0;}',0);

如果是在上面所有例子的基礎(chǔ)上添加的這段代碼,那么顯示結(jié)果會是這樣的:

大小還是200*200大小,背景顏色是綠色,說明通過style.cssText所設(shè)置的寬高樣式把通過insertRule()設(shè)置的樣式覆蓋了,原因很簡單,style(包括style.cssText)方式設(shè)置的樣式屬于行內(nèi)樣式,自然要比通過insertRule()設(shè)置的樣式優(yōu)先級更高咯~~

那么,示例當(dāng)中insertRule()的第二個(gè)參數(shù)0又是指的什么呢?

它指的是我們需要添加CSS代碼的位置,所以參數(shù)0就代表的是該樣式表的最開始位置。

例如,我們先給樣式表中手動添加一段樣式(以下例子與上述例子無關(guān)):

<style>
 #box{ width: 100px; height: 100px;}
</style>
var sheet = document.styleSheets[0];
sheet.insertRule('#box{width: 300px; height: 300px; background-color: #0f0;}',0);

以上執(zhí)行結(jié)果就是,寬高100*100的綠色盒子:

如果將insertRule()中的第二個(gè)參數(shù)改為1,那么通過JS添加的這段CSS代碼相當(dāng)于添加到了#box{ width: 100px; height: 100px;}的后面,類似下面這樣:

<style>
 #box{ width: 100px; height: 100px;}
 #box{ width: 300px; height: 300px; background-color: #0f0;}
</style>

顯示結(jié)果:

同樣需要注意的是,insertRule()不兼容IE8及更早版本,但可以使用addRule()替代,語法稍微有點(diǎn)不同,上面例子這樣寫:

代碼如下:
sheet.addRule('#box','width: 300px; height: 300px; background-color: #0f0;',0);

第一個(gè)參數(shù)代表元素,第二個(gè)參數(shù)代表CSS樣式,第三個(gè)參數(shù)代表插入位置,前兩個(gè)參數(shù)必選,最后一個(gè)可選,不填則默認(rèn)為0。

結(jié)束語:瀏覽器兼容性問題對于前端開發(fā)者來說一直是個(gè)很頭疼的問題,很多問題也是主要集中在IE上,只希望可惡的IE早日退出歷史舞臺吧!希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS如何設(shè)置元素樣式的方法示例

JS如何設(shè)置元素樣式的方法示例:一看到這個(gè)標(biāo)題,大家可能首先想到的就是使用[元素].style.[CSS屬性名] = [屬性值]這樣的套路去設(shè)置元素樣式,但實(shí)際上,我們其實(shí)還有其他方式可以選擇。 接下來,我將詳細(xì)介紹三種設(shè)置元素樣式的方式。 一、style 這個(gè)其實(shí)就是我們所熟知的方式,舉個(gè)例
推薦度:
標(biāo)簽: 設(shè)置 元素 js
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧美日韩一二三区 | 亚洲清纯自偷自拍另类专区 | 中文字幕亚洲综合 | 自拍偷自拍亚洲精品情侣 | 亚洲精品综合久久中文字幕 | 在线免费黄色 | 日韩午夜免费电影 | 国产精品久久久精品三级 | 国产精品久久精品 | 手机在线观看国产精选免费 | 免费看真人a一级毛片 | 一道精品视频一区二区三区男同 | 亚洲日本激情综合在线观看 | 亚洲日本一区二区三区高清在线 | 亚洲国产成人精品区 | 免费a一毛片 | 欧美v日韩v亚洲v最新 | 毛片一区二区三区 | 偷牌自拍 | 免费国产在线视频 | www国产精品| 久久精品一区二区三区四区 | 亚洲国产精品视频 | 亚洲综合视频 | 在线视频 日韩 | 天堂va欧美ⅴa亚洲va一国产 | 国产成人3p视频免费观看 | 欧美色图中文字幕 | 国产精品欧美一区二区三区不卡 | 福利视频一区二区牛牛 | 中文字幕国产欧美 | 欧美日韩国产一区二区 | 日日综合 | 性殴美| 黄色在线观看网站 | 国产精品亚洲片在线观看不卡 | 国产精品视屏 | 国产欧美日韩综合精品二区 | 日韩二区三区 | 精品久久久久久综合网 | 在线国产一区二区三区 |