我知道这个线程有点老了,但我问自己是否有一些简单的纯 CSS 和简约 HTML 来更新我使用背景图像作为图标的旧树库,从而跳入了这个问题。
我自己尝试过,我想出了一些符合扁平化设计的东西,今天它正在彻底改变跨设备 UI:
https://jsfiddle.net/landzup/Lzjadp5r/
这只是一个建议或一个起点,但是通过尽可能放大看到页面没有丢失一个像素的分辨率,真是太棒了!(就像矢量图形一样)。
我使用了一个简短的 HTML:
<div class="folder">
<div class="icon"></div>
Programming
</div>
这是CSS:
<style type="text/css">
.folder {
display: block;
position: relative;
top: 0;
left: 0;
margin: 18px 0;
font: 18px helvetica, arial, sans-serif;
text-indent: 27px;
line-height: 34px;
}
.folder .icon {
content: "";
display: block;
float: left;
position: relative;
top: 0;
left: 0;
width: 30px;
height: 30px;
border: 2px solid #999;
background: #ddd;
-moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px;
-moz-transform: scale(1) rotate(0deg) translateX(10px) skewX(10deg);
-webkit-transform: scale(1) rotate(0deg) translateX(10px) skewX(10deg);
-o-transform: scale(1) rotate(0deg) translateX(10px) skewX(10deg);
-ms-transform: scale(1) rotate(0deg) translateX(10px) skewX(10deg);
transform: scale(1) rotate(0deg) translateX(10px) skewX(10deg);
}
.folder .icon::after {
content: "";
display: block;
position: relative;
top: 7px;
left: -6px;
width: 30px; height: 21px;
border: 2px solid #999;
background: #ddd;
-moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; border-radius: 2px;
-moz-transform: scale(1) rotate(0deg) translateX(10px) skewX(-20deg);
-webkit-transform: scale(1) rotate(0deg) translateX(10px) skewX(-20deg);
-o-transform: scale(1) rotate(0deg) translateX(10px) skewX(-20deg);
-ms-transform: scale(1) rotate(0deg) translateX(10px) skewX(-20deg);
transform: scale(1) rotate(0deg) translateX(10px) skewX(-20deg);
}
</style>
它使用 CSS 3 转换,因此您应该考虑您的目标受众是否支持其浏览器。这里有 CSS 转换的 CSS 兼容性表:
http://caniuse.com/#feat=transforms2d