【发布时间】:2013-06-04 13:20:15
【问题描述】:
我的表单有一个默认类,它定义了一些样式规则(scss 格式),如下所示:
form.simple_form {
$indent: 200px;
$length: 350px;
....
}
在某些情况下,我需要将其他样式规则集应用于我的表单,但我无法从中删除 simple_form 默认类(我的应用程序中的每个表单都是使用 simple_form 类创建的)。
幸运的是,我能够为每个表单设置额外的类,并使用 not css 选择器我不能像这样为每个表单应用默认表单类:
form.simple_form:not(.signup, .login) {
$indent: 200px;
$length: 350px;
....
}
这是完美的工作,但由于某种原因,simple_form 类不适用于所有表单,无论他们没有获得 signup 或 login 类。
那么,为什么 css 选择器无法获取带有 simple_form 类的表单呢?更重要的是,如果我在控制台中粘贴以下代码:
$('form.simple_form:not(.signup, .login)')
成功返回表单。
请注意,我使用的是 ruby on rails 和 simple_form gem。
编辑:
这是我要选择的表单的 HTML:
<form accept-charset="UTF-8" action="/webinars" class="simple_form new_webinar" data-remote="true" data-type="js" data-validate="true" enctype="multipart/form-data" id="new_webinar" method="post" novalidate="novalidate">
....
</form>
这是我不想选择的 HTML:
<form accept-charset="UTF-8" action="/sessions" class="simple_form login" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓"><input name="authenticity_token" type="hidden" value="kmDnV10Pv3eQz09U9QKTjfLQ7zweu6teALh4DDjYmfk="></div>
...
</form>
【问题讨论】:
-
请举例说明您希望 CSS 规则匹配的 HTML 以及您希望规则不匹配的 HTML。
-
@jfriend00 我已经编辑了问题并发布了我想要和不想选择的表格。
-
我认为 $('form.simple_form:not(.signup, .simple_form)') 将返回所有表单,甚至是注册。我认为正确的语法是 $('form.simple_form:not(.signup):not(.simple_form)')
-
你测试的是什么浏览器?
-
Chrome(版本 27.0.1453.110)使用 Ubuntu 13.04。我应该支持 CSS3 选择器。
标签: css css-selectors