html - 谷歌图标不是二次的,代码不起作用
问题描述
所以我在我正在写的网站上使用谷歌图标,我有两个问题:
正如它在此处的文档中所说,您可以使用具有正确类的 span 元素,只需将图标名称放入其中,它就会起作用。这很好,但由于它显然不适用于所有浏览器,我想尝试提到的另一种方法:
对于不支持连字的浏览器,回退到使用数字字符引用指定图标
但是,我不明白这些数字字符引用是如何工作的。我尝试&#xxxx;
就像在示例中一样,使用在“代码点”下为每个图标提供的代码代替 x,但这不起作用。我究竟做错了什么?
我遇到的第二个问题是我使用了一个按钮图标(连字方式,因为这是我唯一需要工作的方式),而且它不是二次的。按钮和图标类没有应用特殊样式,除了颜色变化,但由于某种原因,按钮的内容比宽度高得多(如果我没记错的话,24 x 29.xxx,字体大小为24 像素)。按钮内的跨度是 24 x 24,但按钮内容不是。
正如您所看到的,当检查时,加号下方的空间比它上方的空间多,这使得按钮不像我想要的那样是二次方的。我已经尝试将 line height 属性更改为 1,虽然这确实减少了底部的空间,但仍然不均匀。而且我什至没有在其他任何地方设置行高,所以我很惊讶它有任何效果,因为我认为 1 将是标准。
button {
line-height: 1;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
</head>
<body>
<button type="button">
<span class="material-icons">add</span>
</button>
</body>
</html>
只需突出显示按钮文本,您就会看到它。
解决方案
要将元素设置为正方形,您可以使用aspect-ratio: 1 / 1;
要将按钮内的图标居中,您可以使用 flexbox:
/* makes the button square */
button {
aspect-ratio: 1/1;
}
/* cenetrs the icon horizontally and vertically */
button {
display: flex;
align-items: center;
justify-content: center;
}
<!-- Head -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- Body -->
<button type="button">
<span class="material-icons">add</span>
</button>
推荐阅读
- html - 使图像充当文本下划线
- java - 具有无限循环的守护线程未终止
- django - 一旦服务器在 django 中启动,如何将文件加载到内存中?
- rest - 如何删除远程地址?
- python - 按单词相似度查找 csv 行
- selenium - 是否可以在 Jenkins 声明性管道中启用 Xvfb 以执行 Selenium 无头测试
- java - @RestController 是否有办法在没有 Servlet 和 HttpServletRequest 的情况下进行过滤或拦截?
- node.js - 使用 package-lock.json 为特定节点版本安装 npm 依赖项
- android - 如何解决在 Flutter 中启动应用程序时无法在 C:\Users\iampr\AppData\Local\Android\sdk 中找到带有哈希字符串 'android-27' 的目标
- php - ACF WP_Query 按分类字段筛选