使用可伸缩CSS Spritesheet
Use Scalable CSS Spritesheet
我想为我的图标使用CSS Spritesheet。每个图标图像的大小为48x48px。然而,我希望能够显示任意尺寸的图标。
现在,我使用,显示一个24x24图标,我使用:
<div style="width:24px;height:24px;display:inline-block">
<div class="tab-achievement sprite" style="transform:scale(0.5);transform-origin:0 0"></div>
</div>
有更短的方法吗?例如,通过使用::before
和::after
。
最终,我想要这样的东西:
<div class="img24x24 tab-achievement sprite"></div>
演示目标:用Hello World显示正确的图标。
.sprite {display:inline-block; overflow:hidden; background-repeat: no-repeat;background-image:url(http://puu.sh/nWh8y.png);}
.tab-achievement {width:48px; height:48px; background-position: -48px -48px}
<div>
<div style="width:24px;height:24px;display:inline-block">
<div class="tab-achievement sprite" style="transform:scale(0.5);transform-origin:0 0"></div>
</div> <span>Hello World.</span>
</div>
更新以解决裁剪问题
以下是使用伪元素的解决方案
.sprite:before {
content: ' ';
display: inline-block;
overflow: hidden;
background: url(http://puu.sh/nWh8y.png) no-repeat;
width:48px;
height:48px;
transform-origin:0 0;
}
.sprite:after {
content: attr(data-text);
}
.tab-achievement:before {
background-position: -48px -48px;
}
.tab-locker:before {
background-position: -48px 0;
}
.img24x24:before {
transform: scale(0.5);
}
.img36x36:before {
transform: scale(0.75);
}
<div class="img24x24 tab-achievement sprite">
<span>Hello World.</span>
</div>
<div class="img36x36 tab-achievement sprite">
<span>Hello World.</span>
</div>
<div class="tab-achievement sprite">
<span>Hello World.</span>
</div>
<hr>
<div class="img36x36 tab-locker sprite" data-text="Hello World - pseudo only">
</div>
相关文章:
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- CSS表格:从列平移到整个表格宽度
- CKEditor-我在editor.css中的风格是't
- 单击更改图标并通过javascript添加一个css类
- 将CSS应用于printWindow.print();在Javascript中
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- css(或jQuery)悬停时淡入淡出
- 为什么不'在JQuery中找到第二个css选择器的工作
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- 如何使用css动画/javascript使具有背景图像的元素出现
- 获取HTML属性中CSS声明的值
- 当我更改Joomla时,它仍然从旧域加载CSS和Javascript
- 如何使用css动画从中心增加边界线
- 谷歌图表-如何更改整个表的css属性
- 使用可伸缩CSS Spritesheet