CSS选择器异常

时间:2012-03-05 11:07:38

标签: css css-selectors css-reset

我有一个外部css用于重置,适用于所有表,td,div等。 在我的网站中,有一个客户模板,允许用户以html格式创建他们想要的内容。

在网页中查看此客户模板时,我不想申请上述外部css 所以我将这个客户模板内容放入div中,并试图从css中排除这个div及其所有孩子。

是否可以编写css选择器来选择所有表,td,div等...这些不是给定div id的子代?

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

            <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 个答案:

答案 0 :(得分:1)

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

例如:

/* reset.css */

p { margin: 0; }

/* yourdefaults.css */

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