2014-10-20 30 views
0

我目前有一个小问题,但我认为这是不可能的只有css3,我想从title属性获取图像名称,并在背景图像网址,像这样:CSS使用标题文本来获取背景图片url

#wizHeader li a[title^="step_"]{ 
    background-image: url("../images/" + attr(title) + ".png"); 
} 

这是可能的只有css3?

+0

没有那不是可以用CSS3,你必须写在页面加载JS一些,并有此行为。 – Ananth 2014-10-20 11:48:14

+0

CSS3完全可能... [但现在没有一个浏览器支持'在内容和非字符串值之外的其他属性中的使用'](https://developer.mozilla.org/en-US/文档/网络/ CSS/ATTR#Browser_compatibility)。 – 2014-10-20 11:52:22

回答

2

目前不可能。 CSS中的attr函数具有很大的潜力,但就我所知,至少是跨浏览器的,它目前仅可用作伪元素的content属性的一部分,例如,

.foo:after { content: attr(title); } 

更多信息at this question

here on CSS Tricks

0

如果你使用jQuery:

$(document).ready(function() { 
    $('#wizHeader li a[title^="step_"]').each(function(k, v) { 
     var title = $(v).attr('title'); 
     $(v).attr('style', 'background-image: url("../images/' + title + '.png")'); 
    }); 
}); 
+2

一个合理的解决方法,但问题没有提到jQuery或JavaScript。 – Utkanos 2014-10-20 11:51:34

+1

嗯是的,但是这不是一个普通的“不,你不能用css3做”吗? – Ananth 2014-10-20 11:52:21

+0

取决于。问题是关于使用CSS来做,所以答案虽然不是好消息,但是你不能。建议替代方法很好,但评论意见就是这样。 OP没有表明他愿意使用JS。 – Utkanos 2014-10-20 11:53:32