【问题标题】:Issue with background-position in SASS mixinSASS mixin中的背景位置问题
【发布时间】:2012-11-29 15:31:04
【问题描述】:

我正在创建一个 SASS mixin,它可以让我获取社交媒体图标的 spritesheet 并显示它们,但是当它悬停在背景位置时我遇到了问题,这是 SASS 代码:

@mixin social-button($imgurl,$xpos,$ypos,$height,$width) {
  background-image: url($imgurl);
  background-position: $xpos $ypos;
  display: block;
  float: left;
  height: $height;
  width: $width;    

  &:hover {
    background-position: 0px -$height;
  }

  & span {
    position: absolute;
    top: -999em;
  }
}

我的包括:

a.facebook {
  @include social-button("../img/social-buttons.png",0px,0px,26px,26px);
}

如果您想查看/使用精灵表,我已将其上传到此处:http://i49.tinypic.com/2evtbwp.png

这也是 HTML:

<a class="facebook" href="#"><span>Facebook</span></a>

基本上悬停的 CSS 输出显示如下:

a.facebook:hover {
  background-position: -26px;
} 

在 Firebug 中显示如下:

a.facebook:hover {
    background-position: -26px center;
}

任何帮助都非常感谢,我很困惑我在这一点上做错了什么......谢谢!

附言。我将创建其中的 5 个,所以我不介意创建一个可以为我自动生成的循环,但目前这并不是什么大不了的事,只需要先让悬停工作!

【问题讨论】:

标签: css sass background-image mixins background-position


【解决方案1】:

当您将变量更改为负数时,您必须在变量周围添加括号,否则它只会做数学运算(0px - $height):

background-position: 0px (-$height);

您可能也想修复0px

【讨论】:

  • 太棒了,非常感谢!我也将 0px 切换为 $xpos。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2011-02-08
  • 2018-11-03
  • 2018-10-13
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
相关资源
最近更新 更多