用js實現before和after偽類的樣式修改


使用javascript,jQuery實現修改before,after偽類的樣式

最近遇到一個需要改變:before,:after 偽類的樣式,發現css中並不能直接選擇某一個元素的:before和:after偽類元素,所以特總結了使用javascript和jQuery改變元素的:before和:after偽類樣式的方法。

類如如下的html及樣式
<p class="red">Hello,are you kain?</p>

css樣式

.red:before {
	content: 'red',
	background-color  : red
}
1.使用javascript或者jQuery切換,增加元素的類
.green:before {
	content: 'green';
	background-color: green;
}

$('p').addClass('green');
2.在存在的style文檔中動態插入樣式
document.styleSheet[0].addRule('.red:before','background-color:green');
document.styleSheet[0].insertRule('.red:before{background-color:green}',0);
3.創建一份新的樣式表,並使用JavaScript或jQuert將其插入到中
var style = document.creatElement('style');
document.head.appendChild(style);
sheet = style.sheet;
sheet.addRule('.red:before','background-color:green');
sheet.insertRule('.red:before{background-color:green}',0);

// jQuery
$('<style>.red:before{background-color:green}</style>').appendTo('head');
4.使用HTML5的data-屬性,在屬性中使用attr()動態修改。

在p標簽中增加data-attr="red"屬性,然后
$('red').attr('data-attr','green');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM