前端svg字体图标使用

In this article we will compare usage of Google's Material Design Icons, as font and SVG. And we will also see how we can use SVG sprites in an Angular application.

在本文中,我们将比较 Google的Material Design Icons (字体和SVG)的 用法 我们还将看到如何在Angular应用程序中使用SVG精灵。

材质图标 (Material Icons)

Material Icons are Google's official icon pack. They are carefully designed following Material Design Guidelines. It's one of the most widely used icon sets for both, web and mobile applications. It has got around 40k+ ⭐️ on github.

材质图标是Google的官方图标包。 它们是按照《 材料设计指南》精心设计的。 它是Web和移动应用程序中使用最广泛的图标集之一。 在github上大约有40k +⭐️。

The easiest way to include the material icons is to use material icon font. All the material icons are packaged into a single font.

包含材料图标的最简单方法是使用材料图标字体。 所有的材料图标都打包为一种字体。

You just need to add single line of HTML:

您只需要添加一行HTML:

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

And then you can use them easily, See below example:

然后,您可以轻松使用它们,请参见以下示例:

<i class="material-icons">face</i>

To further style them, check this official guide.

要进一步设计样式,请查看此官方指南 。

The material icons are also provided as SVGs that are suitable for web projects. Individual icons are downloadable from the material icons library.

素材图标也以SVG的形式提供,适用于Web项目。 单个图标可从材料图标库下载。

For Angular, we can also use @angular/material's icon component, with some additional setup. To summarize, below are the steps which will be needed:

对于Angular,我们还可以使用@angular/material的icon组件 ,并进行一些附加设置。 总结一下,下面是需要执行的步骤:

  1. Add @angular/material by running ng add @angular/material

    添加@angular/material通过运行ng add @angular/material

  2. Import MatIconModule

    导入MatIconModule

  3. Create svg file for the icon under assets

    在素材资源下为图标创建svg文件
  4. Register the same svg file for it's corresponding icon. For example, you can do below in a component:

    为相同的图标注册相同的svg文件。 例如,您可以在下面的组件中执行以下操作:
...
constructor(iconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {
iconRegistry.addSvgIcon(
'thumbs-up',
sanitizer.bypassSecurityTrustResourceUrl('assets/img/examples/thumbup-icon.svg'));
}
...

and then use it in HTML:

然后在HTML中使用它:

<mat-icon svgIcon="thumbs-up" aria-hidden="false" aria-label="Example thumbs up SVG icon"></mat-icon>

Now, 🔁 repeat steps 3 and 4 for all your icons.

现在,🔁对所有图标重复步骤3和4。

字体与SVG (Font vs SVG)

There are multiple aspects when it comes to selection. We are going to look at the most important ones only:

选择涉及多个方面。 我们将只看最重要的那些:

  • Bundle size

    捆束尺寸
  • Performance

    性能

📦捆束尺寸 (📦 Bundle size)

Image for post
source资源

Clearly, font file is winner when it comes to bundle size. But, SVG file size can be reduced considerably by compiling only the icons you need into a single SVG file with symbol sprites. We will look into it later on.

显然,字体大小是捆绑软件的赢家。 但是,通过仅将需要的图标编译到带有符号精灵的单个SVG文件中,可以大大减小SVG文件的大小。 稍后我们将对其进行研究。

🎭表现 (🎭 Performance)

Now let's see which one looks better in browser, we will use standard sizes suggested by Google Material Design in sizing, i.e. 18px, 24px, 36px and 48px.

现在让我们看看哪一个看起来更好的浏览器,我们将使用由谷歌材料设计建议标准尺寸的大小 ,即18px24px36px48px

Image for post

As you can see, they both look almost same for 24px, 36px and 48px. Let's try by reducing the size to 18px:

如您所见,对于24px36px48px ,它们看起来几乎相同。 让我们尝试将大小减小到18px

Image for post

Ok, as you can see for 18px, font loses its consistency around circular edges while svg still looks good. But, it totally depends on which icons you're using. For instance, look at below:

好的,如您所见,对于18px ,字体在圆形边缘周围失去了一致性,而svg仍然看起来不错。 但是,这完全取决于您使用的图标。 例如,看下面:

Image for post

done_all and swap_horiz don't have round edges, that's why they look fine in font, too.

done_allswap_horiz没有圆角,这就是为什么它们的字体也很好的原因。

💻 Code for above preview samples is available here.

above 此处 提供上述预览示例的代码

🏆选择什么 (🏆 What to choose)

As you saw, except for some cases, font and svg, both perform well in browsers. But we can improve the bundle size of svg, by compiling only the icons we need in a single file. Let's see how we can do it in Angular.

如您所见,除了某些情况外,字体和svg在浏览器中均表现良好。 但是,通过仅在单个文件中编译所需的图标,我们可以提高svg的捆绑包大小。 让我们看看如何在Angular中做到这一点。

⛳在Angular中使用材质图标SVG符号精灵 (⛳ Using material icon SVG symbol sprites in Angular)

First of all, compiling single file with svg symbol sprite is not related to Angular or any other web framework. It's an opinionated way of achieving cost and performance effective solution to use material icons in your web application. You can read more about it here.

首先,使用svg符号sprite编译单个文件与Angular或任何其他Web框架无关。 这是一种实现成本和性能有效的解决方案的自以为是的方法,可以在Web应用程序中使用材质图标。 您可以在此处了解更多信息。

Image for post

Setup️设置 (🛠️ Setup)

Go to your favorite 📁 directory and open-up the 👨‍💻 terminal.

转到您最喜欢的📁目录并打开👨‍💻终端。

  1. npm i -g @angular-cli

    npm i -g @angular-cli

  2. ng new material-svg-sprites --minimal --interactive=false

    ng new material-svg-sprites --minimal --interactive=false

  3. Go to 😴 sleep for sometime and wake-up once above command is done 🏃 running

    进入😴睡眠一段时间,完成上述命令后🏃唤醒wake运行
  4. cd material-svg-sprites

    cd material-svg-sprites

Cool. Let's move on to next part.

凉。 让我们继续下一部分。

Co️编码 (⚔️ Coding)

1. Create <app-icon> component

1.创建 <app-icon> 组件

Open-up another terminal at the project directory and:

在项目目录中打开另一个终端,然后:

ng g c icon --inlineStyle --inlineTemplate=false

👉 Ideally, you should create such components in a shared module. For more, head out to official docs.

👉理想情况下,您应该在共享模块中创建此类组件。 有关更多信息,请访问 官方文档

2. Modify icon component class

2.修改图标组件类

Let's add 2 @Input s to our component:

让我们在组件中添加2个@Input

// src\app\icon\icon.component.ts
import { Component, Input, OnInit } from "@angular/core";
@Component({
selector: "app-icon",
templateUrl: "./icon.component.html",
styles: [],
})
export class IconComponent implements OnInit {
@Input() size = 24; // 👈 added
@Input() name = 'face'; // 👈 added
constructor() {}
ngOnInit(): void {}
}

So, size is going to be responsible for size (height and width), of-course 😅. And name represents name of the icon, by default we will show face, cz it looks nice 😊.

因此, size将决定路线😅的尺寸(高度和宽度)。 name代表图标的名称,默认情况下,我们将显示face ,cz看起来不错nice。

3. Modify icon component template

3.修改图标组件模板

<!-- src\app\icon\icon.component.html -->
<svg [ngStyle]="{ height: size + 'px', width: size + 'px' }">
<use [attr.href]="'assets/icons/sprites.svg#' + name"></use>
</svg>

Let's see what's going on here...

让我们看看这里发生了什么...

  1. [ngStyle]- we are going to use @Input() size here to give fixed height and width to our svg

    [ngStyle] -我们将在此处使用@Input() size为svg提供固定的高度和宽度

  2. <use>- this element takes nodes from within the SVG document, and duplicates them somewhere else. As you can see in its href, we are giving location of the icon which are going to use.

    <use> -此元素从SVG文档中获取节点,并将其复制到其他位置。 如您在href所见,我们给出了将要使用的图标的位置。

From this, you might have understood that sprites.svg is going to be our single file with svg symbol sprites. Let's get into that.

由此,您可能已经了解到sprites.svg将成为带有svg符号sprites的单个文件。 让我们开始吧。

4. Create 📄 sprites.svg

4.创建📄sprites.svg

Now, we are not directly going to create sprites file, we are going to automate the flow. To summarize we are going to do below:

现在,我们不会直接创建精灵文件,而是将流程自动化。 总结一下,我们将在下面做:

  1. Download SVG files for the icons which we need from material icons library. We will keep them at 📁 src/icons/svg.

    从材质图标库中下载我们需要的图标的SVG文件。 我们将它们保留在src / icons / svg中

  2. Read them and convert them into <symbol>

    阅读它们并将其转换为<symbol>

  3. Combine all <symbol> to one single file, i.e. 📄 sprites.svg under directory

    将所有<symbol>合并为一个文件,即目录下的📄sprites.svg

  4. Repeat steps 2 and 3 whenever any new icon is added under 📁 src/icons/svg

    每当在src / icons / svg下添加任何新图标时,请重复步骤2和3。

To automate above flow, we will use gulp. You do not need to have detailed understanding of gulp, just remember that it's a toolkit to automate and enhance our workflow.

为了使流程自动化,我们将使用gulp 。 您不需要对gulp有所了解,只需记住这是一个自动化和增强我们的工作流程的工具包。

4.1 📄 gulpfile.js

4.1📄gulpfile.js

Let's install some devDependencies first:

让我们先安装一些devDependencies:

npm i -D gulp gulp-svgstore gulp-svgmin path gulp-rename gulp-run-command

Now create 📄 gulpfile.js:

现在创建📄gulpfile.js

// gulpfile.js
const gulp = require("gulp");
const svgstore = require("gulp-svgstore");
const svgmin = require("gulp-svgmin");
const rename = require("gulp-rename");
const run = require("gulp-run-command").default;
gulp.task("svg-sprite", () => {
return gulp
.src("src/icons/svg/*.svg")
.pipe(
svgmin(() => {
return {
plugins: [
{
removeViewBox: false,
},
{
removeDimensions: true,
},
],
};
})
)
.pipe(svgstore())
.pipe(rename({ basename: "sprites" }))
.pipe(gulp.dest("src/assets/icons"));
});
gulp.task("ng-serve", run("ng serve -o"));
gulp.task("ng-build", run("ng build --prod"));
gulp.task("watch", () =>
gulp.watch(["src/icons/svg/*.svg"], gulp.series("svg-sprite"))
);
gulp.task(
"default",
gulp.series("svg-sprite", gulp.parallel("ng-serve", "watch"))
);
gulp.task("build", gulp.series("svg-sprite", "ng-build"));

Without much details, below is the flow of default task gulp:

没有太多的细节,下面是默认任务的流程:

  1. Read all .svg files from 📁 src/icons/svg. This is the folder where we will download all of our icon svg files.

    📁src / icons / svg中读取所有.svg文件。 这是我们将下载所有图标svg文件的文件夹。

  2. Minify them by keeping viewBox and removing dimensions. Thanks to gulp-svgmin

    通过保留viewBox并删除尺寸来viewBox尺寸。 感谢gulp-svgmin

  3. Compile all of it in <symbol> and merge them into single svg file. With this, it should also keep id of <symbol> same as filename, which will be useful in our <app-icon> component template's <use> tag's href attribute. Credit goes to gulp-svgstore

    <symbol>编译所有文件,然后将它们合并为单个svg文件。 这样,它还应该使<symbol> id与文件名相同,这将在我们的<app-icon>组件模板的<use>标记的href属性中有用。 归功于gulp-svgstore

  4. Rename the result file to 📄 sprites.svg using gulp-rename

    使用gulp -rename将结果文件重命名为📄sprites.svg

  5. And put that file at 📁 src/assets/icons

    并将该文件放在src / assets / icons

  6. Start Angular app by running command ng serve -o

    通过运行命令ng serve -o启动Angular应用

  7. Keep watching for svg files under 📁 src/icons/svg, if changed repeat steps 1, 2, 3, 4, 5.

    继续查看📁src / icons / svg下的svg文件,如果更改,请重复步骤1、2、3、4、5。

There is also one more task called build, which does the same thing as above, except it doesn't keep watching svg files and instead of ng serve, it runs ng build --prod.

还有一个名为build任务,它与上述功能相同,只是它不一直监视svg文件,并且它执行ng build --prod而不是ng serve

5. npm scripts

5. npm 脚本

As we have created 📄 gulpfile.js in such a way that it handles running of Angular project, too, we can simply have below script in our 📄 package.json to run it:

当我们以处理Angular项目运行的方式创建📄gulpfile.js时 ,我们只需在📄package.json中包含以下脚本即可运行它:

// package.json
...
"scripts": {
"ng": "ng",
"start": "gulp", // 👈 modified
"build": "gulp build", // 👈 modified
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
...

Now, we can simply run npm start and npm run build to run the project in watch mode and build it respectively.

现在,我们只需运行npm startnpm run build即可在监视模式下运行项目并分别构建它。

6. Icon SVGs

6.图标SVG

Download face icon's svg file from here or you can goto material icons library, find and download face icon's svg file.

从此处下载face图标的svg文件,或者您可以转到材质图标库 ,查找并下载face图标的svg文件。

Once it's downloaded, rename it to , so that when it gets compiled, id of <symbol> is face. Don't forget to keep it under 📁 src/icons/svg.

下载后,将其重命名为,以便在编译时, <symbol> idface 。 不要忘记将其保存在src / icons / svg下

7. <app-root> component

7. <app-root> 组件

We're almost done. Let's add reference to <app-icon> component in <app-root>. Simply have below in your template:

我们快完成了。 让我们在<app-root>添加对<app-icon>组件的引用。 只需在模板中包含以下内容:

<app-icon></app-icon>

And 🎉 voila!!! You should see face icon's svg in your browser.

和🎉瞧!!! 您应该在浏览器中看到人face图标的svg。

Also try by giving different sizes, like below, it should work fine:

也可以尝试提供不同的大小,如下所示,它应该可以正常工作:

<app-icon size="48"></app-icon>

With above, we done with all the setup and coding. Now, to use any other icon, for example icon, simply download it from material icons library, rename it to some memorable general keyword, put it under 📁 src/icons/svg. And use it like below:

通过上面的步骤,我们完成了所有的设置和编码。 现在,要使用其他任何图标,例如图标,只需从材质图标库下载它,将其重命名为一些令人难忘的常规关键字,然后将其放在src / icons / svg下即可 。 并如下所示使用它:

<app-icon name="done_all" size="36"></app-icon>

Great 👍!!! If you're with me up-to this, consider I am continuously 👏👏👏 clapping for you.

很棒👍! 如果您支持我,请考虑我一直在为您鼓掌。

Image for post

8.进阶 (8. Advanced)

This is some advanced changes which we will be doing for better alignment and size when icon is placed inline with text, this is totally optional.

这是一些高级更改,当图标与文本对齐放置时,我们将进行更好的对齐和调整大小,这完全是可选的。

8.1 <app-root> template changes

8.1 <app-root> 模板更改

First, let's see how it looks inline with text. For that, simply change <app-root> template:

首先,让我们看一下它与文本的内联外观。 为此,只需更改<app-root>模板:

<p>
Hi, I am a <code>&lt;p&gt;</code> tag with
<app-icon size="18"></app-icon> icon.
</p>
<h1>
Hi, I am a <code>&lt;h1&gt;</code> tag with
<app-icon size="36"></app-icon> icon.
</h1>

I have kept icon sizes at 1.125 multiplier with font size. So by default, in chrome, <p> and <h1> tags have 16px and 32px font size, so that will become 18px and 36px for icon size. You can choose your multiplier, but 1.125 works for me.

我将图标大小与字体大小保持在1.125乘数 。 因此,默认情况下,在chrome中, <p><h1>标签的字体大小为16px32px ,因此图标大小将分别为18px36px 。 您可以选择乘数,但1.125适用于我。

Let's look at output:

让我们看一下输出:

Image for post

As you can see, we need to really work on alignment. Let's do that.

如您所见,我们需要真正进行对齐。 来做吧。

8.2 <app-icon> component and template changes

8.2 <app-icon> 组件和模板更改

Modify <app-icon> component like below:

修改<app-icon>组件,如下所示:

// src\app\icon\icon.component.ts
...
export class IconComponent implements OnInit {
private readonly SIZE_MULTIPLIER = 1.125; // 👈 you can change this as per your need
_size = 24;
_top = 0;
@Input() name = "face";
@Input()
set size(size: "inherit" | number) {
if (size === "inherit") {
const parentElement = this.elRef.nativeElement.parentElement;
this._size = Math.ceil(
parseFloat(
window.getComputedStyle(parentElement).getPropertyValue("font-size")
) * this.SIZE_MULTIPLIER
);
this._top = -(this._size / Math.ceil(14.22 * this.SIZE_MULTIPLIER));
} else if (isNaN(size)) {
throw new Error('size must be a number or "inherit"');
} else {
this._size = size;
}
}
constructor(private elRef: ElementRef) {}
...
}<!-- src\app\icon\icon.component.html -->
<svg
[ngStyle]="{
height: _size + 'px',
width: _size + 'px',
top: _top + 'px'
}"
style="display: inline-block; vertical-align: top; position: relative;"
>
<use [attr.href]="'assets/icons/sprites.svg#' + name"></use>
</svg>

To summarize, below is what we did:

总结一下,下面是我们所做的:

  1. Instead of directly setting size, we introduced a property _size and used setter. So based on @Input() size, _size will be calculated.

    我们没有直接设置size ,而是引入了_size属性并使用了setter 。 因此,基于@Input() size ,将计算_size

  2. _top - this will help us to align icon properly.

    _top这将帮助我们正确对齐图标。

  3. _size setter - now, we are also accepting inherit as value. If user has provides inherit as value for @Input() size, we are getting icon's parentElement's font-size using window.getComputedStyle. And we are multiplying it with our multiplier, i.e. SIZE_MULTIPLIER = 1.125. Lastly, _top is also calculated. Everything is simple maths, you can play around and make changes as per your need.

    _size现在,我们也接受inherit作为值。 如果用户提供了@Input() size值作为inherit值,则使用window.getComputedStyle获取图标的parentElementfont-size 。 然后将其乘以乘数,即SIZE_MULTIPLIER = 1.125 。 最后,还要计算_top 。 一切都是简单的数学,您可以根据需要进行操作并进行更改。

  4. template - we have made some style changes so that it looks proper. Now, these style changes are really an opinionated way. You can select your own way, maybe make <svg>'s style position: absolute;top: 50%;height: <HEIGHT>;margin-top: -<HEIGHT/2> and wrap it inside an element with position: relative. You can read more about vertical-align at MDN Docs.

    模板-我们进行了一些样式更改,以使其看起来正确。 现在,这些样式更改确实是一种自以为是的方式。 您可以选择自己的方式,也许将<svg>的样式position: absolute;top: 50%;height: <HEIGHT>;margin-top: -<HEIGHT/2>并将其包装在具有position: relative的元素内。 您可以在MDN Docs上了解有关vertical-align更多信息。

👉 You can try to have fill-color set based on parent element and/or input.

👉您可以尝试 根据父元素和/或输入设置 fill-color

Now, let's look at the output in browser again:

现在,让我们再次查看浏览器中的输出:

Image for post

Alright, now it looks good.

好吧,现在看起来不错。

💻 Code for Angular application is present at github shhdharmen/material-svg-sprites

github shhdharmen / material-svg-sprites中 提供了Angular应用程序的代码

Image for post

☑️结论 (☑️ Conclusion)

  1. We learned what Google Material Design Icons are

    我们了解了什么是Google物料设计图标
  2. We also saw 2 ways of adding icons: Font and SVG

    我们还看到了两种添加图标的方法:字体和SVG
  3. We saw how we can create single svg sprite file of symbols using gulp in an Angular application

    我们看到了如何在Angular应用程序中使用gulp创建单个svg sprite符号文件
  4. And at last, we also took a look at how we can align the icon for inline text

    最后,我们还研究了如何对齐内联文本的图标

🙏谢谢你 (🙏 Thank you)

You guys have been great readers. I really appreciate that you've taken some time to read this article. Let me know your thoughts and feedbacks in the comments section.

你们一直是很棒的读者。 非常感谢您花了一些时间阅读本文。 在评论部分让我知道您的想法和反馈。

You can follow me on 🐦 twitter @shhdharmen. Don't be shy even just say hi 👋!

您可以在🐦twitter @shhdharmen上关注我。 不要害羞,甚至打个招呼👋!

And yes, always believe in yourself.

是的,永远相信自己。

Image for post
Photo by Tim Goedhart on Unsplash
Tim Goedhart在Unsplash上拍摄的照片

This article was originally published on blog.shhdharmen.me.

本文最初发布在 blog.shhdharmen.me上

翻译自: https://medium.com/swlh/material-design-icons-font-vs-svg-and-how-to-use-svg-sprites-in-angular-742819186743

前端svg字体图标使用

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 开了双眼皮应该吃什么

    ...

    2024/4/20 15:24:33
  2. 开了双眼皮吃什么消肿

    ...

    2024/4/20 15:24:32
  3. echarts钓鱼岛不显示,地图空隙问题(关于angular 使用echarts地图问题记录)

    1.echarts地图的使用&#xff0c;可以直接从echarts的npm包里引用&#xff0c;npm包面有map的js。不过echarts5之后的是没有map的js了&#xff0c;官方不提供了。 import echarts/map/js/china.js;引用方式 2.发现地图里面没有显示钓鱼岛&#xff08;我用的是echarts版本4.4.…...

    2024/4/20 15:24:30
  4. angular使用ECharts,data动态传参失败记录

    问题描述&#xff1a; 在angular使用echarts时&#xff0c;data使用的是$scope.timeArr的赋值方法&#xff0c;因为一些原因&#xff0c;timeArr数组使用的是push一个个传值进去&#xff0c;并且在某些条件改变时&#xff0c;timeArr需要重新push新的值进去&#xff0c;老的值去…...

    2024/4/20 15:24:30
  5. 开了双眼皮不能吃什么好

    ...

    2024/4/24 17:29:39
  6. 开好双眼皮后应吃什么

    ...

    2024/4/21 14:27:46
  7. 开过双眼皮要吃些什么

    ...

    2024/4/21 14:27:45
  8. [日常] Go语言圣经-GIF动画练习语法

    1.常量声明的值必须是一个数字值、字符串或者一个固定的boolean值。2.常量声明和变量声明一般都会出现在包级别3.[]color.Color{...}生成的是一个slice切片和gif.GIF{...}生成的是一个struct结构体这两个表达式就是我们说的复合声明4.struct是一组值或者叫字段的集合&#xff0…...

    2024/5/6 10:54:21
  9. 022day(js的基本语法)

    基本语法 JavaScript的历史: 在95年以前&#xff0c;就有很多上网的用户了&#xff0c;当时的带宽只有28.8kb/s&#xff0c;用户要进行表单的验证时&#xff0c;点击提交按钮&#xff0c;直接就 将数据发送到服务器了&#xff0c;受限于带宽的关系&#xff0c;浏览器和服务器…...

    2024/4/21 14:27:42
  10. 做可交互的统计图表,这套图形语法不容错过

    选好可视化 “一图胜千言”&#xff0c;是最直观的数据可视化魅力。以图表来传达和沟通信息&#xff0c;其效率远超枯燥乏味的数据表达。 有需求就有市场。数据可视化崭露头角后&#xff0c;各个厂商出备的产品、解决方案&#xff0c;开发者自研的可视化工具、操作平台都如雨…...

    2024/4/21 14:27:41
  11. 2. Web技术

    在介绍ASP.NET Core的基础知识之前&#xff0c;本节讨论创建Web应用程序时必须了解的核心Web技术&#xff1a;HTML、CSS、JavaScript和脚本库。 1. HTML HTML是由浏览器解释的标记语言。它定义的元素显示各种标题、表格、列表和输入元素&#xff0c;如文本框和组合框。 2014…...

    2024/4/21 14:27:41
  12. 蚂蚁金服开源:数据驱动的高交互可视化图形语法G2

    ​ AntV 是蚂蚁金服全新一代数据可视化解决方案&#xff0c;主要包含「数据驱动的高交互可视化图形语法」G2、专注解决流程与关系分析的图表库 G6、适于对性能、体积、扩展性要求严苛场景下使用的移动端图表库 F2 以及一套完整的图表使用指引和可视化设计规范&#xff0c;致力于…...

    2024/4/21 14:27:41
  13. HTML5 CSS3初学者指南(4) – Canvas使用

    介绍 传统的HTML主要用于文本的创建&#xff0c;可以通过<img>标签插入图像&#xff0c;动画的实现则需要第三方插件。在这方面&#xff0c;传统的HTML极其缺乏满足现代网页多媒体需求的能力。HTML5的到来&#xff0c;带来了新的成员<canvas>标签。 什么是 Canvas…...

    2024/4/21 14:27:38
  14. 开个双眼皮注意事项

    ...

    2024/4/26 14:11:41
  15. 开刀双眼皮过程视频

    ...

    2024/4/30 14:22:38
  16. angularjs 获取 ResponseEntityString

    在service中添加&#xff1a; transformResponse: function(data) { // 转换response return data; }...

    2024/5/6 6:08:53
  17. 精雕无痕双眼皮永久吗

    ...

    2024/4/20 15:24:44
  18. 近视眼做经期第3天做经期做了精雕双眼皮是埋线吗

    ...

    2024/5/6 2:03:57
  19. 较好的埋线睫毛根部做的双眼皮图

    ...

    2024/5/2 18:40:17
  20. 江苏割双眼皮多少钱

    ...

    2024/4/20 15:24:41

最新文章

  1. Redis 实战之RDB文件结构

    RDB文件结构 databases 部分key_value_pairs 部分value 的编码字符串对象列表对象集合对象哈希表对象有序集合对象INTSET 编码的集合ZIPLIST 编码的列表、哈希表或者有序集合 总结AOF持久化的实现命令追加 AOF 文件的写入与同步小结 在本章之前的内容中&#xff0c; 我们介绍了…...

    2024/5/6 11:28:12
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    文章目录 一、复杂选择器兄弟选择器:选择平级元素的唯一办法属性选择器:1、通用:基本用不着,太泛了2、自定义:4种伪类选择器:1、目标伪类:2、结构伪类:3、元素状态伪类:4、伪元素选择器:应用于文字,使网页看起来想杂志5、否定伪类:选择器:not([本选择器的条件]) /*…...

    2024/5/5 8:52:14
  4. 整理的微信小程序日历(单选/多选/筛选)

    一、日历横向多选&#xff0c;支持单日、双日、三日、工作日等选择 效果图 wxml文件 <view class"calendar"><view class"section"><view class"title flex-box"><button bindtap"past">上一页</button&…...

    2024/5/5 8:50:30
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57