`
冷静
  • 浏览: 146065 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

HTML中用自定义字体实现小图标icon

 
阅读更多

最近在做一个项目时, 研究了一下新浪微博的前端, 看到首页中那个图标了吗, 以前看到这类效果的第一反应就是用一个gif之类的图标做出来!!

但在研究的过程, 发现了一个小技巧, 注意那个em标签中的文本是E, 但显示出来一个类似ICON的图标. 

 

既然是HTML+CSS写出来的, 那么应该是由css控制显示出来的效果的.

 

 

其他的一些css基本没什么问题, 都理解了, 但只有这个 font-family, 强制设置成了 "wbficonregular", 一般操作系统里应该没这个命名的字体吧!!

又乱点了一下谷歌的调试器, 发现有加载字体文件的!! 而且在其中一个字体文件中, 发现和首页图标一样形状的东西!! 

 

 

百度一下, woff是一种字体文件!! 

于是我就想 应该也有软件可以制作自己的字体文件吧. 百度一下, 找到了名为 FontCreator 的软件!! 

 

文件 -> 新建 

 

字符集 , 字体样式 和 预定义轮廓我都按默认值弄,  其中预定义轮廓 选 包括轮廓, 是让新建的字体文件默认就有几个字符的了, 一般我都直接修改就行了!! 

例如我把 数字字符0 修改一下 在数字字符0 上右键-> 编辑

 

在出现的窗口, 点0的正中间 就可以拖动选框, 修改它的形状 (只为做实例)

=>

好了, 保存!! 

 

接下来, 把刚刚做的字体用到html编写中去!! 

 

只是做个实例, 还是把css写到html中吧

 

谷歌浏览器的效果

 

这个时候不要想完工了, 用万恶的IE打开看看

 效果出不来?? 百度一下css自定义字体的兼容问题

来源 http://www.w3cplus.com/content/css3-font-face

一、TureTpe(.ttf)格式:

.ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;

二、OpenType(.otf)格式:

.otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;

三、Web Open Font Format(.woff)格式:

.woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;

四、Embedded Open Type(.eot)格式:

.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有【IE4+】;

五、SVG(.svg)格式:

.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】。

这就意味着在@font-face中我们至少需要.woff,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。

(这里, 我小小偷了一下懒, 我还是用ttf, 因为我还没找一个好点的ttf转woff的软件)

 

这其中, ttf 转eot, 需要一个小软件, 下载地址 http://download.csdn.net/detail/u010488325/6235387

 在f.ttf旁边就多了一个f.eot, 

 

用css hack把f.eot文件加进之前的字体引用中

看效果 

 

总结一下, 

用这种方法给一些a标签 ul中的li标签 加一个icon, 其实很方便的, 而且只要制作的字体文件内容不多, 它的大小也就几k吧, 有些情况下相对于图片的icon好一些.

另外, 这种方法做的icon, 只能是纯色的, 像一些icon是有渐变效果的, 还是用图片会好一些啰, 这个在开发的时候自行衡量呗!! 

分享到:
评论

相关推荐

    修改Unity3D中的自定义字体1

    在Unity3D中,自定义字体的修改通常涉及到游戏界面UI的个性化设计,以便提高用户体验。本文将详细解释如何在Unity3D中导入和修改自定义字体,以及使用脚本保存字体纹理。 首先,我们需要做的是导入字体。在Unity3D...

    浅谈Android中用自定义View实现折线图.pdf

    自定义View的实现对于Android应用开发来说是一个高级技巧,它不仅需要对Android图形绘制API有深入的理解,还需要一定的图形学知识。通过自定义View,开发者可以灵活地实现各种复杂的图形界面,满足不同的业务需求。...

    C# 自定义控件 实现可伸缩的Panel控件

    本教程将深入探讨如何创建一个可伸缩的Panel自定义控件,该控件具备自由扩展缩进的功能,并能实现多个Panel间的联动伸缩。 首先,我们需要了解.NET Framework或.NET Core中的UserControl类,它是所有自定义控件的...

    vb icon图标大全

    "vb icon图标大全"提供了丰富的图标资源,对于VB开发者来说,这是一个宝贵的素材库,可以方便地在自己的项目中引用这些图标,提升应用的用户体验。 图标在VB中的使用涉及到以下几个关键知识点: 1. 图标资源:图标...

    Android自定义View实现微信语音界面

    "Android自定义View实现微信语音界面" Android自定义View是Android开发中一个非常重要的知识点,它可以让开发者自定义控件的外观和行为,实现更加灵活和丰富的用户界面。在本文中,我们将详细介绍如何使用Android...

    EXCEL中用自定义函数分别提取超级链接的文字和链接

    EXCEL中用自定义函数分别提取超级链接的文字和链接,非常方便实用。用到VBA的简单语句。

    开发 小图标 开发 小图标

    在软件开发领域,小图标(通常称为Icon)是不可或缺的一部分,它们用于表示应用程序、功能、文件类型等。在本文中,我们将深入探讨16x16像素的小图标开发过程,以及如何利用像Coolite这样的工具来创建和优化这些图标...

    android中用到透明背景的小图标

    其中,小图标作为界面元素的一部分,常常用于表示各种功能、状态或者导航指示。透明背景的小图标在Android中尤其受欢迎,因为它们能够更好地融入各种颜色的主题背景,提供更统一且专业的视觉效果。下面将详细探讨...

    在Android中用textview实现简单的小说分页

    本文将深入探讨如何使用TextView在Android环境中实现这一功能,同时考虑到字体大小的调整以及字符串处理的灵活性。 首先,TextView是Android SDK中一个核心组件,它用于显示单行或多行文本。在我们的场景中,...

    icon图标 点击反应CSS3特效

    CSS3允许我们直接在网页中用纯CSS创建图标,例如使用`content`属性结合`::before`或`::after`伪元素插入Unicode字符,或者利用`@font-face`规则引入自定义字体库,如Font Awesome或Ionicons。 接着,我们关注CSS3的...

    powerbi desktpo自定义可视化图标(pbiviz文件可直接导入使用).zip

    自定义可视化(pbiviz文件)是Power BI中用来导入和使用这些特殊图表的格式。每个.pbiviz文件都包含了特定的JavaScript代码、样式和资源,用于构建独特的数据呈现方式。使用这些自定义可视化,你可以根据业务需求...

    Android:自定义View实现随滑动由箭头变对勾的指示按钮

    本篇文章将深入探讨如何实现一个名为"MagicButton"的自定义View,该按钮在用户滑动时能从箭头形态平滑过渡到对勾形态,为用户提供一种直观的反馈机制。 首先,我们需要创建一个新的Java类,继承自`View`或`Button`...

    Android自定义View实现屏幕手写签名

    本示例中的“Android自定义View实现屏幕手写签名”是一个很好的实践,它涉及到了多个关键知识点,包括自定义View的创建、canvas画布的使用、手势识别以及动态权限管理。下面我们将详细讨论这些知识点。 1. **自定义...

    实际项目中java自定义异常

    在实际的Java开发项目中,自定义异常是提高代码可读性和可维护性的重要手段。异常处理是程序设计的关键部分,它有助于捕获并处理在程序执行过程中可能出现的错误或异常情况。Java提供了丰富的异常处理机制,包括预...

    JSP GridView --使用自定义标签实现ASP.NET的控件

    JSP GridView 是一个在Java服务器页面(JSP)中用于数据展示的强大组件,它类似于ASP.NET中的GridView控件。在ASP.NET中,GridView是用于显示数据集或数据源的常用控件,支持多种操作,如排序、分页、编辑和删除。在...

    Oracle中用GROUPING SETS分组自定义汇总

    `GROUP BY`语句是实现这一功能的基础,但默认情况下,它只提供单级的汇总信息。为了获取多级或自定义的汇总,我们可以使用`GROUPING SETS`功能,它提供了更灵活的分组方式,同时避免了不必要的计算,提高了SQL查询的...

    java自定义标签、自定义函数、taglib

    至于`taglib`,它是Java Web应用中用来定义和管理自定义标签和函数的机制。TLD文件就是taglib的一部分,它提供了标签库的元数据,使得IDE和服务器能够识别并正确处理自定义标签和函数。 总结来说,自定义标签和函数...

    pb中用DataWindow实现对多表的修改.doc

    pb中用DataWindow实现对多表的修改;pb中用DataWindow实现对多表的修改;pb中用DataWindow实现对多表的修改;pb中用DataWindow实现对多表的修改;pb中用DataWindow实现对多表的修改;pb中用DataWindow实现对多表的修改;pb...

    C#自定义进度条大全

    本文将深入探讨如何在C#中实现各种自定义进度条,包括圆滑的、多边形的等不同设计样式,并提供相关的控件和实例。 一、C#自带的ProgressBar控件 C# .NET Framework 提供了一个名为ProgressBar的标准控件,它支持...

Global site tag (gtag.js) - Google Analytics