通过font-awesome案例来学习 css sprite和svg sprite_html/css_WEB-ITnose
问题:font-awesome里面的小图标是怎么产生的?
1.打开浏览器调试工具,发现font-awesome user这个小图标,其css样式是.
icon-user:before { content: "\f007";}[class^="icon-"]:before, [class*=" icon-"]:before { text-decoration: inherit; display: inline-block; speak: none;}
2.根据css文件路径,我们打开font-awesome.css发现它是引用了css3 @font-face这个属性。
@font-face { font-family: 'FontAwesome'; src: url('../font/fontawesome-webfont.eot?v=3.2.1'); src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg'); font-weight: normal; font-style: normal;}
3.我们顺着src:url()找到其图标svg
其路径为url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
我们用sublime打开路径下的svg图,由于SVG是 XML 格式,因此可以支持通常用 XML 工具和库进行的转换和生成。具体的教程链接:XML 问题: 使用 SVG 编程
<glyph unicode="" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
4.发现content:'\f007'对应的就是上文的unicode=“oo7”。
写到这里大家也许有点清晰了font-awesome里的图标是怎么来的,不过还是有点稀里糊涂的,一定有很多问题会问:
svg图是什么? 怎么生成的?
把所有的图标都做成一张svg图片意义何在?
它和css sprite有什么区别呢?
哈哈,其实我和大家也一样,很好奇,于是查看了很多文档。原来早已经有大神研究过了。我会一一放上链接的,这里我先谈一下我的几点认识
css-sprite
1.先说什么是css sprite?
css sprite又叫css精灵或css雪碧图,是一种背景图片的拼合技术。使用css雪碧图,能够减少页面的请求数、这个很关键,因为每一个http请求都是长连接,我们都知道http开销是很大的,像一些购物网站,如果那么多图标都是标签引入的,那后果不堪设想。css-sprite的设计就是提升页面访问速度和网站请求资源开销的。
2.css-sprite实现的原理
css-sprite通过background-position这个css3新增属性来实现.我们可以一次性引入图片文件,通过设置background-size来切割小图标,然后通过css-position来给具体的小图标icon定位
3.如何制作css-sprite
1.慕课网上有远人老师的视频,教你如何做一个css-sprite。传送门:CSS Sprite雪碧图应用
2.windows开发者可以直接百度css-sprite制作工具,工具很多。
3.用sass编译的同学可以直接使用compass自动合并css雪碧图,教程链接地址
4.可以用ps和AI人工拼图
4.css-sprite缺点:拼图和后期维护的成本比较大。
我们可以通过
svg sprite
这里因为我了解的不是很多,而且我本人也是根据张鑫旭大神的技术博客学习的,所以直接贴地址:
未来必热:SVG Sprite技术介绍
<br /><br /><svg> <defs> <g id="shape"> <rect x="0" y="0" width="50" height="50" /> <circle cx="0" cy="0" r="50" /> </g> </defs> <use xlink:href="#shape" x="50" y="50" /> <use xlink:href="#shape" x="200" y="50" /></svg>
总结:
symbol + use => SVG Sprite。而且在HTML层面,图标使用的代码成本,跟传统的CSS Sprite或者流行的font-face几乎无异,代码简洁,而且很好维护。所有的SVG图标都在一个SVG源上。retina良好,尺寸可任意拉伸,且颜色可控,真乃Web图标的未来之星。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Artikel erörtert den HTML & lt; Progress & gt; Element, Absicht, Styling und Unterschiede vom & lt; Meter & gt; Element. Das Hauptaugenmerk liegt auf der Verwendung & lt; Fortschritt & gt; Für Aufgabenabschluss und & lt; Meter & gt; für stati

Der Artikel erörtert den HTML & lt; Datalist & gt; Element, das die Formulare verbessert, indem automatische Vorschläge bereitgestellt, die Benutzererfahrung verbessert und Fehler reduziert werden.Character Count: 159

In Artikel werden Best Practices zur Gewährleistung der HTML5-Cross-Browser-Kompatibilität erörtert und sich auf die Erkennung von Merkmalen, die progressive Verbesserung und die Testmethoden konzentriert.

Der Artikel erörtert das HTML & lt; Meter & gt; Element, verwendet zur Anzeige von Skalar- oder Bruchwerten innerhalb eines Bereichs und seine gemeinsamen Anwendungen in der Webentwicklung. Es differenziert & lt; Meter & gt; von & lt; Fortschritt & gt; und Ex

In dem Artikel werden unter Verwendung von HTML5 -Formularvalidierungsattributen wie Erforderlich, Muster, Min, MAX und Längengrenzen erörtert, um die Benutzereingabe direkt im Browser zu validieren.

Dieser Artikel erklärt den HTML5 & lt; Time & gt; Element für semantische Datum/Uhrzeit. Es betont die Wichtigkeit des DateTime-Attributs für die Maschinenlesbarkeit (ISO 8601-Format) neben menschenlesbarem Text, das Zubehör steigert

In dem Artikel wird das Ansichtsfenster -Meta -Tag erörtert, das für das reaktionsschnelle Webdesign auf mobilen Geräten unerlässlich ist. Es wird erläutert, wie die ordnungsgemäße Verwendung eine optimale Skalierung von Inhalten und Benutzerinteraktion gewährleistet, während Missbrauch zu Design- und Zugänglichkeitsproblemen führen kann.

Der Artikel erörtert das & lt; iframe & gt; Der Zweck von Tag, externe Inhalte in Webseiten, seine gemeinsamen Verwendungen, Sicherheitsrisiken und Alternativen wie Objekt -Tags und APIs einzubetten.
