我试图减轻我的CSS文件的重量,并有一个问题。这有点难以解释,所以为了简化问题,想象一下这个(虚构的)场景。css3动态背景图片url
想象一下,我拥有一家电器商店,并出售电视机,收音机和DVD播放器。此外,我只销售松下,索尼,三星和NEC生产的产品。
四家制造商中的每一家都有自己的图片,三个电器项目中的每一个都展示了不同作物的图像,纵横比等等(要点是,我不能在不同产品上使用相同图像,只是重新缩放。是独立的图像)
到目前为止,我对我的产品网站的CSS看起来像这样
/* TVs */
a.tv.panasonic { background:url('/images/television/panasonic.jpg'); }
a.tv.sony { background:url('/images/television/sony.jpg'); }
a.tv.samsung { background:url('/images/television/samsung.jpg'); }
a.tv.nec { background:url('/images/television/nec.jpg'); }
/* Radios */
a.radio.panasonic { background:url('/images/radio/panasonic.jpg');}
a.radio.sony { background:url('/images/radio/sony.jpg');}
a.radio.samsung { background:url('/images/radio/samsung.jpg');}
a.radio.nec { background:url('/images/radio/nec.jpg');}
/* DVD Players */
a.dvd.panasonic { background:url('/images/dvd/panasonic.jpg');}
a.dvd.sony { background:url('/images/dvd/sony.jpg');}
a.dvd.samsung { background:url('/images/dvd/samsung.jpg');}
a.dvd.nec { background:url('/images/dvd/nec.jpg');}
这是只活了十二风格,不是什么大不了的事,但在现实中,我们大约有12个不同的“产品“和大约80个不同的”制造商“,这很难管理,特别是考虑到”制造商“的形象经常改变。另外,我没有可用的服务器端语言。
因此,我的问题是这样的。是否有可能从两个规则合并图像URL?例如,我可以做类似如下:
a.tv { background:url('/images/television'); }
a.radio { background:url('/images/radio'); }
a.dvd { background:url('/images/dvd); }
a.panasonic { background:url(background + '/panasonic.jpg'); }
a.sony { background:url(background + '/sony.jpg'); }
a.samsung { background:url(background + '/samsung.jpg'); }
a.nec { background:url(background + '/nec.jpg'); }
这样,每次我们得到了一个新的“制造商/产品”或生产厂家改变形象的时候,我只需要编辑/修改一行
感谢
我知道你没有服务器端的功能,但你可以使用Javascript/jQuery?这将是非常简单的与jQuery –
为什么不jQuery? – theMarceloR
只能使用CSS预处理器,如SASS。但是,如果你有这么多选项,请帮忙,不要为样式表添加规则,使用内联样式添加背景图片,这将严重减轻样式表。即使预处理器只会使语法更容易管理,.css样式表的最终权重也不例外。 – Adam