今天模仿百度首页手机版的时候遇到的@font-face的问题,现在整理一下。

问题:图中红色区域,在拷贝F12样式的时候,并没有出现这些小图标。

        

       图1:百度的效果                       图2:我做的效果

  在审查元素的时候,发现这些地方不是图片,只是字体。代码如下:

.navs-news:before {
content: "\e672";
color: #777;
font: 24px/1 icons;
}
事实上,这个例子用到了@font-face的方法:@font-face是CSS3中的一个模块,他主要是把自己定义的Web字体嵌入到你的网页中,美化网页。
具体的使用方法
@font-face {
/*自定义的字体名称*/
font-family: <YourWebFontName>;
/*source是自定义的字体的存放路径 format是自定义的字体的格式,主要用来帮助浏览器识别*/
src: <source> [<format>][,<source> [<format>]]*;
/*字体是否为粗体*/
font-weight: <weight>;
/*定义字体样式*/
font-style: <style>;
}
我在这里要说的是百度首页的扒站过程中我遇到的问题。
首先,我从这次模仿的作业中,了解到@font-face这个属性,然后是如何从百度首页上copy这个字体了。首先我切换到审查元素(chrome浏览器)-->手机模式-->刷新后,右键选择:查看网页源代码。但是找不到@font-face这个样式,换到360极速浏览器发现是能找到的。原因就是:百度首页的手机版网址是http://wap.baidu.com/,你需要访问这个网址才能顺利找到。
                        
                      图3:未找到font-face的网页源代码
         
                      图4:换个网址找到的@font-face的网页源代码
 
在网页源代码view-source:http://wap.baidu.com/中,CTRL+F搜索@font-face,可以看到它的定义,拷贝到我们自己的css文件中,刷新我们制作的百度首页。
@font-face{
font-family:icons;
src:url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.eot);
src:url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.eot#iefix) format('embedded-opentype'),
  url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.woff) format('woff'),
  url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.ttf) format('truetype'),
  url(//m.baidu.com/static/index/iconfont/iconfont_f0abbec7.svg?#iconfont) format('svg');
font-weight:;
font-style:normal
}
发现还是没有显示。原因是未联网,所以要把这些字体文件(.eot,.woff等)下载到本地。下载方法:复制上面代码里面的url地址到浏览器,即可下载。如:http://m.baidu.com/static/index/iconfont/iconfont_f0abbec7.eot
然后把我们下载下来的文件放在我们的工程文件下,修改@font-face的url地址,即:
@font-face {
font-family: icons;
src: url(../fonts/iconfont_f0abbec7.eot);
src: url(../fonts/iconfont_f0abbec7.eot#iefix) format('embedded-opentype'),
url(../fonts/iconfont_f0abbec7.woff) format('woff'),
     url(../fonts/iconfont_f0abbec7.ttf) format('truetype'),
     url(../fonts/iconfont_f0abbec7.svg?#iconfont) format('svg');
  font-weight:;
  font-style: normal
}

这时候,回到我们最开始看到的代码就可以解释了,如代码里的注释:

.navs-news:before {
/*字体图标的编号*/
content: "\e672";
/*字体颜色*/
color: #777;
/*字体大小,以及font-family:icons和@font-face呼应*/
font: 24px/1 icons;
}

再刷新我们的网页,即可看到这些可爱的“小图标”。

所有的字体文件最好都下载到本地,因为各个浏览器支持的字体不一致。比如.eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有【IE4+】;.svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】

@font-face扒站的步骤的更多相关文章

  1. 用wget扒站时遇到电信劫持

    今天用wget扒下来一个html template的站. 挂在自己机器上后随便点什么,都出电信广告.仔细检查,我勒个去... 扒站过程中,刚好被电信打了劫,看看它给我下载下来的bootstrap.mi ...

  2. C#通过WebBrowser快速扒站思路积累大量着陆页列表

    现在工作方向已经越来越倾向于项目产品运营相关的东西.对线上运营也有了一定程度的了解. 配合一些技术性的操作,能极大的便利工作中的各种高难度任务,快速提升自我,积累丰富的经验和资源. 以近期制作LP为例 ...

  3. 4种常用扒站工具(webzip、ha_TeleportPro、Offline Explorer、wget)

    许多开始做lead,EMU的新手,需要一个英文网站,找人定制费用太贵自己又不会技术的话,可以通过扒站来获得英文站,今天给大家介绍几种扒站工具: 1.HA_TeleportPro: Teleport P ...

  4. Javascript 防扒站,防止镜像网站

    自己没日没夜敲出来的站,稍微漂亮一点,被人看上了就难逃一扒,扒站是难免的,但不能让他轻轻松松就扒了: 前些天有个朋友做的官网被某不法网站镜像,严重影响到 SEO,当时的解决方法是通过屏蔽目标 IP 来 ...

  5. wget 扒站

    在Linux下,通过一个命令就可以把整个站相关的文件全部下载下来. wget -r -p -k -np [网址] 参数说明: -r : 递归下载 -p : 下载所有用于显示 HTML 页面的图片之类的 ...

  6. 【linux】扒站命令之利用wget快速扒站利用wget快速扒站

    在Linux下,通过一个命令就可以把整个站相关的文件全部下载下来. wget -r -p -k -np 参数说明: -r : 递归下载 -p : 下载所有用于显示 HTML 页面的图片之类的元素 -k ...

  7. 扒站工具Teleport Pro教程

    1.下载软件 http://www.jb51.net/softs/44134.html 2.安装 3.界面 先点开帮助点注册(类似于破解要不全站扒不全) 下面请看ppt, http://www.doc ...

  8. 2016/04/29 ①cms分类 ② dede仿站制作 步骤 十个步骤 循环生成菜单 带子菜单的菜单 标签 栏目 栏目内容列表 内容图片列表

    cms 系统还有: phpcms     企业站 Xiaocms  织梦  企业站 wordpress (博客) Ecshop 商城 Ecmall 多用户 Discms 记账 方维 订餐 团购 CMS ...

  9. 神器扒网站——teleport ultra

    在平时的开发或者学习的过程中,我们难免会看到一些让人心动的网站,于是自己想把它搞下来,自己手工一个文件一个文件把它保存下来也可以实现,完成了也累得够呛,有一款扒站的神器,可以把你所喜欢的目标网站整个网 ...

随机推荐

  1. cf703B Mishka and trip

    B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input  standard ...

  2. ReportViewer中设置ServerReport.ReportServerCredentials属性的方法

    当使用SSRS技术来布置报表,可能使用MS自带的ReportViewer控件来读取报表. 它分为Web和Windows两种版本;此处Web版. ServerReport.ReportServerCre ...

  3. Android eclipse下数据开源框架GreenDao的配置

    1.前言 ORM(Object-RelationMapping,对象关系映射),是一种为了解决面向对象与数据库存在的互一匹配的现象的技术,通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到 ...

  4. [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)

    无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...

  5. DateTimePicker控件为空 分类: WinForm 2014-04-15 09:46 239人阅读 评论(0) 收藏

    设置属性:                 Format=Custom 加载事件:ValueChanged    private void dtpStart_ValueChanged(object s ...

  6. java随机数与数组的使用。

    java随机数与数组的使用.    一:题目 二 代码:  public class Students {    int number;  // 学号    int State ;   // 年级   ...

  7. Java菜鸟学习笔记--Exception篇(一):异常简介

    什么是异常(Exception)? 简述: 在运行过程中,应用程序可能遭遇各种严重程度不同的问题.异常提供了一种在不弄乱程序的情况下检查错误的巧妙方式.它也提供了一种直接报告错误的机制. 不同类型异常 ...

  8. Project Euler problem 62

    题目的大意很简单 做法的话. 我们就枚举1~10000的数的立方, 然后把这个立方中的有序重新排列,生成一个字符串s, 然后对于那些符合题目要求的肯定是生成同一个字符串的. 然后就可以用map来搞了 ...

  9. Oracle V$SQLAREA

    V$SQLAREA 记录shared SQL area中语句统计信息: V$SQLAREA持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列 ...

  10. 关于Build Active Architecture Only属性

    关于Build Active Architecture Only属性 Architecture 属性在BuildSetting里. 这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当 ...