css - 将 SASS 占位符用于多色菜单

标签 css sass

我有一个包含 4 个元素的菜单。这 4 个元素中的每一个都应该有相似的颜色并且在悬停时表现相同,除了每个元素的基础颜色应该不同。

我认为我可以在 SASS 中做到这一点,所以我创建了一个 mixin:

@mixin boxmenuitem($color:#D49A15) {
background-color: lighten($color, 20%);;
@include background-image(linear-gradient($color, darken($color, 10%)));
&:hover {
    background-image: none;
    li {
        background-image: none;
        &:hover {
            background-color: darken($color, 10%) ;
        }
    }
  } 
}

我这样应用它(删除了所有不相关的菜单代码):

.menu-class {
ul {
    li {
        @include boxmenuitem;
        &:last-child {
            @include boxmenuitem(#ff0000);
        }
    }
   }
}

但是,这也会影响每个子菜单 li:last-child。

我可以重新安排它以正确应用它吗?

我一直在寻找我可以做的事情:

li {
   @include boxmenuitem;
   &:nth-child(1) {
       @include boxmenuitem(blue);
   }
   &:nth-child(2) {
       @include boxmenuitem(green);
   }
   ...etc...

}

最佳答案

也许你想使用CSS的直接子选择器> .

https://developer.mozilla.org/en-US/docs/Web/CSS/Child_selectors

关于css - 将 SASS 占位符用于多色菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16762333/

相关文章:

css - Zurb 的 Foundation 4 如何计算 Typography?

css - 瞄准未隐藏的第一个 child

css - 如何修复 @each 指令的 SCSS 编译错误?

html - 左流体 div,中心拉伸(stretch)到最大宽度 div,右流体 div

javascript - 隐藏和显示错误

css - Parcel React 16 和基于组件的 SCSS

sass - 如何在 SCSS 变量中存储 data-attr 值?

ios - iphone 的 css3 大小转换

jquery - 在文档加载事件的类上添加图像

html - HTML5 和 CSS3 中类似杂志的水平滚动