热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iconfont字体图标和各种CSS小图标

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!iconfont字体图标我们的需

前言:这是笔者学习之后自己的理解与整理。如果有错误或者疑问的地方,请大家指正,我会持续更新!

 

iconfont字体图标

  我们的需求中,很多时候会看到一些小的图形,或者叫图标,比如天猫网站中:

        

  这些小图形我们可以用图片代替,通常我们是把这些图形切图之后做成精灵图(又叫雪碧图);

  精灵图的原理:把很多小图片集合成一张大图片,然后用设置背景图的位置来显示图片;

  精灵图的优点:减少服务器的请求次数,降低服务器压力;

  sprites是一款很好的精灵图制作工具;

 

  当然还有其他的方法可以制作这些小的图形,比如上图中,天猫使用的字体图标iconfont;

  字体图标,顾名思义,就是一种字体,和字体一样,是矢量的,我们也叫矢量图标,任意放大缩小,都不会失真;

  网络中有很多字体图标库,这里我介绍一下iconfont的使用:

  官网:http://www.iconfont.cn/ 

 

  我就不说怎么制作了,我们直接使用吧(呵呵,其实我画的图太丑);

  原本准备写一下使用方法的,但是iconfont好像又升级了,加入了symbol写法,支持多色图标了(这涉及到SVG的知识),官网的帮助文档的GIF图也很好的解释了怎么应用,我就写一下我第一次用的时候遇到过的坑吧:

  • "下载代码"按钮,希望你能直接找到。嗯,我找了好一会,默认让我去设置颜色和大小去了,这个是去弄素材的,前端只要代码就可以了,点击撤销,然后...;

     不知道是我电脑问题(1366*768)还是怎么回事?这个"下载代码"按钮被我的windows底部工具栏挡住了一半,嗯,这个...

         

 

  • 当我们把字体图标下载下来之后,它就是一个文件了,我们是在css里定义字体类型的时候,别忘了把路径设置正确;
  • 如果我们使用的是iconfont的在线项目(没有下载文件),当项目成员更新了图标,如果我们也想用新的图标,就也得更新"在线链接";
  • 字体不支持多色,如果我们使用下载文件的方式,那就只能用字体颜色设置单色了。想使用多色图标,就得用symbol引用在线链接的方式;symbol引用的是js文件,font-class引用的css文件,两种方式的写法也是不一样的;

 

CSS小图标

  大师们用css制作出了各种纯css图形,我这里就只列举几种我用的比较多的;

三角形

  请看这篇, border三角形阴影和多重边框的整理转述 ;

菜单(三道杠)

  用border上边框双线和下边框实线,也可以反着来:

  

  代码如下:

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title><style type&#61;"text/css">*{padding: 0;margin: 0;}.menu{margin: 100px;width: 55px;height: 10px;border-top: 30px double #f00;border-bottom: 10px solid #f00;/*用border上边框双线和下边框实线&#xff0c;也可以反着来*/}style>head><body><div class&#61;"menu">div>body>
html>

View Code

 

内凹角

  大师的方法&#xff0c;点击这里&#xff0c;用css3属性径向渐变radial-gradient做:

  背景图径向渐变可以设置&#xff1a;圆心位置&#xff0c;渐变的大小&#xff0c;渐变的形状&#xff0c;圆心处的颜色 宽度&#xff0c; ... &#xff0c;结尾处的颜色宽度;

  代码如下&#xff1a;

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title><style type&#61;"text/css">*{padding: 0;margin: 0;}a{text-decoration: none;cursor: pointer;}li{list-style: none;}/*清除浮动*/.clearfix:before, /*:before处理margin上下重叠*/.clearfix:after {content: ""; display: table;}.clearfix:after {clear: both;}.clearfix {zoom: 1;}.test{margin: 100px 0 0 100px ;}.list{margin-left: -20px;}.content{width: 320px;background: #7fd6f1;min-height: 200px;}.item .active{background: #7fd6f1;color: #333;}.item{float: left;margin-left: 30px;}.item a{display: block;background: #ce4be2;width: 80px;height: 35px;text-align: center;line-height: 35px;color: #fff;border-radius: 10px 10px 0 0;position: relative;}.item a:after{content: "";display: block;position: absolute;right: -9px;/*不知大家是否发现&#xff0c;在边缘处其实是有1px的变化的&#xff0c;弧度到最后不是很自然&#xff0c;这里我们其实可以把位置往里1px*/bottom: 0;width: 10px;height: 10px;background: -webkit-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: -o-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: -moz-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);/*背景图径向渐变可以设置&#xff1a;圆心位置&#xff0c;渐变的大小&#xff0c;渐变的形状&#xff0c;圆心处的颜色 宽度&#xff0c; ... &#xff0c;结尾处的颜色宽度*//*圆心位置默认为center&#xff0c;我们这里设置圆心为元素左顶点和右顶点*//*渐变的大小默认为farthest-corder ,我们这里设置的farthest-side*//*渐变的形状默认为ellipse&#xff08;椭圆&#xff09;&#xff0c;我们这里得设置成circle&#xff08;圆形&#xff09;&#xff0c;但是宽高一样的椭圆不就是圆形么&#xff0c;so...*//*颜色和宽度的设置&#xff0c;我们在离元素宽度还有1px的时候变化&#xff0c;所以这里是10-1&#61;9px&#xff1b;*/}.item a:before{content: "";display: block;position: absolute;left: -9px;bottom: 0;width: 10px;height: 10px;background: -webkit-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: -o-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: -moz-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);background: radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #ce4be2 100%);}.item .active:after{background: -webkit-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: -o-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: -moz-radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: radial-gradient(100% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);}.item .active:before{background: -webkit-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: -o-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: -moz-radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);background: radial-gradient(0% 0%, farthest-side, transparent 0%, transparent 8px, transparent 9px, #7fd6f1 100%);}style>head><body><div class&#61;"test"><ul class&#61;"list clearfix"><li class&#61;"item"><a href&#61;"Javascript:;" >新闻a>li><li class&#61;"item"><a href&#61;"Javascript:;" class&#61;"active">娱乐a>li><li class&#61;"item"><a href&#61;"Javascript:;">体育a>li>ul><div class&#61;"content">div>div>body>
html>

View Code

 

桃心

  

  代码如下&#xff1a;

DOCTYPE html>
<html><head><meta charset&#61;"UTF-8"><title>title><style type&#61;"text/css">/**{padding: 0;margin: 0;}*/.wrapper{margin: 100px;width: 300px;height: 300px;border: 1px solid #0ff;}.test{display:inline-block;margin:50px;height: 100px;width: 100px;background-color: red;transform: rotate(-45deg);}.test::before , .test::after{display:block;content:"";width: 100px;height: 100px;background-color: red;border-radius: 50%;margin-top:-50%;}.test:after{margin-left:50%;}style>head><body><div class&#61;"wrapper"><div class&#61;"test">div>div>body>
html>

View Code

 

回到顶部

<style>*{padding: 0;margin: 0;}.goTop{position:fixed;right:10px;bottom: 10px;height:50px;width: 50px; text-align:center;background-color: lightblue;border-radius: 20%;overflow: hidden;}.goTop:hover:before{top:50%;}.goTop:hover .directTop{visibility: hidden;}.goTop:before{position: absolute;top: -50%;left: 50%;transform: translate(-50%,-50%);content:&#39;回到顶部&#39;;width: 40px;color:peru;font-weight:bold;} .directTop{visibility: visible;display:inline-block;margin-top: 20px;height:20px;width: 20px;border: 3px solid;border-color: white transparent transparent white;transform:rotate(45deg);}style><body style&#61;"height:2000px;"><div class&#61;"goTop"><div class&#61;"directTop">div>div> body>

View Code

 

 

  还有很多css制作的经典图形&#xff0c;以后再整理吧&#xff1b;

  其实&#xff0c;css制作的图标和图片代替的图片都很棒&#xff0c;根据需求吧。我更喜欢字体图标和图片的方式&#xff0c;效率更高&#xff0c;简单。

 

转:https://www.cnblogs.com/sspeng/p/6482166.html



推荐阅读
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
author-avatar
mobiledu2502874965
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有