javascript DOM設(shè)置樣式詳細(xì)說(shuō)明和示例代碼
前言
在JavaScript中操作DOM樣式是實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面效果和交互的關(guān)鍵。你可以直接修改元素的內(nèi)聯(lián)樣式,也可以通過(guò)改變類名來(lái)應(yīng)用CSS類樣式。以下是詳細(xì)的說(shuō)明和示例代碼。
一、直接操作內(nèi)聯(lián)樣式
通過(guò)元素的style
屬性,你可以直接讀取或設(shè)置內(nèi)聯(lián)樣式屬性。注意,這種方式會(huì)覆蓋外部CSS樣式。
示例代碼
// 獲取并修改樣式 let element = document.getElementById("myElement"); element.style.color = "red"; // 改變顏色 element.style.fontSize = "20px"; // 改變字體大小 // 讀取樣式 let color = element.style.color; let fontSize = element.style.fontSize; console.log(color, fontSize);
二、通過(guò)類名改變樣式
另一種更推薦的方式是通過(guò)添加、移除CSS類名來(lái)改變?cè)貥邮剑@樣可以更好地利用CSS的層疊加重載機(jī)制和緩存。
示例代碼
HTML部分:
<style> .active { color: red; font-size: 20px; } </style>
JavaScript部分:
let element = document.getElementById("myElement"); // 添加類名 element.classList.add("active"); // 移除類名 element.classList.remove("active"); // 切換類名(如果存在則移除,否則添加) element.classList.toggle("active"); // 檢查是否有某類名 let isActive = element.classList.contains("active");
三、使用getComputedStyle讀取計(jì)算后的樣式
有時(shí),你需要獲取經(jīng)過(guò)CSS計(jì)算后的樣式值,而不是直接的內(nèi)聯(lián)樣式,這時(shí)可以使用window.getComputedStyle
。
示例代碼
let element = document.getElementById("myElement"); let computedStyle = window.getComputedStyle(element); let color = computedStyle.color; let fontSize = computedStyle.fontSize; console.log(color, fontSize);
四、注意事項(xiàng)
- 性能:頻繁修改內(nèi)聯(lián)樣式可能影響性能,盡量使用CSS類名來(lái)改變樣式。
- 優(yōu)先級(jí):直接修改
style
屬性的樣式優(yōu)先級(jí)最高,會(huì)覆蓋外部CSS和內(nèi)嵌入式樣式。 - 兼容性:
classList
方法在IE10+被支持,對(duì)于舊瀏覽器,需要考慮使用className
并手動(dòng)管理類的添加和移除。 - 代碼可維護(hù)性:使用CSS類管理樣式,可以使樣式和邏輯分離,提高代碼的可維護(hù)性。
通過(guò)上述方法,你可以靈活地控制和管理頁(yè)面元素的樣式,實(shí)現(xiàn)豐富的動(dòng)態(tài)效果。
總結(jié)
到此這篇關(guān)于javascript DOM設(shè)置樣式的文章就介紹到這了,更多相關(guān)JS DOM設(shè)置樣式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
超越Jquery_01_isPlainObject分析與重構(gòu)
isPlainObject是Jquery1.4后提供的新方法,用于判斷對(duì)象是否是純粹的對(duì)象(通過(guò) {} 或者 new Object 創(chuàng)建的)。2010-10-10js驗(yàn)證真實(shí)姓名與身份證號(hào)是否匹配
使用javascript技術(shù)驗(yàn)真實(shí)姓名,要用到unicode字符來(lái)匹配,由于中國(guó)人的姓名長(zhǎng)度一般是在2-4這個(gè)范圍內(nèi),所以重復(fù)匹配{2,4}次。接下來(lái),通過(guò)本文給大家分享js驗(yàn)證省份證號(hào)與真實(shí)姓名是否匹配,需要的朋友可以參考下2015-10-10JavaScript prototype對(duì)象的屬性說(shuō)明
JavaScript中對(duì)象的prototype屬性,是用來(lái)返回對(duì)象類型原型的引用的。我們使用prototype屬性提供對(duì)象的類的一組基本功能。并且對(duì)象的新實(shí)例會(huì)”繼承”賦予該對(duì)象原型的操作。但是這個(gè)prototype到底是怎么實(shí)現(xiàn)和被管理的呢?2010-03-03javascript表單驗(yàn)證以及正則表達(dá)式舉例詳解
正則表達(dá)式描述了一種字符串匹配的模式,可以用來(lái)檢查一個(gè)串是否含有某種子串、將匹配的子串替換或者從某個(gè)串中取出符合某個(gè)條件的子串等,常用于表單驗(yàn)證等,下面這篇文章主要給大家介紹了關(guān)于javascript表單驗(yàn)證以及正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2023-05-05javascript 緩沖運(yùn)動(dòng)框架的實(shí)現(xiàn)
這篇文章主要介紹了javascript 緩沖運(yùn)動(dòng)框架的實(shí)現(xiàn)的相關(guān)資料,希望通過(guò)本能幫助到大家,實(shí)現(xiàn)這樣類似的功能,需要的朋友可以參考下2017-09-09淺析JavaScript如何解決跨域問(wèn)題并手寫一個(gè)jsonp
跨域是指瀏覽器為了安全性,實(shí)施的同源策略,同源策略要求,只有協(xié)議、域名和端口號(hào)完全相同的網(wǎng)頁(yè),才能共享資源,本文整理了一些常用的跨域解決方法,希望對(duì)大家有所幫助2024-03-03基于Echarts 3.19 制作常用的圖形(非靜態(tài))
這篇文章主要介紹了基于Echarts 3.19 制作常用的圖形(非靜態(tài))的相關(guān)資料,需要的朋友可以參考下2016-05-05