使用CSS多个组合器的最短方法是什么?

使用CSS多个组合器的最短方法是什么?,css,css-selectors,Css,Css Selectors,我想为所有输入设置样式,并以某种方式从某个div中进行选择。我知道我能做到 #divNew select { display:table-cell; margin-left:1em; } #divNew input { display:table-cell; margin-left:1em; } 我也可以做2个 #divNew select,#divNew input { display:table-cell; margin-left:1em;

我想为所有输入设置样式,并以某种方式从某个div中进行选择。我知道我能做到

#divNew select {
    display:table-cell;
    margin-left:1em;
}
#divNew input {
    display:table-cell;
    margin-left:1em;
}
我也可以做2个

#divNew select,#divNew input {
    display:table-cell;
    margin-left:1em;
}
我知道我做不到3

#divNew select,input {
    display:table-cell;
    margin-left:1em;
}
因为3将此样式应用于所有输入,包括新的内部和外部输入


我的问题是:这就是它的全部吗?我更喜欢较短的选项2,但我觉得应该取消多余的新选项。它能比2更短吗?

您的选项2是在一组选择器之间共享声明的正确方式。像您的3这样的容器嵌套不受支持,但类似的东西已经得到了支持


您可能会发现诸如sass之类的CSS预处理工具对简化样板文件的帮助不大,但代价是在构建管道中添加一个步骤。尽管现在大多数前端框架已经在本地包含了类似的CSS预处理器。

您的选项2是在一组选择器之间共享声明的正确方式。像您的3这样的容器嵌套不受支持,但类似的东西已经得到了支持


您可能会发现诸如sass之类的CSS预处理工具对简化样板文件的帮助不大,但代价是在构建管道中添加一个步骤。尽管现在大多数前端框架已经在本地包含了类似的CSS预处理器。

为什么2很难看?如果您只是从可读性的角度来看,为什么不使用css预处理器呢?选项2比选项1更常见,尽管通常每个元素都在自己的行上,即每个逗号后都有一个硬回车符,尽管这是惯例而不是标准。不过,如果您想找到更优雅、更易于维护的样式表,可以尝试查看“请将html共享为”well@karthick因为它添加了一个冗余的div。我也不太喜欢大项目,所以不需要另一层的复杂性。@NagaSaiA这只是一个简单的问题,关于一个琐碎的css结构,但我找不到,因为缺少正确的关键字。你不能把html抽象出来吗?即使这个问题已经得到了回答。为什么2是丑陋的?如果您只是从可读性的角度来看,为什么不使用css预处理器呢?选项2比选项1更常见,尽管通常每个元素都在自己的行上,即每个逗号后都有一个硬回车符,尽管这是惯例而不是标准。不过,如果您想找到更优雅、更易于维护的样式表,可以尝试查看“请将html共享为”well@karthick因为它添加了一个冗余的div。我也不太喜欢大项目,所以不需要另一层的复杂性。@NagaSaiA这只是一个简单的问题,关于一个琐碎的css结构,但我找不到,因为缺少正确的关键字。你不能把html抽象出来吗?即使这个问题已经得到了回答,提案也被接受了,而且已经有了初稿:但它与3完全不同。更接近3的是:是伪的。这也是多年前以其原始形式出现的。我忘了,这是一个很好的答案,很可能应该被接受。这个建议被接受了,而且已经有了初稿:但它与3完全不同。更接近3的是:是伪的。这也是多年前以其原始形式出现的。而且它还不能跨浏览器使用。@BoltClock我忘了,这是一个很好的答案,应该被接受。