一张矢量图使用css来调用矢量图里的N个图标

html-css022

一张矢量图使用css来调用矢量图里的N个图标,第1张

楼主的意思应该是用CSS控制,使几个不同的按钮分别使用同一张背景图里的不同区域来做背景吧?这个技术叫CSS Spirit,具体就是通过background-position属性来定位背景图,示例代码如下:

HTML:

<!DOCTYPE html>

<html>

<head>

  <meta charset='utf-8'>

</head>

<body>

  <ul class="btnBox">

    <li><a href="javascript:" class="btn btn_1"></a></li>

    <li><a href="javascript:" class="btn btn_2"></a></li>

    <li><a href="javascript:" class="btn btn_3"></a></li>

  </ul>

</body>

</html>

CSS:

body{

  background: #27AFDF

}

.btnBox{

  list-style: none

}

.btnBox .btn{

  display: block

  width: 110px

  height: 32px

  background: url('btnBackground.jpg')

  margin-bottom: 20px

}

.btnBox .btn_1{

  background-position: 0px -74px

}

.btnBox .btn_2{

  background-position: 0px -114px

}

.btnBox .btn_3{

  background-position: 0px -154px

}

效果:

示例代码:

需要知道,计算机里面每个字符都有一个unicode编码,比如「我」的unicode是6211(16进制),而字体文件的作用是规定某个字符应该用什么形状来显示。

unicode字符集里面,E000 至 F8FF属于用户造字区。原本是空的,用户可以在字体文件里面随便定义这些字符的形状。我们所见的webfont icon,一般就选在这一部分。

(上面这段讲得可能不专业,大致知道是这么一回事就行。)

要使用自定义字符,大致步骤是:

自己造一个字体文件,把e000所对应的字符形状画上新浪的icon,保存为常用字体文件格式。

在css中使用font-face引用这个字体文件,任意命名(不和已有的重复,比如叫myfonticon)

需要显示图标的地方定义font-family为myfonticon,content属性设为"\e000"。

CSS历史:

从1990年代初HTML被发明开始样式表就以各种形式出现了,不同的浏览器结合了它们各自的样式语言,读者可以使用这些样式语言来调节网页的显示方式。

一开始样式表是给读者用的,最初的HTML版本只含有很少的显示属性,读者来决定网页应该怎样被显示。

但随着HTML的成长,为了满足设计师的要求,HTML获得了很多显示功能。

随着这些功能的增加外来定义样式的语言越来越没有意义了。

1994年哈坤·利提出了CSS的最初建议。

伯特·波斯(Bert Bos)当时正在设计一个叫做Argo的浏览器,他们决定一起合作设计CSS。

当时已经有过一些样式表语言的建议了,但CSS是第一个含有“层叠”的主意的。

在CSS中,一个文件的样式可以从其他的样式表中继承下来。

读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承,或“层叠”作者的样式, 这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合各人的爱好。

哈坤于1994年在芝加哥的一次会议上第一次展示了CSS的建议,1995年他与波斯一起再次展示这个建议。

当时W3C刚刚建立,W3C对CSS的发展很感兴趣,它为此组织了一次讨论会。

哈坤、波斯和其他一些人(比如微软的托马斯·雷尔登)是这个项目的主要技术负责人。

1996年底,CSS已经完成。

1996年12月CSS要求的第一版本被出版。

1997年初,W3C内组织了专门管CSS的工作组,其负责人是克里斯·里雷。

这个工作组开始讨论第一版中没有涉及到的问题,其结果是1998年5月出版的第二版要求。

到2007年为止,第三版还未完备。

使用CSS+DIV的优点

采用CSS+DIV进行网页重构相对与传统的TABLE网页布局而具有以下3个显著优势:

1:表现和内容相分离

将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。

这样的页面对搜索引擎更加友好。

2:提高页面浏览速度 

对于同一个页面视觉效果,采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。

浏览器就不用去编译大量冗长的标签。

3:易于维护和改版

你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。

具体说明请见百度知道CSS发展史.

----------------------------------------------------------------------------------------------

CSS2

样式单自从CSS1的版本之后,又在1998年5月发布了CSS2版本,样式单得到了更多的充实。

CSS2.0是一套全新的样式表结构,是由W3C推行的,同以往的CSS1.0或CSS1.2完全不一样,CSS2.0推荐的是一套内容和表现效果分离的方式,HTML元素可以通过CSS2.0的样式控制显示效果,可完全不使用以往HTML中的table和td来定位表单的外观和样式,只需使用div和 Li此类HTML标签来分割元素,之后即可通过CSS2.0样式来定义表单界面的外观。

CSS2.0提供给我们了一个机制,让程序员开发时可以不考虑显示和界面就可以制作表单和界面,显示问题可由美工或是程序员后期再来编写相应的 CSS2.0样式来解决。

不过由于CSS2.0目前尚未见过很好的编辑软件,所以无法做到所见即所得,编写起来不易。

----------------------------------------------------------------------------------------------

CSS3

CSS3语言开发是朝着模块化发展的。

以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。

这些模块包括:

盒子模型

列表模块

超连结方式

语言模块

背景和边框

文字特效

多栏布局

CSS3选择器

CSS3增加了更多的CSS选择器,可以实现更简单但是更强大的功能,比如:nth-child等。

时间表

几个模块现已完成,包括的SVG (可扩展矢量图形) ,媒介资源类型(Media Queries)和命名,而其他的模块开发工作则仍在进行中。

如果要给出一个预定的日期的话,非常困难,不管怎样,web浏览器将全面支持CSS3的各种新特点,一些新的探索已经开始了。

针对不同浏览器,新的功能是逐渐应用的,仍然需要1-2年的时间,每一个新的模块才有可能被广泛应用。

CSS3将给我带来哪些新的影响

首先,我们希望,这是个正确的方式,CSS3将完全向后兼容,所以没有必要修改现在的设计来让它们继续运作。

网络浏览器也还将继续支持CSS2。

对我们来说,CSS3主要的影响是将可以使用新的可用的选择器和属性,这些会允许你实现新的设计效果(譬如动态和渐变),而且可以很简单的设计出现在的设计效果(比如说使用分栏)。