【问题标题】:reset multiple css styles for one single div element为一个 div 元素重置多个 CSS 样式
【发布时间】:2010-11-01 18:40:06
【问题描述】:

我的问题是是否可以为单个 div 重置 css 样式(很多) 以及该 div 中包含的所有元素。

我在问,因为我找到了一个 jquery 语音框的教程,它有它自己的 css 文件。 我不能只将样式复制到我自己的 css 文件中,因为它会破坏已经设置样式的页面的其余部分。

我考虑过使用 divwrapper 并将所有这些重置仅应用于那个。 我只是不确定这是否可能

我只知道这种方式

#divwrapper td{ set styles }

@CHARSET "UTF-8";
/******* GENERAL RESET *******/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody,
 tfoot, thead, tr, th, td {
border:0pt none;
font-family:inherit;
font-size: 100%;
font-style:inherit;
font-weight:inherit;
margin:0pt;
padding:0pt;
vertical-align:baseline;
}

谢谢,理查德

【问题讨论】:

标签: jquery css styles css-reset


【解决方案1】:

试试这个:

div.foo, div.foo *
{
    // your styles
}

这会将样式应用于类为“foo”的div 及其所有后代。星号 (*) 被称为 universal selector,毫不奇怪,它可以选择任何类型的元素。

或者只针对直系子女:

div.foo, div.foo > *
{
    // your styles
}

【讨论】:

  • 我相信他选择了所有后代 [或孩子] 加上 div 的内容
  • 哦,逗号分隔选择器,明白了。我会试试的
  • 逗号后面的空格很重要
  • 是的,空间是必要的。请注意,所有浏览器都支持第一个示例(选择所有后代),而我相信除 IE6 之外的所有浏览器都支持第二个示例(仅选择子级)。
  • 我确实使用了逗号之间的空格。使用 * 或 > * 某些样式会丢失。它不能完全替代上面的 css 代码。我只需要弄清楚这一点,谢谢。
【解决方案2】:

如果可行,您可以将所有内容“重置”在 iframe 中。 iframe 内容不会继承任何内容。

【讨论】:

  • 喜欢??而在 css...#shoutbox{ 重置样式} 你说如果可行的话,这样做有没有缺点
  • 不,iframe 必须使用 href 并指向另一个 html 页面(有自己的头部、正文等。标签之间的内容是不支持框架的浏览器的替代内容(几乎现在没有)。
  • iframe 的缺点是所有内容都在另一个文档中,您无法将任何 iframe 内容移出框架。 Google 可能会将 iframe 内容视为独立页面。优点是你的 JS/CSS 样式不会冲突。
  • iframe 很像辅助窗口(除了不太可能完全脱钩),因此这些 cmets 适用于这两种情况。 iframe 是一个完全独立于包含页面的 CSS 上下文,也是一个大部分独立的 JavaScript 上下文(如果 iframe 显示来自不同服务器的内容,则完全独立)。
【解决方案3】:

正如前面提到的@Noldorin,您需要一个使用通用选择器选择所有后代(或子代)的选择器。

有关选择器的更多信息,请查看 W3C 的文档。 CSS2 选择器信息是here

示例代码(我选择使用 ID 选择器而不是类)来说明:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>CSS Reset</title>

<style>
.red{
    color: red;
}
.blue{
    color: blue;
}
.green{
    color: green;
}

#reset *{
    color: black;
}

#resetc > *{
    color: black;
}

</style>
</head>
<body>
<h1>With Descendant Reset Style</h1>
<div id="reset">
  <div class="red">Red</div>
  <p class="green">Green<span class="blue">Blue</span></p>
</div>

<h1>With Child Reset Style</h1>
<div id="resetc">
  <div class="red">Red</div>
  <p class="green">Green<span class="blue">Blue</span></p>
</div>

<h1>Without Reset Style</h1>
<div>
  <div class="red">Red</div>
  <p class="green">Green<span class="blue">Blue</span></p>
</div>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2016-10-05
    • 2014-08-04
    • 1970-01-01
    • 2014-07-15
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多