JavaScript实现修改伪类样式


Posted in Javascript onNovember 27, 2017

项目中时常会需要用到使用JavaScript来动态控制为元素(:before,:after)的样式,但是我们都知道JavaScript或jQuery并没有伪类选择器。这里总结一下几种常见的方法。

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>元素的类名,修改样式。

.green::before {
content: 'green';
color: green;
}
$('p').removeClass('red').addClass('green');

 

 

方法二

在已存在的<style>中动态插入新样式。

document.styleSheets[0].addRule('.red::before','color: green');
document.styleSheets[0].insertRule('.red::before { color: green }', 0);

 

方法三

创建一份新的样式表,并使用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()动态修改。

<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');

以上就是我们为大家整理的四种方法,如果大家有更好的方法,可以在下方的留言区讨论。

Javascript 相关文章推荐
JQuery触发事件例如click
Sep 11 Javascript
JS中getYear()和getFullYear()区别分析
Jul 04 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
webpack开发跨域问题解决办法
Aug 03 Javascript
Vue keep-alive实践总结(推荐)
Aug 31 Javascript
Vue渲染函数详解
Sep 15 Javascript
解决bootstrap中下拉菜单点击后不关闭的问题
Aug 10 Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 Javascript
Vue.js搭建移动端购物车界面
Jun 28 #Javascript
Vue实现购物车场景下的应用
Nov 27 #Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 #Javascript
vue购物车插件编写代码
Nov 27 #Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 #Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 #Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 #Javascript
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php中函数的形参与实参的问题说明
2010/09/01 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
php执行多个存储过程的方法【基于thinkPHP】
2016/11/08 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
情人节之礼 js项链效果
2012/02/13 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
js兼容火狐显示上传图片预览效果的方法
2015/05/21 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
js实现网页随机验证码
2020/10/19 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
银行财务部实习生的自我鉴定
2013/11/27 职场文书
高考升学宴答谢词
2015/01/20 职场文书
七年级数学教学反思
2016/02/17 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
python如何在word中存储本地图片
2021/04/07 Python