我需要放置一个48x48的图标作为背景.我的图像精灵中有这个图标,当然还有很多其他图像.
有没有办法只显示图像的背景?
谢谢
编辑:有没有办法在不设置背景元素的宽度高度的情况下做到这一点?(我不确定我是否可以设置宽度 - 高度)
Edit2:这就是我需要的:http://jsfiddle.net/pdxnj/
谢谢
将元素的宽度和高度设置为 48px。
.element{
width: 48px;
height: 48px;
}
Run Code Online (Sandbox Code Playgroud)
将元素的背景设置为您的图像
.element{
background-image: url('image.png');
}
Run Code Online (Sandbox Code Playgroud)
移动背景,使图标的左上角位于正确的位置。
.element{
background-position: 20px 94px;
}
Run Code Online (Sandbox Code Playgroud)
背景位置中的两个数字分别是 X 和 Y 坐标,其中 48 像素 x 48 像素的左上角位于精灵图像中。所以也许它实际上是96px 0px
或者什么。
如果您无法控制要放入背景的元素的宽度和高度,但可以添加新的 DOM 元素,则可以尝试在真正想要将图像作为背景的元素内添加一个跨度。
它看起来像:
<div id="noControl">
<span id="justCreated">
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS 看起来与上面完全相同,只是您需要将内联跨度视为块元素:
#justCreated{
display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)
如果您可以控制新的 DOM 元素,并且想让您的精灵成为背景而不弄乱跨度,只需在原始元素中添加另一个 div 即可。
最终会看起来像:
<div id="noControl">
<div id="justCreated">
ALL of the content that used to be inside #noControl
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
它的 CSS 是
#justCreated{
width: 48px;
height: 48px;
background-image: url('image.png');
background-position: 96px 0px;
z-index: -200;
/* z-index of all the contents needs to be not set, or set to larger than -200 */
}
Run Code Online (Sandbox Code Playgroud)
这都是理论上的,但它应该有效。
这样,您可以将精灵大小调整应用于块元素,而不会弄乱内联内容。如果 CSS 按子状态(如#noControl > a
)来寻址元素,这可能会影响 CSS,因为您在父级和子级之间插入了一个 div。
我仍在研究如果你根本无法控制 DOM,是否可以做到这一点。
归档时间: |
|
查看次数: |
8917 次 |
最近记录: |