示例:
<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
分享到:
相关推荐
例如 `window.getComputedStyle(el, null).width`,其中`el`是元素对象,第二个参数通常为`null`或伪类选择器。 为了实现跨浏览器兼容的样式获取,可以编写一个函数: ```javascript function getStyle(el, style...
CSS选择器如类选择器、ID选择器、伪类等,使得对特定元素进行样式定制成为可能。 3. DIV布局: `div`元素是一个无语义的块级元素,通常用于组合其他元素或作为设计的容器。在CSS的帮助下,`div`元素可以用来创建...
- `:hover`、`:active` 和 `:focus`:CSS伪类,用于定义元素在不同状态下的样式。 3. **JavaScript 功能**: - `document.getElementById()` 和 `querySelector()`:通过ID或CSS选择器获取DOM元素。 - `...
5. **伪元素与伪类**:如`:before`和`:after`可用于添加额外的视觉元素,而`:placeholder-shown`可以针对输入框的占位符进行样式调整。 6. **自定义字体与图标**:CSS3支持@font-face规则,可以引入自定义字体,...
CSS选择器的使用,如类选择器、ID选择器和伪类等。 3. **JavaScript**:动态HTML的核心,用于添加交互性。学习JavaScript基础语法,包括变量、数据类型、操作符、条件语句、循环、函数等。同时,了解如何在HTML中...
1. **选择器**:元素选择器、类选择器、ID选择器、伪类和伪元素。 2. **盒模型**:包括内边距(padding)、边框(border)、外边距(margin)以及内容区域。 3. **布局**:流体布局、响应式设计、Flexbox(弹性盒...
12. 内容伪元素选择器 (`::before`, `::after`): - `p::before` 在每个 `p` 元素之前插入内容。 - `p::after` 在每个 `p` 元素之后插入内容。 13. 语言伪类选择器 (`:lang(language)`): - `p:lang(it)` 选择 `...
54. **聚焦输入框高亮**:使用CSS伪类`:focus`或jQuery动态添加样式。 55. **动态添加表单元素**:根据需要在表单中创建新元素。 56. **导入数据到selectbox**:更新`<select>`的选项,如`$.each(data, function(i...
- `:not()`:选择不匹配指定选择器的元素,可以传递元素选择器、伪类等,但不支持连结符和伪元素。 - `:optional`:选择没有`required`属性的`input`元素。 - `:required`:选择具有`required`属性的`input`元素...
1. **选择器增强**:CSS3.0引入了更强大的选择器,如类选择器、ID选择器、属性选择器以及伪类和伪元素,例如`:nth-child()`, `:hover`, `:first-of-type`等,这些让CSS能更精确地定位和操作元素。 2. **边框和背景*...
11. CSS样式选择器还包括伪类选择器和伪元素选择器,用于更精细地控制元素的状态和内容呈现。 12. 要把整个图像制作成底片效果,可以使用CSS的滤镜属性,如`filter: grayscale(100%) invert(100%)`。 13. 通过导航...
此外,CSS还用于实现动态效果,如按钮悬停时的色彩变化,这通常通过伪类`:hover`来实现。 在压缩包文件的名称列表中,我们可以推测这些`.gif`文件可能是编辑器中的图标资源。例如,数字1到20可能代表不同的功能或...
- CSS选择器、属性和伪类(如`:hover`、`:focus`)可以用于实现不同状态下的样式变化。 7. **错误处理**: - 当用户输入无效时,需要有良好的错误处理机制。这可能包括显示错误消息,阻止表单提交,以及恢复错误...
1. 选择器:类选择器、ID选择器、标签选择器、后代选择器、伪类和伪元素等。 2. 属性:颜色、字体、边距、填充、背景、布局(display、flexbox、grid)。 3. 盒模型:content、padding、border、margin,以及盒模型...
2. **伪类(Pseudo-classes)**:`:hover`、`:active`等伪类可以添加鼠标悬停或点击时的样式变化。 3. **自定义字体和图标**:通过`@font-face`规则和图标字体(如Font Awesome)来实现自定义的购物车图标和货币符号...
在这个计算器中,可能使用`document.getElementById`或`querySelector`等方法获取元素,`innerHTML`属性来读写元素内容,以及`classList.add/remove/toggle`来管理CSS类。 6. **计算逻辑**: - 计算逻辑通常涉及到...
- 选择器:类选择器、ID选择器、元素选择器、伪类等。 - 层叠规则:理解样式优先级。 - 盒模型:内容、内边距、边框和外边距的理解。 - 布局模式:流体布局、网格布局、Flexbox和Grid布局。 - 可访问性:颜色...
jQuery提供了丰富的选择器,包括基本选择器(如ID选择器`#id`,类选择器`.class`,元素选择器`element`),组合选择器(如`$('div p')`),属性选择器(如`$('input[type="text"]')`),以及伪类选择器(如`:hover`,...
常见的选择器有类选择器(`.class`),ID选择器(`#id`),元素选择器(`element`),以及更高级的选择器如伪类(`:hover`, `:active`)和属性选择器(`[attr=value]`)。 2. **盒模型**:CSS盒模型包括内容...
使用CSS可以设置菜单的样式,如字体、颜色、边框、位置等,也可以通过CSS3的`:hover`伪类和`transition`属性来实现交互反馈效果。 5. AJAX:如果省市数据较大,为了提高用户体验,可以使用AJAX异步加载数据。当用户...