如何用js控制css伪类after

如何用js控制css伪类after,第1张

用js控制绝源css伪类after:只能通过源指添加样式,然后通过这个样式的伪类来控制吧。。没法直接改。

比如:

html:

<p>瓦赫塔 阿热 有 doing</p>

css:

p:after{

content:''

position:absolute

background-color:green

width:20px

height:6px

}

js:

var css=function(t,s){

s=document.createElement('style'并裂态)

s.innerText=t

document.body.appendChlild(s)

}

document.onclick=function(){

css('p:after{background-color:red}')

}

1、直接更改,历扮比如:

xID.style.display = "block" // 更改display属性,会覆盖卜旦css中的定义。

xID.style.display = ""      // 取消js更改display属性,以css样式为准。

这里的xID,是通过id获取的标签。当然,也可能是通过tagName之类的获取的标签。

这种方式,简单直接。但是要修改大量的样式的时候,不适合。所以肢弊灶,我更推荐第二种方式。

2、更改类名

xID.className = "xx   yy"

如果有多个类,就用空格隔开。前提,在样式中要有已有类的定义。比如这里的xx和yy类,在css中应该是写好的。

这种方式把所有的样式写在了css文件中,适合更改较多的样式以及炫酷的样式。js就只做一件事情:改类。至于这个类会把标签变成什么样子,交给css吧。

通过jquery也可以达到如上的效果:

$("#xID").css({

  fontSize:"12px",

  display:"block"

})  // 直接更改样式

$("#xID").addClass("xx")  // 增加删除类

$("#xID").removeClass("xx")

JS控制css样式的几种方式

我们在js的工作学习中总会遇到一些不轻易通过style属性唯哪动态加载css样式的情况(eg:伪类的样式控制,动画的样式控制),这里总结一下js改变样式的几种方法:

1,通过style属性或者setAttribute()来更改样式

2,如果只是改变伪类(after,before)的content内容也可以这么做

3,通过更改类名来更改样式

4,那么重点来了:利用document.styleSheets我们获取到所有样式表,然后选择一个指袭码样式表通过 insertRule 来添加样式;也可以创建新的cssRules,通过addRule()来添加样式

5,动态加载样式表

如果需要更改的样式比较多禅世,还是建议通过动态加载样式的方式来改变页面样式

本文来自PHP中文网,原文地址: https://www.php.cn/website-design-ask-479590.html  推荐视频教程:《 js基础教程 》


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11984286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存