【发布时间】:2010-12-28 07:15:00
【问题描述】:
有什么方法可以应用一种可以有效阻止 为该对象应用任何应用或继承的样式和任何 包含对象?
【问题讨论】:
标签: asp.net javascript css
有什么方法可以应用一种可以有效阻止 为该对象应用任何应用或继承的样式和任何 包含对象?
【问题讨论】:
标签: asp.net javascript css
没有。您必须覆盖在其上设置的所有其他属性。
【讨论】:
编写一个样式类,即 clearall 将您需要的所有属性覆盖为您想要的默认值。即
.clearall { 显示:块; 明确:两者; 高度:1px; 边距:0 0 0 0; ... }
现在,您可以使用该类来
<div class"clear">
<div class="awesome"> ..
</div>
</div>
<div class"clear">
<div class="woooow"> ..
</div>
</div>`
所以现在每次需要重置样式时,都可以使用该类
【讨论】:
我建议在您的 CSS 代码末尾添加一个完整的重置代码,例如 the one from Eric Meyer。
它应该负责擦除大部分内容,之后您可以添加自己的代码。
【讨论】:
您始终可以在元素上调用 !important 来覆盖特异性继承。
.wrapper p{color:red; background:blue;}
.wrapper div p{color:blue !important; background:none !important;}
【讨论】:
实际上 - 不...但是您可以尝试使用 jQuery 来实现此目的。
$('.class').removeClass().removeAttr('style');
它应该从匹配元素中删除所有类并清除样式属性。虽然,它未经测试 +)
【讨论】:
如果您想为测试/调试目的执行此操作,请查看Firefox Web Developer add-on。它具有删除整个页面或单个元素及其包含的元素的 CSS 或在查看页面时动态更改 CSS 的功能。
如果您正在寻找适合生产使用的良好 CSS 重置,请查看 Tripoli。这是一组 CSS 样式,它将每个浏览器中的默认呈现重置为相同的公共基础,用作应用您自己的样式的起点。周围还有许多其他 CSS 重置,但 Tripoli 是我个人最喜欢的。
【讨论】:
没有一个 CSS 属性可以关闭所有其他 CSS 属性。您必须将每个属性设置为您想要的任何值(对于某些 CSS 属性,例如 font-family,没有“关闭”值 - 文本必须以某种字体呈现)。
至于“那个对象和任何包含的对象”(强调我的),* 选择器选择所有元素。因此,您的 CSS 规则可能如下所示:
.turn-off-all-styles,
.turn-off-all-styles * {
/* Disable every CSS property here */
}
正如其他人所提到的,请查看 Eric Meyer’s CSS reset 以获得将所有 CSS 属性设置为默认值的一个很好的示例。如果您在每个值之后添加!important,那应该会阻止其他 CSS 规则干扰此样式,例如
.turn-off-all-styles,
.turn-off-all-styles * {
margin: 0 !important;
...
}
【讨论】: