绕过CSS“通用选择器*重置”

我一直在为网站写登陆页面。

这是问题所在:原始开发人员在主css文件中添加了“通用选择器*重置”:

* { //Universal Selector '*' Reset margin: 0; padding: 0; } 

然后围绕它构建网站样式。

不幸的是,这需要很多代码来解决表,列表,标题等问题。

问题是:有没有办法绕过单个对象(表,列表等)的选择器,甚至是一般的页面(除了不包括css文件)?

编辑:有些人对我的问题感到困惑。 绕过我的意思是忽略星号选择器而不是覆盖它…还要注意我试图最小化额外的代码。

编辑2:这是一个说明我的问题的jsFiddle 。
注意:“填充:初始;” 似乎没有工作。

任何其他选择器都比*选择器更具体,因此会覆盖它的效果。
请参阅以下示例Jsfiddle

因此,例如,如果您想要恢复

上的填充,您可以这样做

 table { padding: initial; } 

如果这不是你的想象,你可以调整你的星号选择器来忽略你选择的元素:

 *:not(table) { [...] } 

附录:
对于许多人来说可能会出乎意料,设置属性然后使用带有更具体选择器的initial并不一定会反转设置。
重置与初始值(下面的第二 图像)未设置样例(下面的第一张图片)进行比较 (取决于您的浏览器,结果可能不同):

无样式:
没有样式的样本

重启:
重置样本

这是因为属性的初始值 (在CSS规范中定义)可能与浏览器的元素默认值不同。

您不能取消(忽略)级联中已有的值; 您必须修改引入该值的规则或使用其他值覆盖它。

 * { margin: initial; padding: initial; } 

(Kudos King King)将这些属性恢复为初始值,但不会重新应用这些元素的浏览器默认样式。 (这些风格早先被覆盖并且“丢失”。)但这是预期的。 🙂

在应用任何规则之前, initial是属性的“第一个”值。 每个属性都有一个CSS规范中定义的初始值。

 margin = auto padding = 0 

浏览器的“默认”样式非常不同 – 它们是在作者样式表之前应用的实际样式规则。 它们是为了模仿CSS前浏览器如何显示某些元素而编写的。

 ul { padding-left: 40px; list-style: disc; … } 

这些是任意的 – 列表的外观没有CSS“默认值”。 因此,如果您想要每个元素的默认值,那么最好自己编写 。