CSS布局基础(精灵图 字体图标 css 三角图标)

news2024/11/25 12:26:46

精灵图 & 字体图标

    • 精灵图使用
    • 字体图标
      • 下载字体图标
      • 使用方式
        • icomoon
        • 阿里 iconfont
          • ttf 字体 + unicode
          • css 方式
          • js 方式
      • 更新字体图标
        • icomoon
        • 阿里 iconfont
    • css三角图标
      • 标准三角(垂直的两边相等)
        • 先来个普通盒子(当然是五彩斑斓的边)
        • 然后将盒子宽高直接设为0
        • 只展示一个三角标
          • 向下的三角标
          • 向右的三角标
      • 非标准三角(垂直的两边不相等)
      • 三角标总结

精灵图使用

精灵图就是将多个图片融合到一张图片里面,一次性请求到浏览器,避免多次请求服务器,降低服务器压力。
主要用于那些小的图标背景图。
利用背景图位移的特性,移动到特定的坐标,让盒子内显示指定区域的背景图片区域,因默认坐标为 0,0;因此位移一半是负值。

字体图标

在精灵图的使用背景之下;对于一些简单纯色(svg支持彩色,但渲染效率相对低下)的小图标,使用字体图标更合理,字体图标说是图标,实际上是文字,因此它适应文字的各种属性。

下载字体图标

https://icomoon.io/
https://www.iconfont.cn/

使用方式

解压

icomoon

  1. 页面引入字体图标文件
    解压压缩文件,将fonts文件夹放到一个目录,用于下面CSS中引用
@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?sgrsq3');
  src:  url('fonts/icomoon.eot?sgrsq3#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?sgrsq3') format('truetype'),
    url('fonts/icomoon.woff?sgrsq3') format('woff'),
    url('fonts/icomoon.svg?sgrsq3#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
  1. 然后只需要在页面 写字体图标值就可以了,具体可以参考下载示例里面内容,每个图标的值都列出来了
    在这里插入图片描述
    以上,安卓图标的值是 \e900。其他类似,就完全当文字使用,只是特定内容显示特定图标而已。
    实际使用示例
<span class="android"></span>
.android:before{
    content: '\e900';
    font-family: icomoon;
    color: #3ddc84;
}

阿里 iconfont

阿里iconfont支持三种使用方式:

  1. 页面引入字体 + 对应unicode码 (与 icomoon 一致)
  2. 页面引用样式,以应用 css 的方式
  3. 页面引用js,以js生成 svg 的方式
ttf 字体 + unicode
 /*阿里字体图标 unicode 方式,直接引入字体文件*/
 @font-face {
     font-family: "iconfont"; /* Project id  */
     src: url('download/font_eosjifrs05t/iconfont.ttf?t=1683441457985') format('truetype');
 }
 .iconfont {
     font-family: "iconfont" !important;
     font-size: 16px;
     font-style: normal;
     -webkit-font-smoothing: antialiased;
     -moz-osx-font-smoothing: grayscale;
 }
<!--阿里字体图标 unicode 方式-->
<span class="iconfont">&#xe91a;</span>
css 方式
<!--    阿里字体图标 css 方式,不引入字体,引入CSS ,给相应标签应用指定的class 即可-->
<link rel="stylesheet" href="download/font_eosjifrs05t/iconfont.css">
<!--阿里字体图标 css 方式-->
<span class="iconfont icon-box"></span>
js 方式
<!--    阿里 Symbol  svg 方式 ,引入js,利用 js 生成 svg -->
<script src="download/font_eosjifrs05t/iconfont.js"></script>
<style>
    .icon {
        width: 1em;
        height: 1em;
        vertical-align: -0.15em;
        fill: currentColor;
        overflow: hidden;
    }
</style>
<!--阿里 Symbol  svg 方式-->
<svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-brush"></use>
</svg>

整体使用都比较简单,参考下载下来的 demo
效果
在这里插入图片描述

更新字体图标

在使用一段时间后,可能需要增加一些新的图标。icomoon 和 阿里 iconfont 操作也略有不同。

icomoon

  1. 下载的压缩包中,有个 selection.json 文件
  2. 进入 icomoon 页面
  3. 点击 Import Icons 在这里插入图片描述
    这个json文件中记录了现有的字体图标,我们基于这个记录,再选择需要的图标,重新生成,下载压缩包,替换原来的即可。

阿里 iconfont

  1. 在阿里 iconfont 中 ,我们需要登录一个账号,里面有个项目的概念

  2. 下载前,将图标添加 到购物车,然后添加到指定项目。

  3. 在项目里面批量下载图标 压缩包
    在这里插入图片描述

  4. 同样解压替换原有文件夹即可

css三角图标

css 三角标,本质上是对盒子边框的一个灵活运用,要有一点想象力。

标准三角(垂直的两边相等)

先来个普通盒子(当然是五彩斑斓的边)

.t5{
   width: 200px;
   height: 200px;
   border-top: 20px solid #9a6e3a;
   border-right: 20px solid #df5000;
   border-bottom: 20px solid #00b4ff;
   border-left: 20px solid #3ddc84;
}
<div class="t5"></div>

在这里插入图片描述

然后将盒子宽高直接设为0

整体就变成这样了
在这里插入图片描述
这里就是把上面那个盒子中间的空白部分给挖掉而已,细品。

只展示一个三角标

得到了在这里插入图片描述
这个,取三角标就很简单了;我们只需要将 想要的三角标以外的三个方向的边框设置为透明即可,是不是看起来就像只有一个三角标,实际上依然有4个三角标,只是其中一个显示,三个颜色为透明而已。

向下的三角标
        .t5{
            width: 0px;
            height: 0px;
            border-top: 20px solid #9a6e3a;
            /*border-right: 20px solid #df5000;*/
            border-right: 20px solid transparent;
            /*border-bottom: 20px solid #00b4ff;*/
            border-bottom: 20px solid transparent;
            /*border-left: 20px solid #3ddc84;*/
            border-left: 20px solid transparent;
        }

在这里插入图片描述

向右的三角标
        .t5{
            width: 0px;
            height: 0px;
            /*border-top: 20px solid #9a6e3a;*/
            border-top: 20px solid transparent;
            /*border-right: 20px solid #df5000;*/
            border-right: 20px solid transparent;
            /*border-bottom: 20px solid #00b4ff;*/
            border-bottom: 20px solid transparent;
            border-left: 20px solid #3ddc84;
            /*border-left: 20px solid transparent;*/
        }

在这里插入图片描述

非标准三角(垂直的两边不相等)

就像这样 在这里插入图片描述
其实从上面的标准三角实现,就能看到,当盒子宽高为0时,每条边框汇集到一点。

  • 当四条边相等时在这里插入图片描述
  • 假设我们逐渐将 左边框和上边框增加看看是什么效果

        .t6{
            width: 0px;
            height: 0px;
            border: 0;
            border-left: 60px solid #3ddc84;
            border-top: 60px solid #df5000;
            border-right: 40px solid #a71d5d;
            border-bottom: 40px solid #ee9900;
        }

在这里插入图片描述
可以看到:交汇点在不断向右下角移动

  • 将右下边框设为0,再看看
        .t6{
            width: 0px;
            height: 0px;
            border: 0;
            border-left: 60px solid #3ddc84;
            border-top: 60px solid #df5000;
            /*border-right: 40px solid #a71d5d;*/
            /*border-bottom: 40px solid #ee9900;*/
        }

在这里插入图片描述
和想象中一样吗,可以看到,此时,这个交汇点已经完全来到了右下角

  • 如果此时,我们再调整左上边框宽度为不同的值就得到一个两种颜色组成的长方形
        .t6{
            width: 0px;
            height: 0px;
            border: 0;
            border-left: 30px solid #3ddc84;
            border-top: 60px solid #df5000;
            /*border-right: 40px solid #a71d5d;*/
            /*border-bottom: 40px solid #ee9900;*/
        }

在这里插入图片描述

  • 此时,再想得到一半,就简简单单了,只需要将其中一个边框的颜色设置为 透明就OK啦
        .t6{
            width: 0px;
            height: 0px;
            border: 0;
            border-left: 30px solid #3ddc84;
            border-top: 60px solid transparent;
            /*border-right: 40px solid #a71d5d;*/
            /*border-bottom: 40px solid #ee9900;*/
        }

  • 稍微想象一下,如果 只设置一条边框有宽度是什么效果。
    在这里插入图片描述

结论是,没任何效果;想象如果一个长方形,只有宽,而高等于0,是什么样的就了解了。

三角标总结

交汇点的移动是相对 几条边框而言的;既可以把理解为左上角移动也可以是右下移动
或者 右上角和左下角。
对于不熟悉的可以参考以下步骤练习:

  1. 拿到要实现的效果
  2. 手动将三角标的另一半补齐,形成一个长方形
  3. 选择一个交汇点,三角形的任何一个非直角点都可以
  4. 以此得到 交汇点移动方向(左上/右下,左下/右上等)
  5. 由移动方向得出,哪两条边有宽度
  6. 最终得出,两边框的宽度以及哪条边透明

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

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

相关文章

《编程思维与实践》1052.删除注释

《编程思维与实践》1052.删除注释 题目 思路 将所有可能的情况枚举出来: 1.在有效的块注释内: 有效是指块注释不在引号内,如char *s" \ * xxxxxxx *\ "就不是一个有效的块注释, 这种情况下跳过之后所有的内容,直到遇到*/后才重新判断情况; 2.在有效的行注释内: 同理…

ChatGPT :国内免费可用 ChatGPT +Midjourney绘图

前言 ChatGPT&#xff08;全名&#xff1a;Chat Generative Pre-trained Transformer&#xff09;&#xff0c;美国OpenAI 研发的聊天机器人程序 &#xff0c;于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c;它能够通过理解和学习人类的语言来…

Spring Security 06 Rember Me

目录 基本使用 原理分析 RememberMeServices TokenBasedRememberMeServices 总结 内存令牌 PersistentTokenBasedRememberMeServices 使用内存中令牌实现 持久化令牌 自定义记住我 自定义认证类 LoginFilter 自定义 RememberMeService 配置记住我 RememberMe …

使用多线程执行任务,并获取返回结果,附异步实现

1 获取又返回结果的 需要用到 callable接口 public class TestTask implements Callable<Student> {Overridepublic Student call() throws Exception {Thread.sleep(1500);Student student new Student();student.setAge(10);student.setName("里里");Syste…

Ceph对象存储使用

文章目录 对象存储简介RadosGW简介RadosGW配置RGW使用的存储池配置rgw使用的http端口配置rgw使用https配置rgw高可用 客户端s3cmd测试数据读写创建rgw用户安装s3cmd客户端配置s3cmd访问rgw测试数据读写bucket授权 对象存储简介 对象存储是无层次结构的数据存储方法&#xff0c…

QT+OpenGL反射与折射

文章目录 QTOpenGL反射与折射反射折射 QTOpenGL反射与折射 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 反射 反射这个属性表现为物体(或者物体的一部分)反射它周围的环境&#xff0c;即根据观察者…

【Python入门篇】——Python基础语法(字符串格式化,表达式格式化和数据输入)

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; Python入门&#xff0c;本专栏主要内容为Python的基础语法&#xff0c;Python中的选择循环语句…

STM32CubeMx+HAL库+小熊派+FreeRTOS+EasyLogger+Gitee+手把手教你

文章目录 1、创建工程配置RCC与SYS配置LED配置KEY配置串口生成工程 2、手动移植Freertos获取源码移植include移植portable移植src复制并修改FreeRTOSConfig.hkeil中添加路径与配置 3、移植EasyLogger获取源码复制easylogger文件keil中添加路径修改elog.h修改elog_port.c修改elo…

MacOS自定义安装 Python

Python 下载地址 官网下载太慢&#xff0c;如下是国内的镜像源&#xff0c;各版本都有&#xff1a;Python 国内镜像 下载好后缀是 tgz 的包进行解压 tar -zxvf Python-3.9.16.tgz进入目录并且对进行配置&#xff0c;编译(根据自己的目录进行调整) ./configure --with-opens…

Excel技能之图表,会Excel就能碾压程序员

数据可视化&#xff0c;让数据说话&#xff0c;需要Excel图表的呈现。你越用心&#xff0c;画的图越好看。 同一份数据&#xff0c;用不同的Excel图表展现出来&#xff0c;效果各有千秋。使用正确的图表&#xff0c;从一堆杂乱无章的数据中找出规律。不仅要知道怎么用图表&…

sentinel 随笔 1-流控

0. 想要个半个月的旅游 最近发现算法比较有意思一些&#xff0c;什么企业框架都是看不完的… 书接 FlowSlot 1. FlowRuleChecker.checkFlow() : 配置的规则校验类 sentinel 并没有对这个Checker进行抽象的设计&#xff0c;第一次看有些别扭… package com.alibaba.csp.sent…

矢量绘图UI设计Sketch

Sketch是一款Mac操作系统上常用的矢量图形编辑软件&#xff0c;旨在帮助用户设计和创建高质量的UI和UX界面。 软件安装&#xff1a;Sketch 中文 以下是Sketch软件的一些主要特点&#xff1a; 矢量工具和对象&#xff1a;Sketch提供了多种画线、填充、阴影、文本和形状等矢量工…

Illustrator如何使用图形对象的特殊效果之实例演示?

文章目录 0.引言1.制作毛球小怪物2.制作三维立体图形3.3D剪影球体艺术海报 0.引言 因科研等多场景需要进行绘图处理&#xff0c;笔者对Illustrator进行了学习&#xff0c;本文通过《Illustrator CC2018基础与实战》及其配套素材结合网上相关资料进行学习笔记总结&#xff0c;本…

Unity大面积草地渲染——1、Shader控制一棵草的渲染

大家好&#xff0c;我是阿赵。 这里开始讲大面积草地渲染的第一个部分&#xff0c;一棵草的渲染。按照惯例&#xff0c;完整shader在最后。前面是原理的介绍。 一、准备的资源 这里我自己随便做了一个草的模型&#xff0c;主要是用几个面片搭建的一个简单模型。 然后我准备…

DAP之FLM算法研究

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题); 写在专栏前面https://blog.csdn.net/Junping1982/article/details/129955766 玩过自制DAP工具的一定都知道通过MDK目录的FLM文…

priority_queue

priority_queue&#xff1a;优先队列 头文件还是 < queue> 本质就是堆&#xff1a;完全二叉树 条件&#xff08;任意节点都比其孩子大&#xff08;大根堆&#xff09;&#xff09; priority_queue的默认比较是less&#xff0c;但是建出来的是大根堆&#xff1b;sort排序…

顺序表的基本操作(初始化,增,删,查,改等等)

1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构&#xff0c;也就说是连续的一条直线…

智能算法系列之蚁群算法

本博客封面由ChatGPT DALLE 2共同创作而成。 文章目录 前言1. 算法思想2. 算法流程3. 细节梳理4. 算法实现4.1 问题场景4.2 代码实现 代码仓库&#xff1a;IALib[GitHub] 前言 本篇是智能算法(Python复现)专栏的第五篇文章&#xff0c;主要介绍蚁群算法(Ant Colony Optimizati…

cmd@快捷键方式@静默执行命令

文章目录 ref快捷方式执行命令行或打开文件eg:直接打开某个文件 创建快捷方式eg:快捷方式运行命令 ref How can I execute a Windows command line in background? - Super Userstbrenner/SilentCMD: SilentCMD executes a batch file without opening the command prompt wi…

如何用100天时间,让CSDN的粉丝数从0狂飙到10000

2022年10月7日&#xff0c;正式开通了CSDN账号。但因为工作忙的原因&#xff0c;一直没有时间写博客文章&#xff0c;也没有投入精力在CSDN上。理所当然的&#xff0c;我的粉丝数量很稳定&#xff0c;一直保持着0的记录。 2023年春节假期过后&#xff0c;有点空闲时间了&#x…