有没有办法压缩这个css选择器?
form#fiche-node-form.node-form input#edit-field-address-und-0-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-1-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-2-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-3-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-4-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-5-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-6-name.form-text,
form#fiche-node-form.node-form input#edit-field-address-und-7-name.form-text, {
width: 493px;
}
我会为我节省一大堆代码!
修改
以下是我需要以尽可能少的代码压缩的完整CSS:
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-0-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-0-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-1-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-1-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-2-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-2-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-3-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-3-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-4-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-4-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-5-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-5-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-6-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-6-naam.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-7-naam.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-7-naam.form-text {
width: 493px;
}
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-0-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-0-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-1-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-1-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-2-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-2-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-3-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-3-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-4-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-4-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-5-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-5-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-6-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-6-straat.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-7-straat.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-7-straat.form-text {
width: 352px;
}
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-0-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-0-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-1-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-1-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-2-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-2-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-3-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-3-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-4-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-4-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-5-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-5-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-6-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-6-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-7-gemeente.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-7-gemeente.form-text {
width: 362px;
}
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-0-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-0-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-1-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-1-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-2-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-2-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-3-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-3-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-4-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-4-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-5-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-5-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-6-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-6-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-bevoegde-adressen-und-7-postcode.form-text,
form#fiche-node-form.node-form input#edit-field-afl-dienst-adressen-und-7-postcode.form-text {
width: 100px;
}
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-0-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-0-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-0-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-0-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-1-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-1-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-1-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-1-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-2-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-2-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-2-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-2-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-3-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-3-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-3-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-3-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-4-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-4-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-4-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-4-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-5-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-5-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-5-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-5-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-6-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-6-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-6-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-6-telefoon,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-7-straat,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-7-nr,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-7-postcode,
form#fiche-node-form.node-form div.form-item-field-afl-dienst-adressen-und-7-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-0-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-0-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-0-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-0-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-1-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-1-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-1-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-1-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-2-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-2-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-2-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-2-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-3-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-3-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-3-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-3-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-4-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-4-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-4-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-4-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-5-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-5-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-5-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-5-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-6-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-6-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-6-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-6-telefoon,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-7-straat,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-7-nr,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-7-postcode,
form#fiche-node-form.node-form div.form-item-field-bevoegde-adressen-und-7-telefoon {
float: left;
margin-right: 20px;
}
答案 0 :(得分:3)
答案完全取决于你的标记。首先,如果您已经在使用ID,则不需要使用元素名称或类名来限定它,因为只有一个元素可能具有该ID。所以form#finche-node-form
与#fince-node-form
是一回事,因为永远不会有该ID的元素不是表单。
#finche-node-form.node-form
是有意义的,如果你只想在表单有该类时应用样式,或者当它有另一个类时可能是另一种样式。但是,如果您的表单始终具有该类,或者您始终希望将该样式应用于表单,则无论是否具有该类,您都只能使用#finche-node-form
。
其余代码选择8个不同的输入字段。他们可以说同样的事情。 #input#edit-field-address-und-6-name.form-text
可以安全地减少到#edit-field-address-und-6-name
。
现在,如果你能找到一种方法来定位所有8个字段,而不为每个字段编写单独的选择器,那么真正的节省空间将是你在这里拥有的。这完全取决于你的标记是什么样的。如果这8个字段恰好是表单中唯一的输入字段,那么您可以使用#finche-node-form input
。或者,如果还有其他元素,但只有这8个元素具有form-text
类,则可以使用#finche-node-form .form-text
。
如果您要执行的操作实际上是将此样式应用于 .form-text
的所有实例,那么您只需编写
.form-text { width: 493px; }
所以这一切都取决于您的实际要求。您粘贴的那个伟大的长选择器没有一件我们可以知道以便安全删除。我们可以假设是安全的,但只有你可以知道标记的哪些部分可以改变,以及你希望你的风格如何表现。
你的选择者应该表达你的意图。您当前的选择器使读者认为您只想定位元素的特定子集,仅在特定形式内,并且不应始终应用该样式,而是仅在表单具有某个类的可能罕见的情况下,并且输入有另一个特定的类。如果这实际上是你的意图,那么当前的选择器也许并不那么糟糕。当你的CSS选择器使代码比添加内联样式更冗长时,你应该停下来思考一下事情(虽然更容易改变,所以嘿)。
如果您要向读者传达您的代码(另一个开发人员或浏览器)实际上只是“嘿,我只想确保此表单中的所有输入都具有此宽度”,那么这就是您的选择器应该表达。
<强>更新强>
好了,现在我们已经看到了你完整的CSS代码,我们可以验证有几个不同样式的.form-text
不同的实例,所以将一个样式应用于该类的所有元素显然都是问题。
其他一些问题:
#finch-node-form
除表格外还有其他什么吗?否则,您可以从每个选择器中删除选择器的初始form
部分。#finch-node-form
是否曾发生类node-form
?如果没有,您可以从所有选择器中删除.node-form
。<div>
元素不具有浮动和边距?如果没有,您可以将整个最后一个选择器缩减为form#finche-node-form.node-form div
或#finche-node-form div
。
div
字段是否还有其他独特之处?例如,如果有很多div
s,但上述选择器中的目标仅那些是该表单的直接子项,并且 no 其他div
,你可以写#finche-node-form > div { ... }
#finche-node-form > div:first-child > .form-text { ... }
(例如)。最重要的是:正在编辑HTML吗?否则,您可能只是介绍新类,并将样式应用于它们
#finche-node-form .width100-text-fields { width: 100px; }
(这是一个糟糕的类名,但你明白了)
答案 1 :(得分:2)
您可以使用attribute starts with selector:
form#fiche-node-form.node-form input[id^="edit-field-address-und"].form-text {
width: 493px;
}
我假设您没有任何其他元素的ID也以edit-field-address-und
开头。
答案 2 :(得分:1)
使用CSS预处理器,例如LESS:
form#fiche-node-form.node-form input {
&#edit-field-address-und-1-name,
&#edit-field-address-und-2-name,
&#edit-field-address-und-3-name,
&#edit-field-address-und-4-name,
&#edit-field-address-und-5-name,
&#edit-field-address-und-6-name,
&#edit-field-address-und-7-name {
&.form-text { width: 493px; }
}
}