撤消CSS规范

时间:2010-11-18 07:55:20

标签: css

您可以,如果是这样,您如何撤消css规范?假设你想要

textarea { width: 500px; }

然后你想要一个70列的特定文本区域:

<textarea class='email' cols=70></textarea>

理想情况下,我会写一个CSS规则

textarea.email { width: revert_to_default_unspecified_value; }

(但显然该值不存在。)

你是怎么做到的?我对这个具体案例既感兴趣,也对如何在子代中撤消父css规范感兴趣。这一定说得很多,但谷歌很难。

4 个答案:

答案 0 :(得分:6)

textarea.email { width: auto; }

答案 1 :(得分:6)

您要查找的默认值是:

  

初始:自动

http://www.w3.org/TR/CSS2/visudet.html#the-width-property

请注意,对于某些CSS属性,设置auto将恢复为默认值。其他有不同的初始值。

例如,background-color属性的默认值为transparent

  

初始:透明

http://www.w3.org/TR/CSS2/colors.html#background

某些属性(如color)无法恢复为默认属性,因为它们没有已知的默认值。

  

初始值:取决于用户代理

http://www.w3.org/TR/CSS2/colors.html#colors


关于撤消子项中继承的CSS。

我们来看一下font-size属性,这是一个继承的属性。

level0
<div style="font-size:36px;">
    level1
    <div [style="font-size:medium;"]>
        level2
    </div>
</div>

默认情况下,level2字体大小将从level1继承,但如果我们添加初始medium值,我们会将其重置为level0文本的大小。唯一不方便的是我们不能忽略一个级别的继承,所以如果我们要添加level3,我们仍然会重置为level0,而不是level1

答案 2 :(得分:1)

我认为,如果您没有为此textarea指定css width规则,则其默认值为width: auto。因此,我会尝试在特定情况下将其设置回默认值,HTML属性应该正常接管:

textarea.email { width: auto }

答案 3 :(得分:0)

要重置样式,您现在可以使用unsetinitial特殊属性。对unset的支持目前较低(56%) - http://caniuse.com/#search=CSS%20unset%20value,但对initial的支持率很高(80%) - http://caniuse.com/#search=CSS%20initial%20value

考虑一下这个例子:

http://codepen.io/anon/pen/OMROye

<div class="outer">
  Foo
  <div class="middle">
    Bar
    <div class="inner">
      Baz
    </div>
  </div>
</div>

.outer {
  font-size: 50px;
  color: #f3f;
}

.middle {
  font-size: 25px;
  color: #33f;
}

.inner {
  font-size: 15px;
  color: #f33;
}

.inner {
  font-size: unset;
  color: unset;
}

内部文字的字体大小和颜色类似于&#39;父节点。

如果我们将最后一种风格改为:

.inner {
  font-size: initial;
  color: initial;
}

内部文本将具有标准颜色和标准字体大小。

现在是指出这些属性比它们看起来有点棘手的最佳时机,例如unset有时像initial那样,有时像inherit一样。

指向文档的链接:

https://developer.mozilla.org/en-US/docs/Web/CSS/initial

https://developer.mozilla.org/en-US/docs/Web/CSS/unset

https://developer.mozilla.org/en-US/docs/Web/CSS/initial_value