2012-03-05 58 views
0

我有一个适用于所有表,TD,DIV等重置的外部CSS。 在我的网站,有一个客户模板,允许用户在html中创建他们的愿望内容。CSS选择器异常

在网页中查看此客户模板时,我不想应用以上外部CSS。
所以我把这个客户模板的内容放到一个div中,试图从css中排除这个div和它的所有孩子。

是否有可能编写css选择器来选择所有的表,td,div等...这不是给定div ID的子节点?

以下是我测试的html代码和reset.css div customtemplate的内容是由用户动态输入的。 用户尝试边框= 1到表格,它将所有表格单元格应用于边框1而没有reset.css。 但与重置CSS,没有边框出现。 我的用户不是HTML/CSS专业人士,所以他们会创建简单的html,并期望在他们写入测试页时显示。 如果他们的html在所有浏览器中看起来都不完全相同,则由他们决定。
我对此没有任何责任。我只需要显示他们的div在div中没有​​reset.css。 无论如何解决?

  <html> 
      <head> 
       <link href="reset.css" type="text/css" rel="stylesheet"/> 
      </head> 
      <body> 
       <div class="customtemplate"> 
        <table border="1" cellpadding="10px"> 
         <tr> 
          <td>abcd</td><td>def</td> 
         </tr> 
         <tr> 
          <td>hello</td><td>world</td> 
         </tr> 
        </table> 
       </div> 
       <br><br> 
       <table> 
        <tr> 
         <td>default</td><td>reset</td> 
        </tr> 
        <tr> 
         <td>style</td><td>using</td> 
        </tr> 
       </table> 
      </body> 
      </html> 


      table, td { 
       border: 0; 
       padding: 0; 
      } 

回答

1

正确的方法是为该div定义默认值。重置的CSS可以帮助您避免由浏览器中的不同默认值导致的问题。因此,对于具有给定ID的div,您应该定义一些合理的默认值,这与网站上使用的默认值不同,但仍然可以在每个浏览器上预设为相同的默认值。

例如:

/* reset.css */ 

p { margin: 0; } 

/* yourdefaults.css */ 

#yourdiv p { margin-bottom: 10px; } 
+0

我不能修复客户模板的内容风格。 用户可以自由编写他们渴望的html和内联样式。 他们在测试页面设计他们的html页面的问题,并将html复制到我们的网站。 他们的页面在测试页面看起来不错,但由于我们的重置样式,在我们的站点中没有按预期显示。 我无法知道和限制客户模板的样式,只需要显示它,因为它没有任何外部CSS应用。 – zawmn83 2012-03-06 02:56:47

+0

@ zawmn83你真是该死的。无论你做什么,他们做的事情都没有机会在每个浏览器中显示相同的方式。你需要某种默认设置。例如,他们的HTML可能会以默认的Chrome显示,但IE8的默认设置可能是垃圾。你应该强制包含你的CSS,否则你将会一直被诅咒。 – kapa 2012-03-06 08:22:31

+0

感谢您的回复,我编辑了我的问题以包含示例代码。请检查并帮助 – zawmn83 2012-03-06 10:54:12