`
mutongwu
  • 浏览: 449830 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何读写伪类元素的样式?

阅读更多
示例:
<p class="example" data-pseudo="(i'm content.)">Hi, this is a plain-old, sad-looking paragraph tag.</p>
<div id="log"></div>

<style>
.example::before {
    content: 'pseudoElement ';
    color: red;
}
</style>


一、读取,使用 window.getComputedStyle 方法:

<script>
var str = window.getComputedStyle(document.querySelector('.example'), '::before').getPropertyValue('color');

document.querySelector('#log').innerHTML = str;

</script>


二、写(修改)


没有办法。至少没有直接的方法,退而次之,只能通过覆盖样式的途径来达到我们的目的。
譬如:添加一个style元素,并写入新的样式;又或者是给目标元素添加不同的class,以达到控制的效果。

示例:

<style id="pseudoStyle">
</style>


<script>
	document.querySelector('#pseudoStyle').sheet.insertRule(".example::before { color: green;}",0);
	//或者是
	document.querySelector('#pseudoStyle').sheet.addRule('.example::before','color: green');

	//setProperty在这时候,会抛异常:
	try{
		window.getComputedStyle(document.querySelector('.example'), '::before').setProperty('color',"green");
	}catch(e){
		document.querySelector('#log').innerHTML =  e;
	}
</script>


伪类元素,有个属性比较特殊:content。由于它的值可以定义为从元素的dom属性获取,从而可以实现js的直接读写。
例如:

<style>
.example::before {
    content: attr(data-pseudo);
    color: red;
}
</style>


<script>
	document.querySelector('.example').setAttribute("data-pseudo","new content!");
</script>


附录:
1. styleSheet对象的方法、属性和浏览器兼容,参考:http://help.dottoro.com/ljpatulu.php
2. getComputedStyle方法,参考:http://help.dottoro.com/ljscsoax.php , https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle
0
1
分享到:
评论

相关推荐

    原生javascript实现读写CSS样式的方法详解

    例如 `window.getComputedStyle(el, null).width`,其中`el`是元素对象,第二个参数通常为`null`或伪类选择器。 为了实现跨浏览器兼容的样式获取,可以编写一个函数: ```javascript function getStyle(el, style...

    大学生静态网页设计期末作业-基于HTML+CSS+DIV布局+JS实现的影视推荐静态网页设计

    CSS选择器如类选择器、ID选择器、伪类等,使得对特定元素进行样式定制成为可能。 3. DIV布局: `div`元素是一个无语义的块级元素,通常用于组合其他元素或作为设计的容器。在CSS的帮助下,`div`元素可以用来创建...

    H5前端实战案例_前端开发_To-Do-List设计(css+js).rar

    - `:hover`、`:active` 和 `:focus`:CSS伪类,用于定义元素在不同状态下的样式。 3. **JavaScript 功能**: - `document.getElementById()` 和 `querySelector()`:通过ID或CSS选择器获取DOM元素。 - `...

    jQuery+css3制作在线电子信用卡信息填写界面特效源码.zip

    5. **伪元素与伪类**:如`:before`和`:after`可用于添加额外的视觉元素,而`:placeholder-shown`可以针对输入框的占位符进行样式调整。 6. **自定义字体与图标**:CSS3支持@font-face规则,可以引入自定义字体,...

    HTML.rar_html_网页设计_网页设计 html

    CSS选择器的使用,如类选择器、ID选择器和伪类等。 3. **JavaScript**:动态HTML的核心,用于添加交互性。学习JavaScript基础语法,包括变量、数据类型、操作符、条件语句、循环、函数等。同时,了解如何在HTML中...

    _[帮助文档大全][JS(VB)脚本+CSS样式表+JS案例大全].rar

    1. **选择器**:元素选择器、类选择器、ID选择器、伪类和伪元素。 2. **盒模型**:包括内边距(padding)、边框(border)、外边距(margin)以及内容区域。 3. **布局**:流体布局、响应式设计、Flexbox(弹性盒...

    CSS 选择器

    12. 内容伪元素选择器 (`::before`, `::after`): - `p::before` 在每个 `p` 元素之前插入内容。 - `p::after` 在每个 `p` 元素之后插入内容。 13. 语言伪类选择器 (`:lang(language)`): - `p:lang(it)` 选择 `...

    60个实用的jQuery代码片段.pdf

    54. **聚焦输入框高亮**:使用CSS伪类`:focus`或jQuery动态添加样式。 55. **动态添加表单元素**:根据需要在表单中创建新元素。 56. **导入数据到selectbox**:更新`&lt;select&gt;`的选项,如`$.each(data, function(i...

    对CSS3选择器的研究(详解)

    - `:not()`:选择不匹配指定选择器的元素,可以传递元素选择器、伪类等,但不支持连结符和伪元素。 - `:optional`:选择没有`required`属性的`input`元素。 - `:required`:选择具有`required`属性的`input`元素...

    css3.0和javascript参考手册打包奉送

    1. **选择器增强**:CSS3.0引入了更强大的选择器,如类选择器、ID选择器、属性选择器以及伪类和伪元素,例如`:nth-child()`, `:hover`, `:first-of-type`等,这些让CSS能更精确地定位和操作元素。 2. **边框和背景*...

    网页制作复习题.docx

    11. CSS样式选择器还包括伪类选择器和伪元素选择器,用于更精细地控制元素的状态和内容呈现。 12. 要把整个图像制作成底片效果,可以使用CSS的滤镜属性,如`filter: grayscale(100%) invert(100%)`。 13. 通过导航...

    163在线编辑器

    此外,CSS还用于实现动态效果,如按钮悬停时的色彩变化,这通常通过伪类`:hover`来实现。 在压缩包文件的名称列表中,我们可以推测这些`.gif`文件可能是编辑器中的图标资源。例如,数字1到20可能代表不同的功能或...

    原生JS实现表单验证带提示留言功能特效源码.zip

    - CSS选择器、属性和伪类(如`:hover`、`:focus`)可以用于实现不同状态下的样式变化。 7. **错误处理**: - 当用户输入无效时,需要有良好的错误处理机制。这可能包括显示错误消息,阻止表单提交,以及恢复错误...

    菜鸟教程离线版.zip

    1. 选择器:类选择器、ID选择器、标签选择器、后代选择器、伪类和伪元素等。 2. 属性:颜色、字体、边距、填充、背景、布局(display、flexbox、grid)。 3. 盒模型:content、padding、border、margin,以及盒模型...

    纯jQuery实现模仿淘宝购物车自动结算金额特效.zip

    2. **伪类(Pseudo-classes)**:`:hover`、`:active`等伪类可以添加鼠标悬停或点击时的样式变化。 3. **自定义字体和图标**:通过`@font-face`规则和图标字体(如Font Awesome)来实现自定义的购物车图标和货币符号...

    javascript 计算器

    在这个计算器中,可能使用`document.getElementById`或`querySelector`等方法获取元素,`innerHTML`属性来读写元素内容,以及`classList.add/remove/toggle`来管理CSS类。 6. **计算逻辑**: - 计算逻辑通常涉及到...

    前端:html+css+js+node+vue 思维导图/面试题

    - 选择器:类选择器、ID选择器、元素选择器、伪类等。 - 层叠规则:理解样式优先级。 - 盒模型:内容、内边距、边框和外边距的理解。 - 布局模式:流体布局、网格布局、Flexbox和Grid布局。 - 可访问性:颜色...

    锋利的jquery(练习)

    jQuery提供了丰富的选择器,包括基本选择器(如ID选择器`#id`,类选择器`.class`,元素选择器`element`),组合选择器(如`$('div p')`),属性选择器(如`$('input[type="text"]')`),以及伪类选择器(如`:hover`,...

    css、js、参考手册

    常见的选择器有类选择器(`.class`),ID选择器(`#id`),元素选择器(`element`),以及更高级的选择器如伪类(`:hover`, `:active`)和属性选择器(`[attr=value]`)。 2. **盒模型**:CSS盒模型包括内容...

    兼容各浏览器的省市二级联动菜单

    使用CSS可以设置菜单的样式,如字体、颜色、边框、位置等,也可以通过CSS3的`:hover`伪类和`transition`属性来实现交互反馈效果。 5. AJAX:如果省市数据较大,为了提高用户体验,可以使用AJAX异步加载数据。当用户...

Global site tag (gtag.js) - Google Analytics