js如何控制css偽元素內容(before,after)
原文:js如何控制css偽元素內容(before,after)
js如何控制css偽元素(before,after)
@(CSS 筆記)[偽元素|css3]
曾經遇到的問題,在對抗UC瀏覽器遮蔽需要把內容輸出到css 偽元素中輸出。有個疑問如何用js控制它。於是在segmentfault
提問,如下是對問題的整理:
簡單粗暴的方式:
簡單粗暴的方式,直接在html中新增樣式覆蓋掉之前樣式規則
<style>
p:after{content:`我是字尾`}
</style>
<p>正文內容</p>
<script>
var css=function(t,s){
s=document.createElement(`style`);
s.innerText=t;
document.body.appendChild(s);
};
document.onclick=function(){
css(`p:after{content:`修改一下`}`);
};
</script>
進化版
這樣寫了功能實現了,優雅欠佳,作為進化版,其實就是用class名來重寫樣式,
p:after{content:`我是字尾`}
p.change{content:`我是修改過的字尾`}
只要在需要的時候,給p
標籤新增change
這個class就可以實現替換的目的。原理和第一個沒什麼區別。這樣寫的好處是,改變起來更優雅靈活,用class做了個鉤子。
再進化版
上個版本已經解決了切換的問題,如果有更多可以不斷的切換class
,但是想下這種方式也還是有點笨重,因為可能要寫很多css,如果是想換的內容是不確定的,需要用變數來處理呢?這時候,可能會想到用 第一種方法就可以了,但是第一種方式真的不是很優雅。還有什麼方式呢?
在css中,偽元素的content
是能讀取到data屬性的。
也就是說我們可以這樣寫css
p:after {
content: attr(data-content);
}
在進化版是第二版的變種,
css檔案
p.change:after {
content: attr(data-content);
}
js檔案
$(this).addClass(`change`).attr(`data-content`, content);
這樣你就可以隨意改動了。
不是終極版的終極版
最後一種方法是由bumfod提供方法很hack了,遍歷了所有的css文件,找到偽元素,然後更改,有興趣的同學可以嘗試下
http://jsfiddle.net/s3fv8e5v/4/
相關文章
- css偽元素(before與after)CSS
- 偽元素 before 和 after 初探
- 理解偽元素 :before 和 :after
- 瞭解css中偽元素 before和after的用法CSS
- css3偽元素選擇器before 和 after 的使用CSSS3
- javascript獲取偽物件before和after定義的內容JavaScript物件
- [CSS] 偽元素和偽類,::before 和 :before 區別CSS
- CSS E::after 偽元素選擇器CSS
- CSS E::before 偽元素選擇符CSS
- css使用偽物件選擇器設定元素內容CSS物件
- CSS 巧用 :before和:afterCSS
- CSS巧用:before和:afterCSS
- 偽類選擇器:愛恨法則;偽元素選擇器:before,after;清除浮動
- ::after和::before偽元素選擇器必須要配合content屬性
- css偽類和偽元素CSS
- 利用:before和:after偽類製作CSS3 圓形按鈕 含demoCSSS3
- CSS的偽元素CSS
- js如何動態為指定的元素新增內容JS
- css當中:before和:after選擇器CSS
- js獲取偽元素選擇器規定的內容程式碼例項JS
- CSS3偽類和偽元素CSSS3
- CSS偽元素詳解以及偽元素與偽類的區別CSS
- CSS-選擇器15-:before與:afterCSS
- css中的:before與:after的簡單使用CSS
- css控制列印內容的樣式CSS
- 笑談CSS的偽元素CSS
- CSS偽類與CSS偽元素的區別及由來CSS
- css3 中的偽類和偽元素CSSS3
- CSS選擇器(6)——偽元素CSS
- css after和before選擇器使用程式碼例項CSS
- 一次弄懂CSS的偽類和偽元素CSS
- CSS偽類與偽元素選擇器區別CSS
- jQuery如何清空表單元素的內容jQuery
- CSS的偽元素使用例子之一CSS
- Css字型圖示偽元素方式引入CSS
- #07你認真學了css?偽類和偽元素CSS
- CSS in JS 很棒, 但是如何方便的處理CSS偽類CSSJS
- Jquery如何獲取和設定元素內容?jQuery