JavaScript實(shí)現(xiàn)修改偽類(lèi)樣式
項(xiàng)目中時(shí)常會(huì)需要用到使用JavaScript來(lái)動(dòng)態(tài)控制為元素(:before,:after)的樣式,但是我們都知道JavaScript或jQuery并沒(méi)有偽類(lèi)選擇器。這里總結(jié)一下幾種常見(jiàn)的方法。
HTML
<p class="red">Hi, this is a plain-old, sad-looking paragraph tag.</p>
CSS
.red::before { content: 'red'; color: red; }
方法一
使用JavaScript或者jQuery切換<p>元素的類(lèi)名,修改樣式。
.green::before { content: 'green'; color: green; } $('p').removeClass('red').addClass('green');
方法二
在已存在的<style>中動(dòng)態(tài)插入新樣式。
document.styleSheets[0].addRule('.red::before','color: green'); document.styleSheets[0].insertRule('.red::before { color: green }', 0);
方法三
創(chuàng)建一份新的樣式表,并使用JavaScript或jQuery將其插入到<head>中
// Create a new style tag var style = document.createElement("style"); // Append the style tag to head document.head.appendChild(style); // Grab the stylesheet object sheet = style.sheet // Use addRule or insertRule to inject styles sheet.addRule('.red::before','color: green'); sheet.insertRule('.red::before { color: green }', 0);
jQuery
$('<style>.red::before{color:green}</style>').appendTo('head');
方法四
使用HTML5的data-屬性,在屬性中使用attr()動(dòng)態(tài)修改。
<p class="red" data-attr="red">Hi, this is plain-old, sad-looking paragraph tag.</p> .red::before { content: attr(data-attr); color: red; } $('.red').attr('data-attr', 'green');
以上就是我們?yōu)榇蠹艺淼乃姆N方法,如果大家有更好的方法,可以在下方的留言區(qū)討論。
相關(guān)文章
基于JS實(shí)現(xiàn)回到頁(yè)面頂部的五種寫(xiě)法(從實(shí)現(xiàn)到增強(qiáng))
這篇文章主要介紹了基于JS實(shí)現(xiàn)回到頁(yè)面頂部的五種寫(xiě)法(從實(shí)現(xiàn)到增強(qiáng))的相關(guān)資料,本文介紹的非常詳細(xì),實(shí)用性也非常高,非常具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09JavaScript 組件之旅(三):用 Ant 構(gòu)建組件
我們走到哪兒了?前兩期思考了太多東西,你是否已有倦意?別擔(dān)心,本期的話題很輕松,你只需要簡(jiǎn)單了解一些語(yǔ)法,寫(xiě)幾行配置,就能驅(qū)使系統(tǒng)按你預(yù)設(shè)的方式自動(dòng)完成一些工作。2009-10-10輕量級(jí)的原生js日歷插件calendar.js使用指南
網(wǎng)頁(yè)上的原生js日歷代碼,鼠標(biāo)點(diǎn)擊文字提示處,會(huì)顯示一個(gè)帶年月日的日歷窗口,可調(diào)整年份、月份、選擇日期等,用在網(wǎng)頁(yè)上方便大家選擇日期,提高用戶(hù)體驗(yàn)。各大瀏覽器都能正常運(yùn)行,有需要的小伙伴可以參考下。2015-04-04JS+CSS實(shí)現(xiàn)的日本門(mén)戶(hù)網(wǎng)站經(jīng)典選項(xiàng)卡導(dǎo)航效果
這篇文章主要介紹了JS+CSS實(shí)現(xiàn)的日本門(mén)戶(hù)網(wǎng)站經(jīng)典選項(xiàng)卡導(dǎo)航效果,涉及JavaScript針對(duì)頁(yè)面元素的動(dòng)態(tài)遍歷及樣式動(dòng)態(tài)修改技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Javascript文本框腳本實(shí)現(xiàn)方法解析
這篇文章主要介紹了Javascript文本框腳本實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10