最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生javascript實現(xiàn)讀寫CSS樣式的方法詳解

 更新時間:2017年02月20日 11:02:19   作者:廖柯宇  
最近學習中遇到這個問題,為了日后方便查詢,本人翻閱了一些資料總結(jié)了以下方法,僅限原生JS,如有不對的地方歡迎指出!只求大家看完覺得有學到點什么就OK了!下面這篇文章主要介紹了利用原生javascript實現(xiàn)讀寫CSS樣式的方法,需要的朋友可以參考下。

前言

可能大家一說起操作css樣式,很多人都會想到jQuery的css方法:$(selector).css(name) ,但是有思考過如何使用原生js來實現(xiàn)類似的功能么?

大家最熟悉的原生js操作樣式的方法非DOM中的Style對象莫屬了,但是這個方法只能獲取和修改html文檔中的內(nèi)聯(lián)樣式,無法操作非內(nèi)聯(lián)樣式(內(nèi)部樣式和外部樣式表)。

我通過搜索和整理,總結(jié)了使用原生js對css樣式的讀寫實現(xiàn)。下面話不多說,來看看詳細的介紹吧。

獲取樣式

1. dom style

這個方法只能獲取內(nèi)聯(lián)樣式:

var text = document.getElementById('text');
var textColor = text.style.color;

// 得到textColor的值為 '#000'

2. currentStyle

這個方法只適用于IE瀏覽器,在形式上與element.style相近,區(qū)別在于正如currentStyle其名——目前的樣式(css加載后的樣式),返回的是元素當前最終的CSS屬性值,包括了內(nèi)部style標簽里的樣式和外部引入的css文件。

用法:元素.currentStyle.屬性

比如我們要獲取id為box的width:

var boxWidth = document.getElementById('box').currentStyle.width;

// 得到boxWidth的值為 '200px'

3. getComputedStyle

getComputedStyle是一個可以獲取當前元素所有最終使用的CSS屬性值。返回的是一個CSS樣式聲明對象([object CSSStyleDeclaration]),并且是只讀的。

在兼容性上,基本支持:Chrome、Firfox、IE9、Opera、Safari

用法:getComputedStyle(元素, 偽類).屬性,第二個參數(shù)如果不是偽類就設置為null吧。

var el = document.getElementById("box");
var style = window.getComputedStyle(el , ":after");

來~封裝一個通用的獲取樣式的函數(shù)

為了適用于各大主流瀏覽器,我們來寫一個函數(shù):

// 這個函數(shù)需要傳遞兩個參數(shù):元素對象和樣式屬性名稱

function getStyle(el, styleName) {

 if( el.currentStyle ) {
 
 // for IE
 return el.currentStyle[styleName];
 
 } else {
 
 // for peace
 return getComputedStyle(el, false)[styleName];
 }
 
}

接著調(diào)用這個函數(shù)來獲取box的寬度:

var box = document.getElementById("box");

var boxWidth = getStyle(box, 'width');

這個函數(shù)并沒有考慮到對偽類的相關操作,可以根據(jù)需要自行擴展~

getComputedStyle與style的區(qū)別?

既然都是獲取樣式屬性的值,它們有啥區(qū)別呢:

只讀與可寫

getComputedStyle方法是只讀的,只能獲取樣式而不能設置,但是element.style既能讀也能寫。

獲取的對象范圍

getComputedStyle方法獲取的是最終應用在元素上的所有CSS屬性對象(即使沒有CSS代碼,也會把默認的祖宗八代都顯示出來);而element.style只能獲取元素style屬性中的CSS樣式。因此對于一個光禿禿的元素<p>,getComputedStyle方法返回對象中l(wèi)ength屬性值(如果有)就是190+(據(jù)我測試FF:192, IE9:195, Chrome:253, 不同環(huán)境結(jié)果可能有差異), 而element.style就是0。

引用自——張鑫旭博客文章

設置樣式

1. dom style

這個不用說了吧,比如把元素的背景顏色改為紅色:

var el = document.getElementById('box');
el.style.backgroundColor = 'red';

2. cssText屬性

cssText 的本質(zhì)就是設置 HTML 元素的 style 屬性值。它是一組樣式屬性及其值的文本表示。這個文本格式化為一個 CSS 樣式表,去掉了包圍屬性和值的元素選擇器的花括號。

它的用法和innerHTML類似: document.getElementById("d1").style.cssText = "color:red; font-size:13px;";

詳細請參考: CSSRule.cssText - Web APIs | MDN

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學習或者使用Javascript能帶來一定的幫助,如果有疑問大家可以留言交流。謝謝大家對腳本之家的支持。

相關文章

  • Openlayers實現(xiàn)測量功能

    Openlayers實現(xiàn)測量功能

    這篇文章主要為大家詳細介紹了Openlayers實現(xiàn)測量功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js實現(xiàn)簡單的貪吃蛇游戲

    js實現(xiàn)簡單的貪吃蛇游戲

    這篇文章主要為大家詳細介紹了js實現(xiàn)簡單的貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • layui框架table 數(shù)據(jù)表格的方法級渲染詳解

    layui框架table 數(shù)據(jù)表格的方法級渲染詳解

    今天小編就為大家分享一篇layui框架table 數(shù)據(jù)表格的方法級渲染詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 微信小程序?qū)崙?zhàn)篇之購物車的實現(xiàn)代碼示例

    微信小程序?qū)崙?zhàn)篇之購物車的實現(xiàn)代碼示例

    本篇文章主要介紹了微信小程序?qū)崙?zhàn)篇之購物車的實現(xiàn)代碼示例,詳細的介紹了購物車的功能實現(xiàn),具有一定的參考價值,有興趣的可以了解一下
    2017-11-11
  • 解決在layer.open中使用時間控件laydate失敗的問題

    解決在layer.open中使用時間控件laydate失敗的問題

    今天小編就為大家分享一篇解決在layer.open中使用時間控件laydate失敗的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • jJavaScript中toFixed()和正則表達式的坑

    jJavaScript中toFixed()和正則表達式的坑

    這篇文章主要介紹了jJavaScript中toFixed()和正則表達式的坑,toFixed方法可以把Number四舍五入為指定小數(shù)位數(shù)的數(shù)字,具體詳細內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • 微信小程序 select 下拉框組件功能

    微信小程序 select 下拉框組件功能

    這篇文章主要介紹了微信小程序 select 下拉框組件功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • JS正則子匹配實例分析

    JS正則子匹配實例分析

    這篇文章主要介紹了JS正則子匹配用法,結(jié)合簡單實例形式分析了js正則字匹配的概念、用法與相關注意事項,需要的朋友可以參考下
    2016-12-12
  • 純JS焦點圖特效實例(可一個頁面多用)

    純JS焦點圖特效實例(可一個頁面多用)

    下面小編就為大家?guī)硪黄僇S焦點圖特效實例(可一個頁面多用)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • js點擊事件的執(zhí)行過程實例分析【冒泡與捕獲】

    js點擊事件的執(zhí)行過程實例分析【冒泡與捕獲】

    這篇文章主要介紹了js點擊事件的執(zhí)行過程,結(jié)合實例形式分析了js事件機制中的冒泡與捕獲相關原理、操作技巧與注意事項,需要的朋友可以參考下
    2020-04-04

最新評論

黑水县| 余姚市| 祁门县| 吉木乃县| 龙游县| 神农架林区| 喀喇沁旗| 临江市| 沂水县| 黄龙县| 湘乡市| 建德市| 运城市| 科尔| 宝坻区| 玉门市| 定安县| 栖霞市| 三河市| 蒲江县| 宁海县| 兴仁县| 宁陵县| 通州区| 竹溪县| 尚义县| 衡南县| 建阳市| 平利县| 肇州县| 沙坪坝区| 常州市| 吴忠市| 光泽县| 昆明市| 平泉县| 利津县| 焉耆| 铜陵市| 吉木萨尔县| 利川市|