栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

给before和after伪元素设置js效果的方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

给before和after伪元素设置js效果的方法

层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的。事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是“伪元素”。

前面的话

   无法直接给before和after伪元素设置js效果 

例子说明

  现在需要为(id为box,内容为"我是测试内容"的div)添加(:before内容为"前缀",颜色为红色的伪类)




  
  document


  我是测试内容  

 

解决办法

【方法一】动态嵌入CSS样式

  IE8-浏览器将标签当作特殊的节点,不允许访问其子节点。IE10-浏览器支持使用styleSheet.cssText属性来设置样式。兼容写法如下:

 

  [缺点]此方法无法控制伪元素里面的content属性的值

【方法三】利用setAttribute实现自定义content内容


  .change:before{content: attr(data-beforeData);color: red;}
 
 

  [注意]此方法只可用setAttribute实现,经测试用dataset方法无效

【方法四】添加样式表

  firefox浏览器不支持addRule()方法,IE8-浏览器不支持insertRule()方法。兼容写法如下:

 

  [缺点]该方法必须有内部或用链接外部样式,否则若不存在样式表,则document.styleSheets为空列表,则报错

【方法五】修改样式表

  先使用方法四添加空的样式表,然后获取新生成的并使用其innerHTML属性来修改样式表

 

  [注意]只能使用getElementsByTagName('style')[1]的方法,经测验使用stylesheets[1]方法无效

DEMO

    <演示框>点击下列相应属性值可进行演示

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/99542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号