【CSS3】CSS3 伪元素字体图标 ( 生成 icommon 字体文件 | 字体图标基本使用 | 使用伪元素实现 icommon 字体图标显示 )

news2024/12/25 17:08:40

文章目录

  • 一、icommon 字体图标基本使用
    • 1、生成 icommon 字体文件
    • 2、字体图标基本使用
  • 二、使用伪元素实现 icommon 字体图标显示





一、icommon 字体图标基本使用



字体图标 指的是 将图标做成字体样式 , 在 放图标的地方 使用 文字 即可实现 图标显示 ;


1、生成 icommon 字体文件


进入 https://icomoon.io/app/#/select 网站 , 选择 491 个字体图标 ;

在上述下拉菜单中 , 选择 Select All 选项 , 一次性选择所有的 491 个字体图标 ;

点击右下角的 Generate Font 按钮 , 生成字体图标 ,

在这里插入图片描述

生成字体后 , 点击右下角的 Download 按钮 ,

在这里插入图片描述
下载该文件 ;

在这里插入图片描述

解压该文件 , 可以得到如下内容 ;

在这里插入图片描述

将 fonts 目录拷贝到与 网页同级目录中, 该 fonts 目录是字体文件所在目录 , 下面的四个文件就是字体文件 ;

在这里插入图片描述

查看 icomoon 目录中的 demo.html 网页 , 里面有字体中图标对应的编码 ;
在这里插入图片描述

下图中 , 房子对应的字体编码是 e900 , 右侧的  是字体的占位符 ;

在这里插入图片描述


2、字体图标基本使用


代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @font-face {
            /* 导入字体 */
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?cv013x');
            src: url('fonts/icomoon.eot?cv013x#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?cv013x') format('truetype'), url('fonts/icomoon.woff?cv013x') format('woff'), url('fonts/icomoon.svg?cv013x#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
        }
        
        span {
            /* 设置字体 */
            font-family: 'icomoon';
            /* 绝对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: absolute;
            top: 10px;
            left: 10px;
        }
        
        div {
            /* 相对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: relative;
            width: 249px;
            height: 35px;
            border: 1px solid red;
        }
    </style>
</head>

<body>
    <div>
        <!-- 此处的值需要从 demo.html 中拷贝出来 
             虽然在代码中是方块 但是在网页中会显示对应图片-->
        <span></span>
    </div>
</body>

</html>

显示效果 :

在这里插入图片描述





二、使用伪元素实现 icommon 字体图标显示



上述代码示例中 , 使用了字体图标 , 在 div 标签中 嵌入了 span 标签 ;

如果使用伪元素 , 在其中插入标签 , 可以不使用 span 标签 , 直接插入标签即可 ;

        p::after {
            content: "\e900";
            /* 绝对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: absolute;
            top: 10px;
            left: 10px;
            font-family: 'icomoon';
        }

代码示例 :

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        @font-face {
            /* 导入字体 */
            font-family: 'icomoon';
            src: url('fonts/icomoon.eot?cv013x');
            src: url('fonts/icomoon.eot?cv013x#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?cv013x') format('truetype'), url('fonts/icomoon.woff?cv013x') format('woff'), url('fonts/icomoon.svg?cv013x#icomoon') format('svg');
            font-weight: normal;
            font-style: normal;
        }
        
        span {
            /* 设置字体 */
            font-family: 'icomoon';
            /* 绝对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: absolute;
            top: 10px;
            left: 10px;
        }
        
        div,
        p {
            /* 相对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: relative;
            width: 249px;
            height: 35px;
            border: 1px solid red;
        }
        
        p::after {
            content: "\e900";
            /* 绝对定位 , 子绝父相 , 子元素绝对定位 父容器相对定位 */
            position: absolute;
            top: 10px;
            left: 10px;
            font-family: 'icomoon';
        }
    </style>
</head>

<body>
    <div>
        <!-- 此处的值需要从 demo.html 中拷贝出来 
             虽然在代码中是方块 但是在网页中会显示对应图片-->
        <span></span>
    </div>

    <!-- 使用伪元素选择器 向 p 标签直接插入字体 可以节省一层标签 -->
    <p></p>
</body>

</html>

显示效果 :

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/441360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue2-黑马(十三)

目录&#xff1a; &#xff08;1&#xff09;实战-permissions.js-动态路由 &#xff08;2&#xff09;实战-第三方登录-流程分析 &#xff08;3&#xff09;实战-第三方登录-代码解读 &#xff08;1&#xff09;实战-permissions.js-动态路由 在做根据用户角色动态生成路由…

【Unity+MySQL】实现注册登录系统(升级版)

目录 1 UI界面重新设计1.1 注册界面1.2 登录界面1.3 交互实现 2 注册功能完善2.1 判断用户输入的用户名是否与数据库中的重复2.2 将当前时间更新至用户表的当前注册时间列2.3 将用户输入的注册密码使用哈希加密 3 登录功能完善 接着 上篇文章所谈到的系统缺陷&#xff0c;这篇…

==与equals()的理解

java中的数据类型分为基本数据类型、基本数据类型对应的包装类型&#xff08;引用类型&#xff09;&#xff0c;引用类型三种数据类型。 每一个基本类型java都提供了一个与之对应的包装类型&#xff0c;该包装类型是一个引用类型,并且在基本类型与包装类型之间提供了自动拆箱和…

AD21原理图----网络连线(网络线、网络标签、总线、差分对、信号线束)

目录 网络连线 网络线&#xff08;Wire&#xff09; 网络标签 总线 差分对 信号线束 网络连线 网络线&#xff08;Wire&#xff09; 网络标签 可以跨原理图 总线 用于放置同一类数据 使用步骤 第一步&#xff1a;先绘制网络线 第二步&#xff1a;利用网络标签进行连接&a…

虚拟机下Ubuntu系统的Docker部署

虚拟机下Ubuntu系统的微服务项目Docker部署 文章目录 虚拟机下Ubuntu系统的微服务项目Docker部署1、Ubuntu安装 Docker2、修改后端微服务的配置2.1 修改 MySQL 的配置2.2 修改 Redis 的配置2.3 修改 Nacos 的配置 3、生成微服务镜像4、拉取远程镜像5、生成前端镜像5.1 准备文件…

MacOS安装MongoDB与Redis

1.安装MongoDB: brew tap mongodb/brew brew install mongodb-community 后台服务方式运行mongodb: brew services restart mongodb/brew/mongodb-community 直接运行mongodb非后台服务 /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.con…

化工行业数字化“智能工厂”-解决方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 总体架构 设计理念—数据集成与流转 九大核心价值之一 九大核心价值之二 九大核心价值之三 九大核心价值之四 九大核心价值之五 九大核心价值之六 九大核心价值之七 九大核心…

数据库学习-常用的SQL语句

背景&#xff1a; 汇整一下自己学习数据库过程中常见的题目及语句。 一.实例分析题 二&#xff0e;简单SQL查询&#xff1a; 1&#xff09;:统计每个部门员工的数目select dept,count(*) from employee group by dept;2&#xff09;:统计每个部门员工的数目大于一个的记录se…

3.4 迭代法

4.1 雅克比迭代法&#xff1a; 雅可比迭代法是一种用于求解线性方程组的迭代算法&#xff0c;其基本思想是将线性方程组中的系数矩阵拆分为对角线矩阵和非对角线矩阵两部分&#xff0c;并利用对角线矩阵的逆矩阵来迭代求解方程组。 具体地&#xff0c;设线性方程组为Axb&…

操作系统笔记--虚拟内存的使用

1--背景概念 在计算机系统中&#xff0c;当多道程序同时运行时可能会出现内存不足的情况&#xff0c;一般可通过以下技术进行解决&#xff1a; 覆盖技术&#xff1a; 当程序太大超出内存容量时&#xff0c;可以采用手动覆盖的技术&#xff0c;只把需要的指令和数据保存在内存当…

SSM整合、环境配置以及基础综合测试(单表查询、多表查询和数据分页、前后端分离、Vue3)

SSM整合、环境配置以及基础综合测试 准备&#xff1a;创建maven项目以及项目框架准备 SSM整合简介 介绍: SSM(SpringSpringMVCMyBatis) 整合&#xff0c;就是三个框架协同开发。Spring整合Mybatis就是将Mybatis核心配置文件当中数据源的配置、事务处理、以及工厂的配置&…

Docker的使用说明

目录 第一章什么是Docker 1.1.Docker的概述 1.2.什么是容器 1.3.Docker核心概念 第二章.安装 Docker 2.1.安装环境部署 2.2.安装 Docker-CE并设置为开机自动启动 2.2.Docaker的简单信息查看 第三章.Docker 操作 3.1.Docker的镜像操作 3.2.Docker 容器操作 3.3.容器…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机BGAPISDK中控制变焦镜头的技术背景代码案例分享第一步&#xff1a;开启相机自动调焦功能模块第二步&#xff1a;控制自动变焦镜头电机的…

Delphi DataSnap 流程分析(二)

Delphi DataSnap 流程分析(一)_看那山瞧那水的博客-CSDN博客 粗略分析了 创建传统DataSnap的流程&#xff0c;现在再分析下创建现在更常用的 方式&#xff1a; DataSnap REST Application 这种方式只支持HTTP(普通HTTP和REST HTTP)通信&#xff0c;不支持TCP通信。 这种方式…

详解C语言string.h中常见的13个库函数(上)

我计划讲解C语言string.h这个头文件中&#xff0c;最常见的13个库函数。为了让大家更加深入的理解这些函数&#xff0c;部分函数我会模拟实现。篇幅所限&#xff0c;如果文章太长了&#xff0c;可能会较难坚持读完&#xff0c;所以我会分几篇博客来讲述。本篇博客主要讲解的函数…

什么是全民开发?|概念、技能和优势

注&#xff1a;全民开发的英文是Citizen Development&#xff0c;由咨询公司Gartner在2010年提出的概念&#xff0c;指非专业开发人员使用低代码或无代码平台创建应用程序&#xff0c;无需IT部门的支持&#xff0c;旨在提高生产力并降低开发成本。 国内普遍将Citizen Developme…

【ROS】单目摄像机的标定

在上节: ROS 教程之 vision : 用笔记本摄像头获取图像 能够使用相机后&#xff0c;就需要对相机进行标定&#xff0c;在ROS上使用原始图像校准单目相机。 操作步骤 1、首先将catkin_ws/src/usb_cam/launch/usb_cam-test.launch的文件内容修改掉。 原有内容&#xff1a; <…

docker 使用Dockerfile 部署springboot项目

1、先准备好你的springboot项目jar包。拉取 openjdk docker pull openjdk:8-jdk-alpine 2、上传你的springboot项目&#xff0c;然后配置 Dockerfile&#xff1a; FROM openjdk:8-jdk-alpine ADD ./springbootstudy.jar.jar /app.jar ENTRYPOINT ["java","-jar…

【源码】Spring Cloud Gateway 是在哪里匹配路由的?

我们知道&#xff0c;经过网关的业务请求会被路由到后端真实的业务服务上去&#xff0c;假如我们使用的是Spring Cloud Gateway&#xff0c;那么你知道Spring Cloud Gateway是在哪一步去匹配路由的吗&#xff1f; 源码之下无秘密&#xff0c;让我们一起从源码中寻找答案。 入…

Ant Design 常见用法与坑点总结(二):Form 表单下拉框设置初始值

前言 Ant Design 是蚂蚁出品的出色优秀的 React 组件库&#xff0c;相信使用 React 进行管理系统开发的小伙伴们或多或少都接触过 Ant Design。很多公司基于 React 开发的管理端系统也都是使用 Ant Design 的组件库。 因此&#xff0c;了解 Ant Design 的常见用法与坑点还是有…