您可以在 javascript 中设置有序列表编号的样式吗?如果是这样,如何?
Can you style ordered list numbers in javascript? If so, how?
假设您有一个 HTML 元素,如下所示:
<p id="theparagraph">Hello there!</p>
您可以分别使用 CSS 或 javascript 设置样式,如下所示:
#theparagraph{
color:green;
}
document.getElementById("theparagraph").style="color:blue";
我注意到,使用有序列表,您可以设置“marker”属性(或任何名称)的样式。这是排在有序列表项文本之前的单独编号。这是一个例子:
<ol>
<li id="thelistitem">
Hello there!
</li>
</ol>
您可以通过执行以下操作在 CSS 中设置样式:
#thelistitem{
color:blue;
}
#thelistitem::marker{
color:red;
}
但是,我的问题是,javascript 中的等价物是什么?
我尝试了以下方法,但没有成功:
document.getElementById("thelistitem").style="::marker{color:blue}";
document.getElementById("thelistitem").style::marker="color:blue";
document.getElementById("thelistitem").style.marker="color:blue";
None 其中有效果。什么有效?
而且我不要求从元素中分配和带走的 class 。我问的是它的风格。如何编辑它?
虽然 JS 不能直接改变标记的颜色,因为它是一个伪元素,实际上不在 DOM 中,我们可以让它设置一个 CSS 实际的变量 'real' 元素并使用它来更改伪元素中的颜色。
#thelistitem {
color: blue;
}
#thelistitem::marker {
color: var(--color);
}
<ol>
<li id="thelistitem">
Hello there!
</li>
</ol>
<button onclick="document.getElementById('thelistitem').style.setProperty('--color', 'red');">Click me</button>
JavaScript 无法操作伪元素,因为它们实际上并未出现在 DOM 树中,但您可以通过使用 CSS Variables![= 来实现您的目标。 13=]
ol li {
color: #777;
}
ol li::marker {
color: var(--custom-variable);
}
<ol>
<li id="list_item">List Item 1</li>
</ol>
<button onclick="document.getElementById('list_item').style.setProperty('--custom-variable', '#000');">
Change Color
</button>
我们刚刚将 --custom-variable 分配给颜色 属性,并使用父元素的 JavaScript 中的 setProperty 操作其值。
假设您有一个 HTML 元素,如下所示:
<p id="theparagraph">Hello there!</p>
您可以分别使用 CSS 或 javascript 设置样式,如下所示:
#theparagraph{
color:green;
}
document.getElementById("theparagraph").style="color:blue";
我注意到,使用有序列表,您可以设置“marker”属性(或任何名称)的样式。这是排在有序列表项文本之前的单独编号。这是一个例子:
<ol>
<li id="thelistitem">
Hello there!
</li>
</ol>
您可以通过执行以下操作在 CSS 中设置样式:
#thelistitem{
color:blue;
}
#thelistitem::marker{
color:red;
}
但是,我的问题是,javascript 中的等价物是什么? 我尝试了以下方法,但没有成功:
document.getElementById("thelistitem").style="::marker{color:blue}";
document.getElementById("thelistitem").style::marker="color:blue";
document.getElementById("thelistitem").style.marker="color:blue";
None 其中有效果。什么有效? 而且我不要求从元素中分配和带走的 class 。我问的是它的风格。如何编辑它?
虽然 JS 不能直接改变标记的颜色,因为它是一个伪元素,实际上不在 DOM 中,我们可以让它设置一个 CSS 实际的变量 'real' 元素并使用它来更改伪元素中的颜色。
#thelistitem {
color: blue;
}
#thelistitem::marker {
color: var(--color);
}
<ol>
<li id="thelistitem">
Hello there!
</li>
</ol>
<button onclick="document.getElementById('thelistitem').style.setProperty('--color', 'red');">Click me</button>
JavaScript 无法操作伪元素,因为它们实际上并未出现在 DOM 树中,但您可以通过使用 CSS Variables![= 来实现您的目标。 13=]
ol li {
color: #777;
}
ol li::marker {
color: var(--custom-variable);
}
<ol>
<li id="list_item">List Item 1</li>
</ol>
<button onclick="document.getElementById('list_item').style.setProperty('--custom-variable', '#000');">
Change Color
</button>
我们刚刚将 --custom-variable 分配给颜色 属性,并使用父元素的 JavaScript 中的 setProperty 操作其值。