如何覆盖 HTML 中 `` 标签的外部样式?

如何覆盖 html 中 `` 标签的外部样式?

如何在 input 标签内覆盖外部样式

html 中, 标签的样式通常通过外部 css 样式表定义。但是,有时候我们需要在 标签内定义样式以覆盖外部样式。

解决方案

不能直接覆盖

不幸的是,我们无法直接在 标签内部覆盖外部样式。这是因为 标签不支持 :after 和 :checked 这样的伪类选择器。

变通方法:判断类名

一种变通方法是通过判断 标签的 class 名称来重新编写外部样式。例如,我们可以这样写:

<input class="mgc" type="checkbox"><span style="color: red">是否勾选</span>

<style>
  .mgc-checked {
    /* 重写的样式 */
  }
</style>

当选中该复选框时,我们可以使用 javascript 添加 mgc-checked 类名,从而触发相应的 css 样式:

document.querySelector("input.mgc").addEventListener("change", (e) => {
  if (e.target.checked) {
    e.target.classList.add("mgc-checked");
  } else {
    e.target.classList.remove("mgc-checked");
  }
});

以上就是如何覆盖 HTML 中 `` 标签的外部样式?的详细内容,更多请关注其它相关文章!