CSS:"display:auto;"?

jam*_*her 33 css

auto几个CSS属性提供的选项非常有用.但是,该display属性似乎没有.我希望这可以display根据标签将属性设置为浏览器默认值; 例如,a <div>会重置为display: block;,但是<span>会重置为display: inline;.

  1. 有没有display: auto相同的我错过了?
  2. 如果没有,为什么不呢?
  3. 什么是最优雅的解决方法?(我正在以编程方式工作,特别是使用jQuery.)

thi*_*dot 31

你应该使用:

$('element').css('display','');
Run Code Online (Sandbox Code Playgroud)

根据当前的CSS级联,这将设置display为默认值element.

例如:

<span></span>

$('span').css('display','none');
$('span').css('display','');
Run Code Online (Sandbox Code Playgroud)

将导致spandisplay: inline.

但:

span { display: block }

<span></span>

$('span').css('display','none');
$('span').css('display','');
Run Code Online (Sandbox Code Playgroud)

将导致spandisplay: block.

这不是问题:事实上,它几乎总是理想的结果.

  • 呃,真的.但是,并不完全相同,因为它从元素中删除了属性,允许应用较少的特定规则,而不是使用浏览器默认值覆盖这些规则.例如,我有一个{display:block; 在样式表中,我希望`<a style="display:auto;">`将其设置为`inline`. (3认同)

Mil*_*bey 21

在CSS3中,有一个初始值.也许试试吧display: initial;


Bal*_*Ben 3

您正在寻找display: revert,这与它类似,unset只是它保留了用户代理默认样式表\xe2\x80\x99s 样式。

\n