【发布时间】:2015-07-23 09:31:44
【问题描述】:
我不太确定这是否是一个问题,或者是否可以完成。我什至不确定我应该用谷歌搜索是否可以完成/如何完成。
我想要做的是有一个与父类具有相同类选择器的子类。我已经在 Less 和 CSS(见下文)中做到了这一点,但我认为这不是最干净的方法。有没有更好或更简洁的方式来“重用”类选择器?
有问题的选择器是
.r-slide-right-10 .r-slide-right-10 { ... }
我有以下 Less 代码
.r-slide-right-10 {
@media @default-media-small {
.SlideUp(75);
.r-slide-right-10 {
.SlideUpNoOffset(75);
}
}
@media @default-media-medium, @default-media-large {
.SlideRight(10);
.r-slide-right-10 {
.SlideRightNoOffset(10);
}
}
}
生成以下 CSS
@media only screen and (max-width: 40.063em ) {
.r-slide-right-10 {
height: 75vh;
bottom: -76vh;
}
.r-slide-right-10.r-active {
-webkit-transform: translate(0, -75vh);
-moz-transform: translate(0, -75vh);
transform: translate(0, -75vh);
}
.r-slide-right-10 .r-slide-right-10 {
height: 75vh;
bottom: -75vh;
}
.r-slide-right-10 .r-slide-right-10.r-active {
-webkit-transform: translate(0, -75vh);
-moz-transform: translate(0, -75vh);
transform: translate(0, -75vh);
}
}
@media only screen and (min-width: 40.063em ), only screen and (min-width: 64.063em ) {
.r-slide-right-10 {
width: 10vw;
right: -11vw;
}
.r-slide-right-10.r-active {
-webkit-transform: translate(-10vw, 0);
-moz-transform: translate(-10vw, 0);
transform: translate(-10vw, 0);
}
.r-slide-right-10 .r-slide-right-10 {
width: 10vw;
right: -10;
}
.r-slide-right-10 .r-slide-right-10.r-active {
-webkit-transform: translate(-10vw, 0);
-moz-transform: translate(-10vw, 0);
transform: translate(-10vw, 0);
}
}
【问题讨论】:
-
如果这行得通,我不会担心,但如果这些总是第一级的孩子,你可能要考虑使用 ">" css 选择器。
-
不管类是否相同,它仍然是父级的子级,因此 LESS/对应的 CSS 与我在这种情况下所期望的一样。
-
它确实按我的意图工作,我不希望 CSS 变得更干净。但我想知道我是否可以至少有一些更干净的 LESS 代码 :) Harry 在下面为我回答了这个问题。如果他们是一级孩子,在这种情况下使用“>”是正确的,但情况并非总是如此:)
标签: css html less media-queries