问题:现有资源依赖关系(我不允许修改或从构建中删除)其中包含指示不需要的按钮样式的样式表。我想以某种方式克服此样式表对页面中按钮样式的影响。如何克服现有的CSS并将按钮样式更改为默认的Windows样式按钮?
问题:使用我自己的本地样式表,如何恢复为默认的Windows css按钮样式(背景,形状,文本)? - 我不知道css属性应该是什么等(我假设我将不得不使用“!重要”短语等)
问题:现有资源依赖关系(我不允许修改或从构建中删除)其中包含指示不需要的按钮样式的样式表。我想以某种方式克服此样式表对页面中按钮样式的影响。如何克服现有的CSS并将按钮样式更改为默认的Windows样式按钮?
问题:使用我自己的本地样式表,如何恢复为默认的Windows css按钮样式(背景,形状,文本)? - 我不知道css属性应该是什么等(我假设我将不得不使用“!重要”短语等)
你不会,也不应该使用!重要的。您只需按照CSS特性和继承的原则正确覆盖。
Explanation of CSS Inheritance
例如 - 假设你的 '无用' 的按钮样式是这样的:
<input type="button" class="unwanted" />
而且你已经有了CSS在你的(不可编辑)样式表:
.unwanted {
fooRule: whatever;
barRule: whatever;
}
使用继承,您只需编写自己的外部样式表。注意事项:
(1)您应该将其放在包含'不想要的'样式表引用的现有值之下。继承按顺序处理外部样式表。这遵循“最接近规则赢”的原则。 (2)您编写CSS规则的方式必须比当前应用不需要的样式的规则更具体。再次,上述链接真的有助于解释这一点。
回到我们前面的例子,不想要的风格只是被一类“不想要的”应用。您的规则可以覆盖而无需编辑HTML。或者,您可以编辑HTML - 这取决于您。这也取决于您想要影响按钮样式的全局。
如果你想在全球范围内影响与“无用”类中的所有按钮,你会怎么做:
input[type='button'] .unwanted {
fooRule:override;
}
如果你只是想改变一些有不必要的风格的按钮,你反而会做:
.unwanted.newRule {
fooRule:override;
}
然后你会国防部您的HTML是:
<input type="button" class="unwanted newRule">
注意.U nwanted.newRule意味着它只会影响'元素'和一个不需要的和newRule的类。如果不需要的样式设置这样它不会改变任何东西:
<form class="unwanted">
<input type="button" class="newRule" />
</form>
的原因是.unwanted.newRule意味着“两个类都在相同的元素”。您将其更改为:
.unwanted .newRule {foo}
所以 - 我的观点是,有一吨的正确地利用CSS的特异性和继承,并做你想做的事,而不必使用语义正确的方式很重要。
在附注中,您必须使用的唯一原因!重要的是,如果CSS样式化按钮实际上是使用JavaScript将'style'属性写入HTML元素的。如果是这样的话,(1)不要使用JS,因为这是使用JS进行样式设计的可怕方法,(2)您必须使用!important重写JS应用的内联样式。再次,这是因为级联的工作原理 - 在这种情况下,CSS通过(1)浏览器(用户代理),(2)外部CSS,(3)内部'head'css,(4)内部内联css, (5)作者!重要声明,(6)用户!重要声明。
每个浏览器都有自己的一套默认CSS规则。没有“Windows”的CSS,除非你明确提到IE最能匹配所说的风格。您需要找到您的首选浏览器的默认设置,并将它们追加到新的CSS之后,以将它们重写为默认主题。
一些常用的浏览器默认样式:
应该指出,它只能模拟一个特定浏览器的按钮样式。如果它是Opera,按钮看起来就像是Opera的默认设置,Firefox的默认设置是Firefox等等,但是不可能回到默认设置。 – cimmanon
不仅仅是CSS,而且很容易使用JS或PHP:'switch (userAgent){case“opera”:include css/opera/reset.css .. ..等等 – AlienWebguy
不要使用!important
而是具有较高的特异性定义按钮样式并给你的按钮所需的外观。因此,如果在原来的样式表,你有
button { ... }
然后在你的样式做
#parent button { ... }
所以这是我的帖子的TL:DR版本,虽然这可能不工作,取决于CSS和HTML(和可能是任何JS)都已实现。这应该工作,但它可能不会 - 例如。如果他有JS将样式属性写入HTML。 –
@MikeEarley OP说*“...其中包含一个样式表,指示不需要的按钮样式”*,所以我想没有JS参与。也没有JS标签的问题.. –
是的,好点。该样式表中仍有可能出现CSS不可思议的情况,这仍然会发生冲突。嘿,你几乎肯定是正确的!,我说了同样的话,所以我想我的评论是愚蠢的,没有必要:) –
谢谢,迈克! – sairn