【发布时间】:2015-07-22 13:01:31
【问题描述】:
我正在处理一个在选择元素上有很多(不是很好)样式的网站,我想恢复一个特定页面的 firefox 默认值。似乎主要是 background 和 border 样式破坏了 Firefox 的渲染。
问题是:
a) 我不知道默认浏览器样式应该是什么,才能使它看起来像没有设置样式时的样子。当我在浏览器样式下查看网络检查器时,它是一个很长的设置列表,看起来有点矫枉过正,只是为了覆盖两个样式表设置
b) 我不想应用所有 firefox 特定的浏览器样式并最终破坏其他浏览器的样式。
如何在不搞砸一切的情况下恢复默认设置?
可接受的答案可以是内联或作用域<style> 元素,但不能更改或省略主样式表。
更新: 这是一个快速演示,说明了问题和当前提出的答案的失败结果。这里还有一个 jfiddle:http://jsfiddle.net/pkd3byud/2/
select { margin: 10px 0; }
div select {
border: 2px solid tomato;
}
.oriol {
all: unset;
}
.boucher {
background: initial;
border: initial;
}
<select>
<option>Option</option>
</select>
<div>
<select>
<option>Option</option>
</select>
</div>
<div>
<select class="oriol">
<option>Option</option>
</select>
</div>
<div>
<select class="boucher">
<option>Option</option>
</select>
</div>
【问题讨论】:
-
只需删除与该元素相关的所有 CSS,这将允许所有浏览器使用默认样式。
-
CSS 位于主样式表上,该样式表加载到每个页面上。我不想编辑母版,因为它会影响网站上的每个页面。我只想将这一页上的选择元素恢复为默认样式。
-
然后向该页面添加一个 unqiue 类,并在主 CSS 中使用 not 选择器来排除该页面上元素的样式。
-
@APAD1 - 我在我的问题中特别指出“无法更改主样式表”。虽然感谢您的意见,但我正在寻找符合我在问题中概述的答案。
-
我知道你的问题中所说的内容,但是,你给出的理由是你不想影响其他页面上选择框的样式,这是我的建议不这样做。现在,如果您说您正在寻找一个不涉及更改主样式表的解决方案,因为您无权访问它,那将是另一回事。我只是告诉你最简单的解决方案是什么。要么接受,要么离开。