有趣的css - 第一个字符串自动生成文字图标

news2024/12/27 12:45:44

1200_670 5.png

在设计 app 界面的时候,要展示一部分最新的资讯入口,然后出了一张下面的 UI 稿。

UI稿截图如下:

image.png

列表设计比较简单,就是列表前面的圆形图标这块,我个人觉得还是有点意思的。

一般的话,大概率都是用js限制字符串长度,然后截图第一个字符串显示到圆里。

但是有些时候,英文和中文在字符串限制时,中文是占两个字符的。

这样的话,图标可能会发生变形,字符会不居中。

我就想能不能用 css 来实现这样的图标样式。


废话到此,先来个demo。

html部分:

<ul>
	<li><span>第一个字符串生成文字图标</span>第一个字符串生成文字图标</li>
	<li><span>用CSS可以做什么?</span>用CSS可以做什么?</li>
	<li><span>前端的致命诱惑</span>前端的致命诱惑</li>
</ul>

css部分:

span{
	width: 42px;
	height: 42px;
	line-height: 40px;
	color: #1E47ED;
	font-size: 18px;
	font-weight: 700;
	text-indent: 12px;
	border-radius: 50%;
	display: block;
	float: left;
	overflow: hidden;
	background-color: #eaeaea;
	letter-spacing: 20px;
	margin-right: 15px;
}

主要看 css 部分,先固定 span 标签宽高为,圆角 50%,然后设定行高,让字符垂直居中;

设定 overflow: hidden,限制字符溢出;

然后设定 letter-spacing: 200px ,让字符间距变大,不让第二个字符显示到 span 中;

然后设定 text-indent: 12px,来让第一个字符居中。

至此,这个字符图标就用 css 实现了。

渲染效果:

image.png

完整代码:

HTML

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>04 第一个字符串生成文字图标</title>
</head>
<body>
    <div class="app">
        <ul>
        	<li><span>第一个字符串生成文字图标</span>第一个字符串生成文字图标</li>
        	<li><span>用CSS可以做什么?</span>用CSS可以做什么?</li>
        	<li><span>前端的致命诱惑</span>前端的致命诱惑</li>
        </ul>
    </div>
</body>
</html>

CSS

*{
    margin: 0;
    padding: 0;
    list-style: none;
    transition: .5s;
}
html,body{
    background-color: #f5f5f5;
    color: #fff;
    font-size: 14px;
}
.app{
    width: 100%;
    height: 100vh;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}
.app ul {
	max-width: 300px;
}
.app ul li{
	width: 100%;
	color: #152239;
	font-size: 16px;
	line-height: 42px;
	margin: 15px 0;
	float: left;
}
.app ul li span{
	width: 42px;
	height: 42px;
	line-height: 40px;
	color: #1E47ED;
	font-size: 18px;
	font-weight: 700;
	text-indent: 12px;
	border-radius: 50%;
	display: block;
	float: left;
	overflow: hidden;
	background-color: #eaeaea;
	letter-spacing: 20px;
	margin-right: 15px;
}

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 阅读原文

我是 Just,这里是[ 设计师工作日常 ],求点赞求关注!!!

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

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

相关文章

ASP .NET Core Api 使用过滤器

过滤器说明 过滤器与中间件很相似&#xff0c;过滤器&#xff08;Filters&#xff09;可在管道&#xff08;pipeline&#xff09;特定阶段&#xff08;particular stage&#xff09;前后执行操作。可以将过滤器视为拦截器&#xff08;interceptors&#xff09;。 过滤器级别范围…

《SPSS统计学基础与实证研究应用精解》视频讲解:在线分析处理报告

《SPSS统计学基础与实证研究应用精解》5.1 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解5.1节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会使…

RabbitMQ“延时队列“

1.RabbitMQ"延时队列" 延迟队列存储的对象是对应的延迟消息&#xff0c;所谓“延迟消息”是指当消息被发送以后&#xff0c;并不想让消费者立刻拿到消息&#xff0c;而是等待特定时间后&#xff0c;消费者才能拿到这个消息进行消费 注意RabbitMQ并没有延时队列慨念,…

图片中的水印怎么去掉?教你三个去水印方法

在拍摄照片时&#xff0c;有时候会遇到不期而遇的路人出现在镜头中&#xff0c;给照片带来不必要的干扰。这时候我们就需要把路人给去掉&#xff0c;让照片变的更加完美。下面我将给大家分享三个把照片中的路人去掉的小妙招。 一、水印云 水印云是一款非常实用的图片处理工具…

机器学习3-简单线性回归

需求&#xff1a; 现在要根据学生的学习时间来预测学习成绩&#xff0c;给出现有数据&#xff0c;用来训练模型并预测新数据。 分析&#xff1a; 使用线性回归模型。 代码&#xff1a; import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection i…

Day02-课后练习2(数据类型和运算符)

参考答案博客链接跳转 文章目录 巩固题1、案例&#xff1a;今天是周2&#xff0c;100天以后是周几&#xff1f;2、案例&#xff1a;求三个整数x,y,z中的最大值3、案例&#xff1a;判断今年是否是闰年4、分析如下代码的计算结果5、分析如下代码的计算结果6、分析如下代码的计算…

SpringBoot之JWT登录

JWT JSON Web Token&#xff08;JSON Web令牌&#xff09; 是一个开放标准(rfc7519)&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于在各方之间以JSON对象安全地传输信息。此信息可以验证和信任&#xff0c;因为它是数字签名的。jwt可以使用秘密〈使用HNAC算法…

做人力RPO蓝海项目需要有人力资源工作经验吗?

在当前的商业环境中&#xff0c;人力资源外包服务已经成为了许多企业的选择。其中&#xff0c;人力RPO(招聘流程外包)作为人力资源外包的一种形式&#xff0c;尤其在蓝海项目中备受瞩目。那么&#xff0c;对于想要涉足人力RPO领域的个人或企业来说&#xff0c;是否需要具备丰富…

uniapp 解决键盘弹出页面内容挤压问题

page.json 配置 加 “app-plus”: { “softinputMode”: “adjustResize” } {"path": "pages/jxx/xx","style": {"navigationBarTitleText": "贺卡DIY","enablePullDownRefresh": false,"app-plus": {…

Mysql查询数据

1 基本查询语句 MySQL从数据表中查询数据的基本语句为SELECT语句。SELECT语句的基本格式是&#xff1a; 2 单表查询 2.1 查询所有字段 SELECT * FROM 表名; 2.2 在SELECT语句中指定所有字段 SELECT f_id, s_id ,f_name, f_price FROM fruits; 2.3 查询单个字段 SELECT 列名FR…

字节8年经验之谈 —— 如何编写出色的接口测试用例?

简介&#xff1a;在所有的开发测试中&#xff0c;接口测试是必不可少的一项。有效且覆盖完整的接口测试&#xff0c;不仅能保障新功能的开发质量&#xff0c;还能让开发在修改功能逻辑的时候有回归的能力&#xff0c;同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原…

双非本科准备秋招(9.3)—— JVM2

学这个JVM还是挺抽象的&#xff0c;不理解的东西我尽量记忆了&#xff0c;毕竟刚接触两天&#xff0c;也没遇到过实际应用场景&#xff0c;所以学起来还是挺费劲的&#xff0c;明天再补完垃圾回收这块的知识点。U•ェ•*U 先补一下JVM运行时的栈帧结构。 线程调用一个方法的执…

【第十九课】BFS:广度优先搜索 (acwing-844走迷宫 / 含过程演示的视频推荐 / c++代码)

目录 BFS思路 可能需要看的视频和博客 代码如下 输出最短路径途径点 关于这种类型的题&#xff0c;我是有点印象的。。。当时蓝桥杯校内选拔就有这种题&#xff0c;当时还没学算法hhh BFS思路 对应上图来理解BFS的方式还是很容易的&#xff0c;只是如何在题目中应用BFS的思…

【C++】2024.01.29 克隆机

题目描述 有一台神奇的克隆机&#xff0c;可以克隆任何东西。将样品放进克隆机&#xff0c;可以克隆出一份一样的“复制品”。小明得到了 k 种珍贵的植物种子&#xff0c;依次用 A,B,C,D,...,Z 表示&#xff08;1≤k≤26&#xff09;。一开始&#xff0c;每种植物种子只有…

如何在Shopee波兰站点进行选品和销售策略

在Shopee波兰站点进行选品时&#xff0c;卖家需要考虑一些热销品类和策略&#xff0c;以提高产品的市场竞争力和销售业绩。以下是一些值得考虑的关键品类和策略&#xff0c;帮助卖家在波兰市场取得成功。 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff08;…

DS:经典算法OJ题(1)

创作不易&#xff0c;友友们给个三连呗&#xff01;&#xff01; 本文为经典算法OJ题练习&#xff0c;大部分题型都有多种思路&#xff0c;每种思路的解法博主都试过了&#xff08;去网站那里验证&#xff09;是正确的&#xff0c;大家可以参考&#xff01;&#xff01; 一、移…

【docker】Docker-compose单机容器集群编排

一、Compose的相关知识 1. Compose的相关概念 Compose是单机编排容器集群或者是分布式服务容器的应用工具。通过Compose&#xff0c;可以使用YAML文件来配置应用程序的服务。然后&#xff0c;使用一个命令&#xff0c;就可以从配置中创建并启动所有服务。 Docker-Compose是一…

VScode通过SSH连接远程服务器

一. 在VScode上安装SSH插件 直接在VScode应用商店搜索安装即可: 二. 登陆服务器的root用户 使用命令"su -"或者"sudo -i -u root"都可以。 三.用vim编辑器打开服务器的SSH配置文件,把PasswordAuthentication后面的no改为yes&#xff0c;表示SSH允许远程密…

MySql的使用方法

一.什么是MySql MySql是一种数据库管理系统&#xff0c;是用来存储数据的&#xff0c;可以有效的管理数据&#xff0c;数据库的存储介质为硬盘和内存。 和文件相比&#xff0c;它具有以下优点&#xff1a; 文件存储数据是不安全的&#xff0c;且不方便数据的查找和管理&#xf…

Java项目:基于SSM框架实现的高校毕业生就业管理系统(ssm+B/S架构+源码+数据库+毕业论文)

一、项目简介 本项目是一套ssm817基于SSM框架实现的高校毕业生就业管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调…