【发布时间】:2013-07-11 14:45:53
【问题描述】:
我正在尝试使用三个背景图像制作一个按钮,以便我们可以提取按钮文本的翻译并很好地展开。我们可能会为 IE8 添加一个基本样式,但我们的设计师希望我们使用这种样式,而我们无法用纯 CSS3 很好地重新创建它。
图片如下:
这是 HTML(只是一个简单的按钮,但我觉得还是应该放它:
<button class="back clickable" aria-label="Back" onclick="javascript:history.back();">Back</button>
我已经尝试了几件事;我将粘贴两次尝试的 CSS。
尝试 1:使用伪选择器
http://jsfiddle.net/c2B6X/
.back {
background: url("images/back-middle.png") 14px 0 repeat-x;
color: $white;
height: 28px;
padding: 5px;
&:before {
background: url("images/back-front.png") 0 0 no-repeat;
width: 14px;
}
&:after {
background: url("images/back-end.png") 100% 0 no-repeat;
width: 8px;
}
}
尝试 2:三个background-images
http://jsfiddle.net/nPUQN/
.back {
background: none;
background-image: url("images/back-middle.png"), url("images/back-end.png"), url("images/back-front.png");
background-position: 14px 0, 100% 0, 0 0;
background-repeat: repeat-x, no-repeat, no-repeat;
border-right: 8px transparent;
border-left: 14px transparent;
color: $white;
height: 28px;
padding: 5px;
}
如果它看起来像非典型 CSS,那是因为我们使用的是 SASS。
有什么明显的我遗漏或做错了吗?任何有关如何完成这项工作的建议将不胜感激。
编辑
由于我得到了这么多“有效”的答案,因此我将在 Chrome、FF 和 IE9 中最有效的答案标记为正确。
编辑 2
我已经尝试了所有答案,但在 IE9 中都没有。我们必须支持 IE9(和 IE8,但我暂时不会去那里)。我要开始赏金了。任何能够提供适用于 IE9、Firefox 和 Chrome 的答案的人都会得到它。
【问题讨论】:
-
希望你看到了这个。 css3.info/preview/multiple-backgrounds
-
为什么将变量命名为
$white?如果您希望颜色为蓝色怎么办? -
在 IE9 中无效。周一回来上班时会再去看看。 :)
-
请注意,多个背景在 IE8 中不起作用。
标签: html css image sass background-image