如何设置样式在"*"和JavaScript的伪状态
How to set the styles on "*" and pseudo states with JavaScript?
我想在页面上的所有对象上启用和禁用轮廓,我正在使用以下CSS代码:
*, *:before, *:after {
outline:1px dotted red;
}
我如何用JavaScript编程,我可以启用或禁用它?
我想我可以为一个特定的标签做这样的事情,但不能为*:
document.getElementsByTagName("body")[0].style = "outline:1px dotted red";
启用outline:
document.getElementByTagName("*").setStyle("outline:1px dotted red");
document.getElementByTagName("*:before").setStyle("outline:1px dotted red");
document.getElementByTagName("*:after").setStyle("outline:1px dotted red");
禁用outline的伪代码:
document.getElementByTagName("*").setStyle("outline:0px dotted red");
document.getElementByTagName("*:before").setStyle("outline:0px dotted red");
document.getElementByTagName("*:after").setStyle("outline:0px dotted red");
你通常不希望循环遍历页面上的所有对象。如果我们忽略性能问题,实际上还有可能覆盖您想要保留的现有样式的情况。
使用Javascript从Inject CSS样式表绘制为字符串
var node;
function changeAllElementsOutline(outlineWidth) {
if (!node) {
node = document.createElement('style');
document.body.appendChild(node);
}
node.innerHTML = '*, *:before, *:after { outline:' + outlineWidth + 'px dotted red; }'
}
<div onClick="changeAllElementsOutline(1);">Set outline</div>
<p onClick="changeAllElementsOutline(0);">Remove outline</p>
最好的答案是保持样式加载,但使其以主体上有一个类为条件。然后,您可以通过添加/删除类来打开或关闭样式。
CSS:body.outline-enabled *,
body.outline-enabled *:before,
body.outline-enabled *:after {
outline: 1px solid red;
}
JavaScript: function addOutline() {
document.getElementsByTagName('body')[0].classList.add('outline-enabled');
}
function removeOutline() {
document.getElementsByTagName('body')[0].classList.remove('outline-enabled');
}
你可以这样做:
var elements = document.querySelectorAll('*');
for(var i = 0; i < elements.length; i++) {
elements[i].style.outline = '1px dotted red';
}
document.querySelectorAll
返回NodeList的一个实例(它是一个类似数组的实例),因此您可以遍历它的元素。
NodeList
上没有方法来设置其元素的样式
相关文章:
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- Javascript复选框函数:;缺少:在属性id之后"
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 插入“;img src"在javascript中
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 如何's css标记"-webkit最小设备像素比”;在Javascript中实现
- 内联javascript与"<脚本>"字符串错误地关闭了脚本标记
- 什么是"!函数(){}〃;javascript中的mean/do
- 使用javascript"这个“;用于jquery选择器
- 我可以在不使用乘法运算符“”的情况下进行乘法运算吗*"在JavaScript中
- 用分隔符分隔具有多个整数值的字符串的Javascript"重试错误的值
- 什么是==+"在javascript中
- 什么是“;回归"javascript中的mean
- 可以't删除“;C: fakepath "使用javascript替换和regex
- 如何删除“"使用javascript从字符串中提取字符
- 如何使用Javascript获取当前页面URL,并在<a href="[the_URL]”>
- JavaScript异常:“;不成形”;在firefox浏览器上;XMLHttpRequest"chrome浏
- button1.Attributes.Add(“onclick"“javascript: window.open