【问题标题】:Rule CSS partially applied [closed]部分应用规则 CSS [关闭]
【发布时间】:2014-10-09 22:16:53
【问题描述】:

我有这个代码

<div id="editGridReglas" class=" x-row-editor x-small-editor" style="position: absolute; z-index: 11000; width: 1033px; left: 0px; top: 126px; visibility: visible; ">
    <div class="x-row-editor-header x-unselectable" id="ext-gen296" style="-webkit-user-select: none; ">
    <span class="x-row-editor-header-text">
    </span></div>
    <div class="x-row-editor-bwrap" id="ext-gen297">
        <div class="x-box-inner" id="ext-gen308" style="width: 1033px; height: 22px; ">
            <div id="ext-comp-1083" name="ext-comp-1083" class=" x-form-display-field x-box-item" style="width: 22px; left: 1px; top: 0px; ">
            </div>
            <input type="text" size="20" autocomplete="off" id="ideprodcnt" name="ideprodcnt" 
                class="x-form-text x-form-field x-box-item" style="width: 251px; left: 24px; top: 0px; " title="">
            <input type="text" size="20" autocomplete="off" id="ideplan" name="ideplan" 
                class="x-form-text x-form-field x-box-item" style="width: 251px; left: 276px; top: 0px; " title="">
            <input type="text" size="20" autocomplete="off" id="iderev" name="iderev" 
                class="x-form-text x-form-field x-box-item" style="width: 251px; left: 528px; top: 0px; " title="">
            <div class="x-form-check-wrap x-box-item" id="ext-gen319" style="width: 249px; left: 781px; top: 0px; ">
                <input type="checkbox" autocomplete="off" id="estado" name="estado" class=" x-form-checkbox x-form-field" checked="">
                <label for="estado" class="x-form-cb-label" id="ext-gen320">&nbsp;</label>
            </div>
            <div id="ext-comp-1078" name="ext-comp-1078" class="x-form-display-field" style="width: 22px; left: 1px; top: 0px; ">
            </div>
            <input type="text" size="20" autocomplete="off" id="ideprodcnt" name="ideprodcnt" 
                class="x-form-text x-form-field" style="width: 251px; left: 25px; top: 0px; " title="">
            <input type="text" size="20" autocomplete="off" id="ideplan" name="ideplan" 
                class="x-form-text x-form-field" style="width: 251px; left: 278px; top: 0px; " title="">
            <input type="text" size="20" autocomplete="off" id="iderev" name="iderev" 
                class="x-form-text x-form-field" style="width: 251px; left: 531px; top: 0px; " title="">
            <div class="x-form-check-wrap" id="ext-gen309" style="width: 249px; left: 785px; top: 0px; ">
                <input type="checkbox" autocomplete="off" id="estado" name="estado" class=" x-form-checkbox x-form-field" checked="">
                <label for="estado" class="x-form-cb-label" id="ext-gen310">&nbsp;</label>
            </div>
        </div>
    </div>
</div>

我需要隐藏所有输入在他们的类中没有单词“x-box-item”,除了这个组件:

<input type="checkbox" autocomplete="off" id="estado" name="estado" class=" x-form-checkbox x-form-field" checked="">

这个组件在一个 div 标签内:

<div class="x-form-check-wrap x-box-item" id="ext-gen319" style="width: 249px; left: 781px; top: 0px; ">
                <input type="checkbox" autocomplete="off" id="estado" name="estado" class=" x-form-checkbox x-form-field" checked="">
                <label for="estado" class="x-form-cb-label" id="ext-gen320">&nbsp;</label>
            </div>

我正在使用这个规则 css:

#editGridReglas input:not(.x-box-item){
    visibility: hidden;
}

#editGridReglas div .x-box-item input[type=checkbox]{
    visibility: visible;
}

两个规则都可以正常工作,但无论如何我想知道我是否正确使用了 CSS 规则

[编辑]

在 IE 8 上

#editGridReglas input.x-form-text.x-form-field {
    visibility: hidden;
}

#editGridReglas input.x-box-item {
    visibility: visible !important;
}

#editGridReglas div.x-form-check-wrap.x-box-item input{
    visibility: visible !important;
}

【问题讨论】:

    标签: html css extjs3


    【解决方案1】:

    您可以只使用#estado {visibility:visible;},因为它有一个 ID。如果出现问题,您可以将!important 放在辅助规则中:

    #estado {visibility:visible !important;}

    #editGridReglas div input[type=checkbox]:not(.x-box-item) {visibility:visible !important;}

    如果 ID 是后端的,CSS 将不知道 ID。

    编辑 2:添加第三种方式,来自我下面的评论。

    div.x-box-item input[type=checkbox] {visibility:visible !important}

    这个找到带有 x-box-item 的 DIV 作为一个类,在其中输入复选框,并使它们可见。根据您上面的 HTML,应该可以工作。

    【讨论】:

    • 我忘了提到标识符是参考的,因为在应用程序中是自动生成的。我正在使用 ExtJS,并且正在实现 RowEditor 插件 (dev.sencha.com/deploy/ext-3.4.0/examples/grid/row-editor.html)
    • 我刚刚更新了我上面的回复,看看它是否有效。最后一个。它与您的顶部几乎相同,但请确保它不是 .x-box-item 并且在 div 中并且是一个复选框
    • div.x-box-item input[type=checkbox] {visibility:visible !important} -- 专注于其中的 DIV 和输入复选框。那也行。不确定type=checkbox 是否需要为type='checkbox'(单引号)。
    • 最后,只选择最易读、最容易理解的那个——所以当你在 6 个月后重新审视它时,你不会有“what the #^@#! @#我在这里做什么?!”
    • 这在 IE 7/8 中不起作用 :(
    猜你喜欢
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 1970-01-01
    • 2020-04-08
    • 2013-06-26
    • 1970-01-01
    相关资源
    最近更新 更多