Css 如何选择*但排除<;车身>;?或设置<;车身>;默认样式?

Css 如何选择*但排除<;车身>;?或设置<;车身>;默认样式?,css,css-selectors,userstyles,Css,Css Selectors,Userstyles,浏览器通常为元素设置不同的默认样式。用户还可以使用覆盖默认值 我经常使用自己的样式覆盖这些默认样式,例如: * {padding:0; margin:0; } 但是,我希望尊重某些元素属性的默认样式表,例如的默认填充和边距。我试过: * { padding:0; margin:0; } body { padding:default; margin:default; } 但它不起作用。首字母也不是 有没有办法通过选择除之外的所有元素来解决此问题 有没有办法通过选择

浏览器通常为元素设置不同的默认样式。用户还可以使用覆盖默认值

我经常使用自己的样式覆盖这些默认样式,例如:

* {padding:0; margin:0; }
但是,我希望尊重某些元素属性的默认样式表,例如
的默认填充和边距。我试过:

*    { padding:0;       margin:0;       }
body { padding:default; margin:default; }
但它不起作用。
首字母也不是

有没有办法通过选择除
之外的所有元素来解决此问题

有没有办法通过选择除
之外的所有元素来解决此问题

由于默认情况下,视口中显示的所有内容都由
的内容组成,因此您只需选择
html
,以及所有
正文的子体:

html, body * { margin: 0; padding: 0; }

default
不起作用,因为没有这样的关键字<代码>初始
不起作用,因为初始边距为0。使用CSS更改属性后,无法将其重置为浏览器给定的默认值。

使用
正文*
选择器

body *{padding:0;margin:0;}
的所有后代:


首先将它们设置为0,然后覆盖所需的值。你最好使用CSS重置,但是如果你真的想使用星号,这个方法就行了

   * {
     padding:0;
     margin:0;
   }

   body, html {
     padding: 10px;
   }

你可以用
头,title{display:block;}
:)@Pent几年前在这里读它。@Boltclock我甚至不能容忍0.1秒的惩罚,但我真的不明白为什么它会慢,因为在
*
被读的时候,先读css,然后读html,即使整个页面都被元素填满,元素也不多,这不是真的吗?@Pent:这很慢,因为浏览器需要为页面中的每个元素计算样式。@Boltclock不是这样的吗?它首先在
结束标记处计算,然后缓存在
计算样式中,并用于以后遇到的每个元素?@alex:边距和填充不是继承的。这有点傻。。首先,将
html,body
上的
margin
归零是个好主意。相反,您应该将
margin
添加到您的容器
div
上,或者其他任何内容。如果你真的想这样做,那么定制一个CSS重置。可能更容易,坚持你的做法:
*{padding:0;margin:0;}body{margin:10px}
-这样,你就不必使用低效的
*
(至少,不再使用了),而且
正文
页边距在浏览器之间肯定是一致的。@thirtydot但在用户定义的样式表之间不一致,这就是我刚才说的意思default@Pent:几乎没有用户关心精确的
正文
边距。那些在乎的人会使用
!重要信息
确保他们的自定义
边距
保持不变,如果这对他们很重要的话(他们必须这样做,因为世界上所有其他网站都会设置
正文{margin:0}
,或任何数字)。请参阅CSS规范:。为什么你这么在意保留默认的边距?@thirtydot我只是在寻找一个能够做到这一点的解决方案。见鬼,他们真的应该有一种类似xpath的方法来指定例外事实上,确实如此。你可以使用
:not(body)
作为选择器,但是旧的浏览器不支持很多CSS3选择器。我的意思是我知道我当然可以这样做,但它不能保证10px。它是用户定义的,那么我怎么知道用户定义的body的padding/margin是什么呢?您指的是特定于浏览器的样式表吗?为什么需要保留浏览器的默认设置?设置使每个浏览器的页面看起来相同的内容。:)如果你真的想调查默认设置,可以使用inspect工具,在应用任何特殊样式之前检查body\html标记的计算样式。是的,我肯定在问题中列出了“默认设置”
html, body * {padding:0;margin:0;}
   * {
     padding:0;
     margin:0;
   }

   body, html {
     padding: 10px;
   }