material-icons:轻量级自托管材料设计图标字体与CSS框架

需积分: 50 1 下载量 121 浏览量 更新于2024-12-25 收藏 3.2MB ZIP 举报
资源摘要信息:"Material Icons是一个开源的图标字体和CSS框架,它专门为自托管图标的需求而设计。该框架遵循Google的Material Design理念,提供了丰富的图标资源,使得用户可以轻松地将这些图标整合到自己的项目中。Material Icons的主要优势在于它的轻量级设计,仅包含了图标字体文件和必要的CSS样式文件,因此,与官方的material-design-icons包相比,它更加轻便且易于安装。此外,它支持通过npm包管理器进行安装,简化了开发者的工作流程。 Material Icons的使用方式相对简单,开发者可以通过下载或者使用npm命令来安装该字体和CSS框架。安装完毕后,通过CSS链接的方式将样式表导入项目中。之后,开发者可以利用HTML标签配合预定义的类名来展示这些图标。例如,通过使用`<span>`标签并赋予`class="material-icon"`属性,开发者便可以在网页上展示各种图标。 由于Material Icons的图标是通过字体文件提供的,它们支持任意大小和颜色的调整,并且可以使用标准的Web字体技术轻松地进行样式定制。这意味着图标可以无缝地集成到各种设计中,并且可以通过Web技术轻松地进行动画和交互效果的添加。 该框架支持的标签包括`<span>`, `<div>`, `<i>`等常用的HTML元素,而类名则通常是`material-icons`,这个类名与图标字体相绑定,使得开发者可以非常方便地调用各种图标。 Material Icons使用了Material Design中的一系列图标设计规范,这些规范由Google精心设计,旨在为用户提供直观、一致的用户体验。图标集包含了许多分类,如用户界面元素、交通指示、通信、内容和购物等,几乎覆盖了构建现代网页或应用所需的所有场景。 需要注意的是,Material Icons的设计风格与Material Design紧密相连,因此在使用时需要确保项目的设计风格与Material Design保持一致,以便获得最佳的视觉效果和用户体验。 在实际开发过程中,开发者可能需要根据项目需求选择合适的图标。Material Icons提供的图标样式与官方material-design-icons包保持一致,但提供了更为轻量级的选项,这对于需要优化加载速度和性能的项目来说是一个巨大的优势。 总的来说,Material Icons是一个非常实用的图标字体和CSS框架,特别适合需要快速整合Material Design风格图标的Web开发项目。通过使用这一框架,开发者可以以一种简单、高效的方式提升他们网页和应用的视觉表现力和用户体验。"

<template> <view class="box"> <view style="text-align: center;padding: 10rpx;"> <image class="image" src="../../static/images/icons/male.png" mode="scaleToFill" /> <view style="font-size: 24rpx;color: #a6a8ac;">男生</view> </view> <view class="mid"> <view class="flex" style="justify-content: space-between;"> <view class="males">{{ malePercent }}%</view> <view class="females">{{ femalePercent }}%</view> </view> <view class="progress-bar"> <view class="male" :style="{ width: malePercent + '%' }"></view> <view class="progress"> <view class="progress-bar-inner" :style="{ width: percent + '%' }"></view> </view> <view class="female" :style="{ width: femalePercent + '%' }"></view> </view> </view> <view style="text-align: center;padding: 10rpx;"> <image class="image" src="../../static/images/icons/female.png" mode="scaleToFill" /> <view style="font-size: 24rpx;color: #a6a8ac;">女生</view> </view> </view> </template> <script setup> import { computed } from 'vue' const props = defineProps({ male: { type: Number, requirde: true }, female: { type: Number, requirde: true }, }) // 总比例 const percent = computed(() => { return props.male / (props.male + props.female) * 100 }) // 男生比例 const malePercent = computed(() => { return Math.round(props.male / (props.male + props.female) * 100) }) // 女生比例 const femalePercent = computed(() => { return Math.round(props.female / (props.male + props.female) * 100) }) </script> <style lang="scss" scoped> .progress-bar { display: flex; align-items: center; height: 30rpx; width: 100%; border: 1px solid #ccc; border-radius: 30rpx; overflow: hidden; } .progress-bar .male, .progress-bar .female { display: flex; justify-content: center; align-items: center; height: 100%; color: #fff; font-size: 14px; font-weight: bold; } .progress-bar .male { flex: 0 0 auto; background-color: #007bff; } .progress-bar .progress { flex: 1 1 auto; height: 100%; position: relative; } .progress-bar .progress .progress-bar-inner { height: 100%; background-color: #28a745; position: absolute; top: 0; left: 0; } .progress-bar .female { flex: 0 0 auto; background-color: #dc3545; } .content { justify-content: space-between; } .males { color: #007bff; font-size: 24rpx; } .females { color: #dc3545; font-size: 24rpx; } .box { display: flex; justify-content: space-around; align-items: center; margin-top: 50rpx; margin-bottom: 50rpx; .mid { width: 70%; } } .image { height: 60rpx; width: 60rpx; } </style> 帮我把上述代码改成只传male一个值就可以显示出male和female两个的比例出来

2023-06-03 上传