重置继承的CSS

重置继承的CSS,css,Css,我正在尝试创建一个站点的备用设计作为后备方案。我无法真正改变系统的架构。加载主样式表,然后加载第二个样式表。我可以控制第二个样式表。我想重置很多CSS,特别是表单元素 然而,我在这方面有困难。例如,使用: 虽然我可以设置背景:无、边框半径:无`等等,但是按钮没有样式,而不是默认的浏览器样式。在页面上的许多其他元素中,我必须使表单元素成为默认的浏览器样式。但我似乎无法至少使表单元素不具有样式 为清晰起见 简化问题:如何将样式重新设置为默认样式?您需要了解如何工作。通过使CSS规则比其他规则更具体,

我正在尝试创建一个站点的备用设计作为后备方案。我无法真正改变系统的架构。加载主样式表,然后加载第二个样式表。我可以控制第二个样式表。我想重置很多CSS,特别是表单元素

然而,我在这方面有困难。例如,使用

虽然我可以设置
背景:无
、边框半径:无`等等,但是按钮没有样式,而不是默认的浏览器样式。在页面上的许多其他元素中,我必须使表单元素成为默认的浏览器样式。但我似乎无法至少使表单元素不具有样式

为清晰起见
简化问题:如何将
样式重新设置为默认样式?

您需要了解如何工作。通过使CSS规则比其他规则更具体,可以覆盖任何CSS规则

例如:

<div class="content">
    <div class="wrapper"><span>Hello World</span></div>
</div>
在这种情况下,第一个声明将覆盖第二个声明,因为它“更具体”。通常,您可以在树的上一级指定包装元素或包装类来覆盖内部元素的规则。这实际上是在处理许多CMS系统,比如WordPress,在这些系统中,您没有访问主样式表的权限,或者只是想不去管它,重新对您想要的部分进行蒙皮

读这篇文章,这很重要


我建议使用CSS重置作为起点(可能是最著名的)

我认为,如果您不想设置自己的样式,但将其返回到浏览器默认值(例如,您不想在所有内容上使用
边距:0;
,您希望在
H1
上使用默认的大边距,在
p
上使用默认的较小边距,等等),您会遇到麻烦

实际上,您可以获取用户代理样式表的副本,对其进行修改以使其更具体,并将其包括在内以覆盖..这里的一个问题是,每个浏览器都使用自己的样式表,因此,除非您的浏览器检测并提供选择性样式表,否则它不会像该浏览器通常那样。不过,我认为这没关系。实际上,我建议您选择一个您喜欢的默认浏览器,并将所有浏览器设置为那样,或者您可以使用

但是,所有这些都不能解决您的问题,因为表单元素的样式设置非常困难。一旦应用样式,一些浏览器将切换表单元素的呈现模式,因此您永远无法将其恢复到原始样式。例如,IE7不支持圆角,但其默认按钮具有圆角,因为它是但一旦你给按钮加上边框或其他样式,它就会失去漂亮的Windows着色圆角默认外观,而且如果不使用图像就无法恢复它


所以说真的,我不会试图让浏览器回到他们的原生默认样式。我会使用UA默认样式表,然后对其进行修改,使其成为一种通用的、跨浏览器的、跨系统的默认样式。它看起来不像原生的无样式代码,但看起来足够接近。

我认为它没有回答他的问题。看起来他知道如何覆盖。他想知道如何将一个元素的所有css规则重置为默认值。是的,@SvenBieder是对的。我完全理解特殊性。我可以“取消样式”页面上的所有其他元素都相对容易,但表单元素却很难。我需要反驳默认的浏览器样式,而不是应用新样式。它们是同一个硬币的两面。本质上,你是在将其重新设置为默认样式。你可以抓住一些未重置的元素:@Diodeus,我想你你还是不太明白。我只是看了这两个,它们并没有按照我的要求做。第二个甚至没有提到
按钮
,第一个只将其设置为
显示:内联块
。简化问题:如何将
样式重新设置为默认值?你理解我的问题:)不幸的是,我不能使用浏览器检测。因此,如果真的没有办法让它回到浏览器默认设置,那么我想这就是我的答案。问题是:没有“标准”按钮默认设置。它们在浏览器中是不同的,这就是为什么我们首先使用CSS重置。浏览器检测是可能的,但它并不能真正解决您的问题,因为您主要关注的是将表单元素恢复为其原始默认值。一旦应用了样式,我不知道有什么方法可以在每个浏览器中都这样做。我认为Gecko、Presto(Opera)和WebKit渲染引擎可能会给你带来好运,但我觉得Trident(Internet Explorer)不会让你重置它,特别是在
<div class="content">
    <div class="wrapper"><span>Hello World</span></div>
</div>
.content .wrapper span { ... }
.wrapper span { ... }