CSS 选择输入,其中父级不是 'classname'

标签 css css-selectors

我的样式表中有这条规则:

input:not([type='button']):not([type='submit']):not([type='checkbox']):not([type='radio']),
select {
    padding:8px;
    width:224px;
    border:1px solid #CCC;
    border-radius:5px;
}

这针对我页面上的所有文本字段,但我需要防止它影响具有特定类的元素内的输入。我正在使用 ckeditor,并且不需要影响它创建的对话框中的字段 - 这意味着我不能随后覆盖规则。

我尝试添加 :not(.cke_editor_pageContent_dialog input) 但由于明显的原因这不起作用。我似乎无法在任何地方找到这个问题的答案

最佳答案

正确的方法可能是采用“白名单”方法而不是“黑名单”方法(告诉浏览器选择什么)。

一方面,它避免了您遇到的问题。另外, :not() 选择器在 IE8 或更低版本中不起作用(不确定这是否重要)。最后(只是猜测)我必须相信复杂的 :not 语句的评估成本更高。

我建议在相关元素上放置显式类名,或者更好的是,将所有非编辑器元素包装在一个元素内并将其用作样式容器。

<div class="myStyles">
    <!-- elements that should be styled -->
    <input type="text" />
</div>

.myStyles input[type="text"]{
    padding:8px;
    width:224px;
    border:1px solid #CCC;
    border-radius:5px;
}

我意识到这可能需要更多标记,但从长远来看可能会更容易维护。

关于CSS 选择输入,其中父级不是 'classname',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153072/

相关文章:

javascript - css 不计算 iPhone 上的所有内容

php - 不同页面的字体大小变化

javascript - 在类(class)中选择类(class)

html - 使用第 n 个子元素在 css 中选择元素

css - 如何更改我的 GWT 列表框样式

CSS:仅在某些出现的 div 上使用 first-of-type

javascript - 突出显示图像区域 - 单击链接时

jquery - 将文本附加到类名称的末尾,以表明 jQuery 正在利用这些类

javascript - 如何使用 Javascript/Jquery 在其他 div sibling 中选择第一个 div

javascript - 这个 jQuery 选择器非常慢。为什么?