Html 如何将CSS属性设置为特定元素的默认值(或防止继承)

Html 如何将CSS属性设置为特定元素的默认值(或防止继承),html,css,Html,Css,如果任何HTML元素是另一个元素的子元素,并且自动继承一系列CSS属性,那么如何将这些属性中的一个(或全部)设置为默认值 例如: CSS: HTML 一些文本: 更多文字: 在这里,我所说的“浏览器默认值”是指我希望它看起来完全像没有对该元素应用CSS一样 这里我使用一个input元素作为例子,但我指的是任何类型的元素。我不是问如何为特定元素设置不同的CSS属性,而是问如何将它重置为默认值 不同的元素在未设置时具有不同的默认属性,如填充。例如,CSS中填充为0的按钮将不带任何空格地包装其文本

如果任何HTML元素是另一个元素的子元素,并且自动继承一系列CSS属性,那么如何将这些属性中的一个(或全部)设置为默认值

例如:

CSS:

HTML


一些文本:
更多文字:
在这里,我所说的“浏览器默认值”是指我希望它看起来完全像没有对该元素应用CSS一样

这里我使用一个
input
元素作为例子,但我指的是任何类型的元素。我不是问如何为特定元素设置不同的CSS属性,而是问如何将它重置为默认值

不同的元素在未设置时具有不同的默认属性,如
填充
。例如,CSS中填充为
0
按钮将不带任何空格地包装其文本。以后可以将其填充设置为另一个值,但如何将其设置为默认填充


提前感谢您的评论

如果你说的是浏览器默认值,而不是CSS重置样式表,那么它们遍布整个web,这些样式表将每个元素属性重置为标准值

几个例子

(包含HTML5元素的CSS重置)

如果您是说手动样式重置并忽略继承,那么直到现在,没有办法完全重置样式,除非并且直到您重新声明它们的值,例如

div {
   color: red;
   font-family: Arial;
}

div p {
   /* Here it will inherit the parents child unless and 
      until you re specify properties with different values */
}

您不能将属性设置为默认值,因为默认值依赖于浏览器,不能在CSS中引用。比照

另一方面,您的示例设置了
填充
边距
,它们不是继承的。因此,问题似乎是如何防止您自己的CSS规则应用于某些特定元素。然后,答案是您需要修改规则的选择器,使特定元素与之不匹配。在您的情况下,可以通过将选择器更改为

.navigation > input

但是标记和样式表越复杂,就越难通过这种方式限制效果。

在您的情况下,您可以使用:

.navigation input {    
    all: initial;
}
它会将输入的所有属性还原为初始值

资料来源: 您可以使用unset, 假设要将边框颜色设置为浏览器默认值

.navigation input {
    padding: 0;
    margin: 0 30em;
    border-color: unset;
}
这将取消设置从其他类继承的样式。

用于值的
revert
关键字。它看起来像是为了问题中的确切目的,可以这样使用:

.navigation input {    
    all: revert;
}

还是写这篇文章的时候…

我认为其中一些应该有效:

/* Valeurs avec mot-clé */


clear: none;

clear: left;

clear: right;

clear: both;

clear: inline-start;

clear: inline-end;


/* Valeurs globales */

clear: inherit;

clear: initial;

clear: unset;
资料来源:
  • 土司rm-rf/*
lmgtfy:任何搜索引擎上的“css3+清除”


默认情况下,每个浏览器都会查看普通HTML元素,并为其指定自己的“默认”CSS格式。例如,“blockquote”元素通常由浏览器使用一组标准CSS格式值进行解释,如下所示:

blockquote  {
  display: block;
  margin-top: 1em;
  margin-bottom: 1em;
  margin-left: 40px;
  margin-right: 40px;
}
但是,这种格式在浏览器之间并不总是一致的。因此,一些人已经开始创建“重置css表单”,在为特定web项目应用自定义css之前,使用值将所有浏览器对齐到相同的格式。Bootstrap做到了这一点,但在这样做的过程中,他们主观上认为每个人都希望元素看起来像他们想要的一样,这在“blockquote”的情况下造成了混乱,从而消除了关键的利润:

“blockquote”的引导4.0重置

此引导修复程序在所有引导下载中都会失败,因为它去除了在科学期刊中定义阻止引用的关键左边距格式,并在底部添加了一个。较老的浏览器不知道什么是“rem”,所以看起来会有所不同。Boostrap中的自定义类不是问题所在,而是这些设计拙劣的“重置”

不幸的是,Alien先生的回答有一半是正确的,因为他的CSS重置也像Bootstrap一样是主观的,并没有完全将CSS返回到浏览器默认值,而是执行清理例程,强制所有浏览器使用新的默认设计,如Bootstrap…而不是浏览器的原始设计。事实上,据我所知,没有一个真正的CSS重置表是经过精心设计的,用于重置每个已知浏览器及其所有版本的CSS。这就是为什么设计师最好不要使用这些定制CSS框架,而是从头开始。但大多数人对推特引导如此上瘾,以至于现在不可能从大多数web项目中去掉它。在您发现自己的工作表中的每个元素时,手动自定义它们也太复杂了。这就增加了在课堂上写文章的危险。使用“!important”也可以做到这一点

有一些技巧可以将元素返回到浏览器的默认UA样式表,如下所示:

* {
    all:revert;
}
这会将所有HTML样式重置为其浏览器CSS默认值。但是,例如,这个技巧在InternetExplorer中不起作用


我建议您安装一个HTML重置表,强制所有引导或其他安装逐个元素返回到原始浏览器的默认值,以便所有浏览器都具有相同的默认值。这个网站有一些很好的价值可以用来制作这样的表格:

谢谢。你是说这是不可能的?使用带有默认值的样式表并不是重置元素,而是重新分配属性并以某种方式模拟浏览器默认值,但不像真正的
重置
。还是我遗漏了什么?@FranciscoZarabozo说你重置了浏览器默认值,现在对于一个元素你需要浏览器默认值,所以你需要创建一个选择器并再次写入样式以覆盖继承,所以在纯英语中,类似于
.class_name{all properties=0,现在在下面重写新的}
是不可能的“CSS重置样式表”通常不会将属性设置为默认值。T
blockquote  {
  display: block;
  margin-top: 1em;
  margin-bottom: 1em;
  margin-left: 40px;
  margin-right: 40px;
}
blockquote  {
  margin: 0 0 1rem;
}
* {
    all:revert;
}