在网页中使用SVG技术

可缩放矢量图形(SVG)是矢量图形家族的一部分。相比其他光栅图形(JPEG、GIF 和 PNG),SVG 图形具有更多的优势。本文将探讨 SVG 图形的基本概念和在 HTML5 中的使用。学习绘制、过滤器、渐变、文本和将 SVG XML 添加到网页。

简介

可缩放矢量图形 (SVG) 是基于矢量的图形家族的一部分。它们与基于光栅的图形不同,后者在一个数据数组中存储每个像素的颜色定义。如今,网络上使用的最常见的光栅图形格式包括 JPEG、GIF 和 PNG,每种格式都具有优缺点。

相比任何基于光栅的格式,SVG 具有多项优势:

  • SVG 图形是使用数学公式创建的,需要在源文件中存储的数据要少得多,因为您无需存储每个独立像素的数据。
  • 矢量图形可更好地缩放。对于网络上的图像,尝试从原始大小放大图像可能产生失真(或像素化的)图像。原始像素数据是针对特定大小进行设计的。当图像不再是该大小时,显示图像的程序会猜测使用何种数据来填充新的像素。矢量图像具有更高的弹性;当图像大小变化时,数据公式可相应地调整。
  • 源文件大小可能更小,所以 SVG 图形比其他光栅图形的加载速度更快,使用的带宽更少。
  • SVG 图像由浏览器渲染,可以以编程方式绘制。SVG 图像可动态地更改,这使它们尤其适合数据驱动的应用程序,比如图表。
  • SVG 图像的源文件是一个文本文件,所以它既具有易于访问和搜索引擎友好特征。

本文将介绍 SVG 格式的优势,以及它们如何在 HTML5 中的 Web 设计工作中提供帮助。

SVG 基础知识

要创建 SVG 图形,您会经历与创建 JPEG、GIF 或 PNG 文件完全不同的流程。JPEG、GIF 和 PNG 文件通常使用图像编辑程序创建,比如 Adobe Photoshop。SVG 图像通常使用基于 XML 的语言创建。有一些 SVG 编辑 GUI 将为您生成基础的 XML。但是,对于本文,我们假设您使用的是原始的 XML 语言。请参见 参考资料 获取有关 SVG 编辑程序的信息。

清单 1 给出了一个简单 SVG XML 文件的示例,该文件绘制一个具有 2 像素宽的黑色边框的红色圆形。

清单 1. SVG XML 文件
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><circle  cx="100" cy="50" r="40" stroke="black"stroke- fill="red" />
</svg>

上述代码会得到演示 1 中的图形。

演示 1. 具有 2 像素宽的黑色边框的红色圆形

创建基本形状

对于 SVG 图形,需要使用 XML 标记来创建形状,表 1 给出了这些 XML 元素。

表 1. 创建 SVG 图形的 XML 元素
元素 描述
line 创建一条简单的线。
polyline 定义由多个线定义构成的形状。
rect 创建一个矩形。
circle 创建一个圆形。
ellipse 创建一个椭圆。
polygon 创建一个多边形。
path 支持任意路径的定义。

line 元素

line 元素是基本的绘图元素。清单 2 展示了如何创建一条水平线。

清单 2. 创建一条水平线
<svg xmlns="http://www.w3.org/2000/svg" version='1.1'width="100%" height="100%" ><line x1='25' y1="150" x2='300' y2='150'style='stroke:red;stroke-width:10'/></svg>

清单 2 中的代码会生成演示 2 中的图形。

演示 2. 基本的水平线

根 SVG 标记具有宽度和高度属性,用于定义可用于绘制的画布区域。它们的原理类似于其他 HTML 元素的宽度和高度属性。在本例中,画布设置为占据所有可用空间。

该示例还使用了 style 标记。SVG 图形支持使用多种方法设置其内容的样式。本文中的样式可用于使他们变得显眼,也可在必须使用某些属性(比如笔画颜色和宽度)才能渲染图像时使用。参考资料 中提供了有关设置SVG 图形样式的更多信息。

要创建一个线定义,可以定义相对于画布的开始和结束 x 和 y 坐标。x1 和 y1 属性是开始坐标,x2 和y2 属性是结束坐标。要更改线的方向,只需更改这些坐标。例如,通过修改上一个示例,可以生成一条对角线,如清单3 所示。

清单 3. 创建一条对角线
                <svg xmlns="http://www.w3.org/2000/svg" version='1.1'width="100%" height="100%" ><line x1="0" y1="0" x2="200" y2="200"style='stroke:red;stroke-width:10'/></svg>

演示 3 给出了清单 3 中的代码的结果。

演示 3. 对角线

polyline 元素

多直线图形是一个由多个线定义组成的图形。清单 4 中的示例创建了一个类似一组楼梯的图形。

清单 4. 创建多直线楼梯
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" version='1.1'><polyline points="0,40 40,40 40,80 80,80 80,120 120,120 120,160"style="fill:white;stroke:red;stroke-width:4"/>
</svg>

清单 4 中的代码会生成演示 4 中的图形。

演示 4. 多直线楼梯

要创建一个多直线图形,可以使用 points 属性并定义由逗号分隔的 x 和 y 坐标对。在本例中,第一个点定义为 0,40,其中 0 是x 值,40 是 y 值。但是,单独一组点无法在屏幕上显示任何东西,因为这仅告诉 SVG 渲染器从何处开始。在最低限度上,您需要两组点:一个开始点和一个结束点(例如points="0,4040,40”)。

与简单的线图形一样,这些线不需要完全水平或垂直。如果更改上一个示例中的值,如清单 5 所示,可以生成不规则的线形状。

清单 5. 创建不规则的线
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" version='1.1'><polyline points="20,20 40,25 60,40 80,120 120,140 200,180"style="fill:white;stroke:red;stroke-width:3"/>
</svg>

清单 5 中的代码会生成演示 5 所示的图形。

演示 5. 不规则线

rect 元素

创建一个矩形非常简单,只需定义宽度和高度,如清单 6 所示。

清单 6. 创建矩形
<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%" version='1.1'><rect  style="fill:red"/>
</svg>

清单 6 中的代码会生成演示 6 中的图形。

演示 6. 矩形

您也可以使用 rect 标记创建一个正方形,正方形就是高和宽相等的矩形。

circle 元素

要创建一个圆,可以定义圆心的 x 和 y 坐标和一个半径,如清单 7 所示。

清单 7. 创建一个圆
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><circle  cx="100" cy="50" r="40" stroke="black"stroke- fill="red" />
</svg>

清单 7 中的代码会生成演示 7 中的图形。

演示 7. 圆

cx 和 cy 属性定义圆心相对于绘图画布的位置。因为半径是圆宽度的一半,所以在定义半径时,请记住图像的总宽度将是该值的两倍。

ellipse 元素

椭圆基本上是一个圆,其中的代码定义了两个半径,如清单 8 所示。

清单 8. 创建一个椭圆
                <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><ellipse cx="300" cy="80" rx="100" ry="50" style="fill:red;"/></svg>

清单 8 中的代码会生成演示 8 中的图形。

演示 8. 椭圆

再次说明,cx 和 cy 属性定义了相对于画布的中心坐标。但是对于椭圆,需要使用 rx 和 ry 属性为x 轴定义一个半径,为 y 轴定义一个半径。

polygon 元素

多边形这个形状包含至少 3 条边。清单 9 创建了一个简单的三角形。

清单 9. 创建一个三角形
                <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><polygon points="200,10 250,190 160,210"style="fill:red;stroke:black;stroke-width:1"/></svg>

清单 9 中的代码会生成演示 9 中的图形。

演示 9. 三角形

类似于 polyline 元素,可使用 points 属性定义几对x 和 y 坐标来创建多边形。

可以通过添加 x 和 y 对,创建具有任意多条边的多边形。通过修改上一个示例,可以创建一个四边形,如清单 10 所示。

清单 10. 创建一个四边形
                <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><polygon points="220,10 300,210 170,250 123,234"style="fill:red;stroke:black;stroke-width:1"/></svg>

清单 10 中的代码会生成演示 10 中的图形。

演示 10. 四边形

甚至可以使用 polygon 标记创建复杂的形状。清单 11 创建一个星形。

清单 11. 创建一个星形
 <svg xmlns="http://www.w3.org/2000/svg" version="1.1"><polygon points="100,10 40,180 190,60 10,60 160,180 100,10"style="fill:red;stroke:black;stroke-width:1"/>
</svg>

清单 11 中的代码会生成演示 11 中的图形。

演示 11. 星形

path 元素

使用 path 元素(所有绘图元素中最复杂的),可以使用一组专门的命令创建任意图形。path 元素支持表2 中的命令。

表 2. path 元素支持的命令
命令 描述
M 移动到
L 连线到
H 水平连线到
V 垂直连线到
C 使用曲线连接到
S 使用平滑曲线连接到
Q 使用二次贝塞尔曲线连接到
T 使用平滑的二次贝塞尔曲线连接到
A 使用椭圆曲线连接到
Z 将路径封闭到

能以大写或小写形式使用这些命令。当命令为大写时,应用绝对位置。当它为小写时,应用相对位置。提供所有命令示例已超出了本文的范围。但是,以下示例会演示它们的基本使用。

可以使用 path 元素从本文前面的示例创建任何简单的形状。清单 12 使用 path 元素创建了一个基本的三角形。

清单 12. 使用 path 元素创建一个三角形
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="M150 0 L75 200 L225 200 Z" style="fill:red"/>
</svg>

清单 12 中的代码会生成演示 12 中的图形。

演示 12. 使用 path 元素的三角形

这组命令使用 d 属性定义。在本例中,从 x 坐标 150 和 y 坐标 0 处开始绘制,这在移动到命令 (M1500) 中定义。然后再使用 “连线到” 命令绘制一条直线连接到 x 坐标 75 和 y 坐标 200 的位置 (L75 200)。接下来,使用另一个 “连线到” 命令绘制另一条线 (L225200)。最后,使用 “封闭到” 命令封闭图形 (Z)。Z 命令没有提供任何坐标,因为要关闭您所在的路径,根据定义,要绘制一条从当前位置到图形起点(在本例中为x = 150 y =0)的线。

这里的意图是展示一个基本示例;如果您想要的只是一个简单的三角形,最好使用 polygon 标记。

path 元素的真正强大之处是创建自定义形状的能力,如清单 13 所示。该示例来自万维网联盟 (W3C) 文档可缩放矢量图形 (SVG) 1.1(第二版)(参见 参考资料)。

清单 13. 使用 path 元素创建一个自定义形状
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="M300,200 h-150 a150,150 0 1,0 150,-150 z"fill="red" stroke="blue" stroke-/><path d="M275,175 v-150 a150,150 0 0,0 -150,150 z"fill="yellow" stroke="blue" stroke-/><path d="M600,350 l 50,-25a25,25 -30 0,1 50,-25 l 50,-25a25,50 -30 0,1 50,-25 l 50,-25a25,75 -30 0,1 50,-25 l 50,-25a25,100 -30 0,1 50,-25 l 50,-25"fill="none" stroke="red" stroke-/>
</svg>

清单 13 中的代码会生成演示 13 中的图形。

演示 13. 使用 path 元素的自定义形状

使用 path 元素,可以创建复杂的图形,比如图表和波浪线。请注意,这个示例使用了多个 path 元素。当创建图形时,根SVG 标记中可以包含多个绘图元素。

过滤器和渐变

除了目前为止许多示例中的基本 CSS 样式,SVG 图形还支持使用过滤器和渐变。本节将介绍如何向 SVG 图形应用过滤器和渐变。

过滤器

可以使用过滤器向 SVG 图形应用特殊的效果。SVG 支持以下过滤器。

  • feBlend
  • feColorMatrix
  • feComponentTransfer
  • feComposite
  • feConvolveMatrix
  • feDiffuseLighting
  • feDisplacementMap
  • feFlood
  • feGaussianBlur
  • feImage
  • feMerge
  • feMorphology
  • feOffset
  • feSpecularLighting
  • feTile
  • feTurbulence
  • feDistantLight
  • fePointLight
  • feSpotLight

请参见 参考资料,了解使用这些过滤器的详细说明。

清单 14 创建了一种应用到矩形上的投影效果。

清单 14. 创建矩形的投影效果
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><filter id="f1" x="0" y="0"width="200%" height="200%"><feOffset result="offOut" in="SourceAlpha"dx="20" dy="20"/><feGaussianBlur result="blurOut"in="offOut" stdDeviation="10"/><feBlend in="SourceGraphic"in2="blurOut" mode="normal"/></filter></defs><rect   stroke="green"stroke- fill="yellow" filter="url(#f1)"/>
</svg>

清单 14 中的代码会生成图 14 中的图形。

图 14. 一个矩形的投影效果

背后有一个黑色投影的黄色正方形。

过滤器在 def(表示定义)元素中定义。本示例中的过滤器分配了一个 id"f1"filter 标记本身拥有定义过滤器的x 和 y 坐标及宽度和高度的属性。在 filter 标记中,可以使用想要的过滤器元素并将其属性设置为想要的值。

定义过滤器之后,使用 filter 属性将它与一个特定图形关联,如 rect 元素 中所示。将 url 值设置为您分配给过滤器的 id 属性的值。

渐变

渐变 是从一种颜色到另一种颜色逐渐的过渡。渐变具有两种基本形式:线性和径向渐变。所应用的渐变类型由您使用的元素确定。以下示例展示了应用于一个椭圆形的线性和径向渐变。

清单 15 创建了一个具有线性渐变的椭圆。

清单 15. 创建一个具有线性渐变的椭圆
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><linearGradient id="grad1" x1="0%" y1="0%"x2="100%" y2="0%"><stop offset="0%"style="stop-color:rgb(255,255,0);stop-opacity:1"/><stop offset="100%"style="stop-color:rgb(255,0,0);stop-opacity:1"/></linearGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55"fill="url(#grad1)"/>
</svg>

清单 15 中的代码会生成图 15 中的图形。

图 15. 具有线性渐变的椭圆

一个具有从黄色到橙色,从左到右的渐变的椭圆。

清单 16 创建了一个具有径向渐变的椭圆。

清单 16. 创建一个具有径向渐变的椭圆
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs><radialGradient id="grad1" cx="50%" cy="50%"r="50%" fx="50%" fy="50%"><stop offset="0%"style="stop-color:rgb(255,255,255);stop-opacity:0"/><stop offset="100%"style="stop-color:rgb(255,0,0);stop-opacity:1"/></radialGradient></defs><ellipse cx="200" cy="70" rx="85" ry="55"fill="url(#grad1)"/>
</svg>

清单 16 中的代码会生成图 16 中的图形。

图 16. 具有径向渐变的椭圆

一个具有从红色到白色,从椭圆外边到中心的渐变的椭圆。

像过滤器一样,渐变在 def 元素内定义。每个渐变分配有一个 id。渐变属性(比如颜色)可使用 stop元素在渐变标记内设置。要将渐变应用于图形,可以将 fill 属性的 url 值设置为想要的渐变的 id

文本和 SVG

除了基本形状,还可以使用 SVG 生成文本,如清单 17 所示。

清单 17. 使用 SVG 创建文本
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><text x="0" y="15" fill="red">I love SVG</text>
</svg>

清单 17 中的代码会生成图 17 中的图形。

图 17. SVG 文本

显示 I love SVG 的文本

此示例使用了一个 text 元素来创建句子 I loveSVG。当使用 text 元素时,要显示的实际文本在开始和结束 text 元素之间。

您可以沿多个轴,以及甚至沿多条路径显示文本。清单 18 沿一条弧形路径显示文本。

清单 18. 沿一条弧形路径创建文本
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="path1" d="M75,20 a1,1 0 0,0 100,0"/></defs><text x="10" y="100" style="fill:red;"><textPath xlink:href="#path1">I love SVG I love SVG</textPath></text>
</svg>

清单 18 中的代码会生成图 18 中的图形。

图 18. 一个弧形路径上的文本

这些词沿一条弧线显示我喜欢 SVG。

在此示例中,向根 SVG 标记添加了一个额外的 XML 命名空间 xlink。用户显示文本的弧形路径在 def元素内创建,所以该路径不会在图形中实际渲染出来。要显示的文本嵌套在一个 textPath 元素内,该元素使用 xlink 命名空间引用想要的路径的 id

与其他 SVG 图形一样,也可以向文本应用过滤器和渐变。清单 19 向一些文本应用了一个过滤器和一种渐变。

清单 19. 创建具有过滤器和渐变的文本
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink"><defs><radialGradient id="grad1" cx="50%" cy="50%"r="50%" fx="50%" fy="50%"><stop offset="0%"style="stop-color:red; stop-opacity:0"/><stop offset="100%"style="stop-color:rgb(0,0,0);stop-opacity:1"/></radialGradient><filter id="f1" x="0" y="0"width="200%" height="200%"><feOffset result="offOut"in="SourceAlpha" dx="20" dy="20"/><feGaussianBlur result="blurOut"in="offOut" stdDeviation="10"/><feBlend in="SourceGraphic"in2="blurOut" mode="normal"/></filter></defs><text x="10" y="100" style="fill:url(#grad1); font-size: 30px;"filter="url(#f1)">I love SVG I love SVG</text>
</svg>

清单 19 中的代码会生成图 19 中的图形。

图 19. 具有过滤器和渐变的文本

一条水平线上的语句 “I love SVG” 具有从黑到灰,从外边到文本中心的渐变颜色。

向网页添加 SVG XML

创建 SVG XML 之后,可采用多种方式将它包含在 HTML 页面中。第一种方法是直接将 SVG XML 嵌入到 HTML 文档中,如清单 20 所示。

清单 20. 直接将 SVG XML 嵌入 HTML 文档
<html><head><title>Embedded SVG</title></head><body style="height: 600px;width: 100%; padding: 30px;"><svg xmlns="http://www.w3.org/2000/svg" version="1.1"><circle cx="100" cy="50" r="40" fill="red"/></svg></body>
</html>

此方法可能最简单,但它不支持重用。请记住,可以使用 .svg 扩展名保存 SVG XML 文件。当将 SVG 图形保存在 .svg 文件中时,您可以使用 embedobject 和 iframe 元素来将它包含在网页中。清单21 显示了使用 embed 元素包含 SVG XML 文件的代码。

清单 21. 使用 embed 元素包含一个 SVG XML 文件
<embed src="circle.svg" type="image/svg+xml" />

清单 22 显示了如何使用 object 元素包含一个 SVG XML 文件。

清单 22. 使用 object 元素包含一个 SVG XML 文件
<object data="circle.svg" type="image/svg+xml"></object>

清单 23 给出了使用 iframe 元素包含一个 SVG XML 文件的代码。

清单 23. 使用 iframe 元素包含一个 SVG XML 文件
<iframe src="circle1.svg"></iframe>

当使用其中一种方法时,可以将同一个 SVG 图形包含在多个页面中,并编辑 .svg 源文件来进行更新。

结束语

本文介绍了使用 SVG 格式创建图形的基础知识。您学习了如何使用内置的集合元素(比如线、矩形、圆等)创建基本形状。您还学习了如何通过发出一系列命令(比如移动到、连线到和使用弧线连接到),使用 path 元素创建复杂的图形。本文还探讨了如何对 SVG 图形应用过滤器和渐变,包括文本图形,以及如何在HTML 页面中包含 SVG 图形。

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

相关文章

  1. 瀑布流布局实现的三种方式

    瀑布流布局的特点? 答:首先,是图片的宽度固定,图片的长度不一样。其次,是当页面滚动时 ,会再次加载数据,动态的渲染在页面上。瀑布流布局的原理? 首先,获取图片的固定的宽度W,网页body的clientWidth 其次,获取在你的版面中显示多少列图片。cols = clientHeight / W;…...

    2024/4/24 19:24:13
  2. 移动web图片高度自适应的解决方案

    由于图片的加载是在dom加载完成之后进行的,于是,在手机端浏览网页时,经常会看到页面刚打开时很多内容叠在一起,当图片加载完成后,页面会由于图片加载完成出现明显的抖动针对这个问题,有以下几种解决方案媒体查询+px rem vm padding 媒体查询+px@media screenand(max - wi…...

    2024/4/24 16:01:34
  3. 网页布局之》》》》弹性盒子》》》

    网页弹性盒子》》》》box-flex 属性 按比例占据父元素的尺寸。1,(纵向)水平方向的弹性布局:先给其父元素设置样式为弹性盒子display:box; #father{ display:-webkit-box; display: box;}》》》》》》》子元素(div或盒子)默认是纵向挨着排列的,。》》》》》》定义两个可…...

    2024/4/23 20:33:08
  4. 在xcode中格式化代码

    1. 安装homebrew/usr/bin/ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"2. 安装uncrustifybrew install uncrustify3. 下载配置好的workflow包http://by-igotit.com/wordpress/wp-content/uploads/2012/03/Uncrustify-Objective-C.workflow.tar.gz4. 解…...

    2024/4/25 1:31:11
  5. css content

    before after demo 1 添加描述信息div1:after{conent:"天假额外的文字"}2 也可以显示元素的某些属性<a class="div1" href="http://www.baidu.com"></a>div1:after{ content:attr(href)}注意:当使用attr()获取标签属性名的时候,千…...

    2024/4/19 15:33:20
  6. web PC分页功能实现。动态加载数据列表并分页

    1.最终效果图展示:2.代码截图:3.代码文字:<!DOCTYPE HTML> <HTML><head> <meta charset="utf-8"> <meta name="keywords" content="分页教程"> <meta name="description" content="CSDN平…...

    2024/4/19 15:33:19
  7. 周末作业

    ```<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Polp360首页</title> <link rel="stylesheet" type="text/css" href="css/reset.css">…...

    2024/4/25 11:47:30
  8. 提高JavaScript性能的30个技巧

    今天我们来看看 JavaScript,这项神奇而又复杂的技术。它使网站内容更加丰富,但常常出现的运行性能问题又降低了用户的体验。事实已经证明,最佳的终端用户体验能提升网站的转换率、Google搜索排名以及访问者的满意度。高性能的JavaScript意味着会给您和您的公司带来更多更好的…...

    2024/4/25 5:00:47
  9. PHP 性能分析第三篇: 性能调优实战

    注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或 PHP 性能分析第二篇: 深入研究 XHGui 。 在本系列的 第一篇 中,我们介绍了 XHProf 。而在 第二篇 中,我们深入研究了 XHGui UI, 现在最后一篇,让我们把 XHProf …...

    2024/4/24 7:29:46
  10. 读《软星七年》有感

    看完这篇好友推荐的文章,一口气细读下来,心中时而豪气激昂,时而酸痛万分,真是感慨良多,只知道现在心中有说不完的话。。。 "...8月3日,北京举行《仙四》首发签售活动,张毅君如约到场。活动中,一位玩家表示愿意出钱捐助上海软星,支持《仙剑》的研发,被婉拒后,他…...

    2024/4/19 8:52:39
  11. Docker命令行

    Docker命令行(sudo)Docker容器命令行1.查看Docker服务是否正常2.运行容器(docker run -i -t 镜像名称 命令代码)3.使用容器4.查看当前系统中存在的容器:5.容器命名6.启动已停止的容器7.进行容器内部命令行8.创建守护式容器(长期运行的容器)9.查看容器日志10.查看容器内进…...

    2024/4/19 8:52:38
  12. 利用qemu写mips汇编程序控制malta显示器

    hello world不会写,先玩玩malta虚拟器上的跑马灯,就是qemu起来后ctrl+atl+5切换出来那个,安装debian mips版本后会有个"LINUX ON MALTA"在那一直循环。参考之前的文章,windows和linux下都有qemu,gnu的交叉编译工具也都有,所以两个平台应该都能跑。本文参考了:…...

    2024/4/25 14:51:11
  13. Redis 常见面试题整理

    1 什么是 Redis?简述它的优缺点?Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出…...

    2024/4/24 22:46:20
  14. Redis 常见面试题

    今天跟大家分享下Redis 常见面试题的知识。 1 什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行…...

    2024/4/23 8:49:28
  15. OneAPM大讲堂 | 提高JavaScript性能的30个技巧

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现。 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术。它使网站内容更加丰富,但常常出现的运行性能问题又降低了用户的体验。事实已经证明,最佳的终端用户体…...

    2024/4/25 4:19:27
  16. 面试之Redis

    什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作,Redis 的性能非常…...

    2024/4/19 8:52:33
  17. 读完这46道Redis面试题之后,你就会觉得自己的Redis白学了

    前言今天跟大家分享下Redis 常见面试题的知识,总共46道,希望大家能够喜欢。1 什么是 Redis?简述它的优缺点?Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作…...

    2024/4/25 1:31:28
  18. Ubuntu ZDE Debugger

    摘自:http://blog.csdn.net/wyyl1/archive/2011/06/07/6528718.aspx eclipse php 插件(http://wiki.eclipse.org/PDT/Installation):http://download.eclipse.org/tools/pdt/updates/2.2/milestones---------------------------------------------------------------------…...

    2024/4/24 7:29:45
  19. Redis常见问题及其一些重点知识总结

    1、什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作,Redis 的性能非…...

    2024/4/19 15:33:14
  20. 滚动容器尺寸变化时候最上方元素位置不变实例页面

    效果:CSS代码: .box { width: 70%; height: 600px; border: 1px solid #eee; overflow: auto; } .box p { margin: 0; padding-bottom: .667rem; }HTML代码: <div id="box" class="box"><p>  正午太阳高悬,上海松江,某处二本院...</…...

    2024/4/24 22:46:37

最新文章

  1. 防火墙分为哪三类以及他们的优缺点

    1. 包过滤防火墙&#xff08;Packet Filtering Firewall&#xff09;2. 状态检查防火墙&#xff08;Stateful Inspection Firewall&#xff09;3. 应用层防火墙&#xff08;Application Layer Firewall&#xff09;零基础入门学习路线视频配套资料&国内外网安书籍、文档网络…...

    2024/4/25 18:46:06
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. MySQL分库分表的方式有哪些

    目录 一、为什么要分库分表 二、什么是分库分表 三、分库分表的几种方式 1.垂直拆分 2. 水平拆分 四、分库分表带来的问题 五、分库分表技术如何选型 一、为什么要分库分表 如果一个网站业务快速发展&#xff0c;那这个网站流量也会增加&#xff0c;数据的压力也会随之而…...

    2024/4/22 18:31:53
  4. Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

    Topaz Video AI for Mac是一款功能强大的视频处理软件&#xff0c;专为Mac用户设计&#xff0c;旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术&#xff0c;能够自动识别和分析视频中的各个元素&#xff0c;并进行智能修复和增强&…...

    2024/4/22 12:34:50
  5. promise.all方式使用

    romise.all( ).then( ) 处理多个异步任务&#xff0c;且所有的异步任务都得到结果时的情况。 比如&#xff1a;用户点击按钮&#xff0c;会弹出一个弹出对话框&#xff0c;对话框中有两部分数据呈现&#xff0c;这两部分数据分别是不同的后端接口获取的数据。 弹框弹出后的初…...

    2024/4/23 6:24:29
  6. 对于布局的见解

    position: absolute;元素的宽度变为content的宽度,这是与position:relative(100%)不同的地方,若要呈现为100%, 有两个方法: 1.直接设置 width:100% 2.设置left:0px right:0px; 布局参看http://www.zhangxinxu.com/study/201010/mini-blog-no-width.html 采用无宽度布局…...

    2024/4/25 13:30:59
  7. 不同浏览器中网页内容高度取值

    原文地址:http://www.alisdn.com/wordpress/?p=1700关于浏览器的clientHeight、offsetHeight和scrollHeight在IE、FireFox、Netscape等不同的浏览器里,对于document.body 的 clientHeight、offsetHeight 和scrollHeight 有着不同的含义,比较容易搞混,现整理一下相关的内容…...

    2024/4/19 15:33:26
  8. 在网页中使用SVG技术

    在网页中使用SVG技术分享:0可缩放矢量图形(SVG)是矢量图形家族的一部分。相比其他光栅图形(JPEG、GIF 和 PNG),SVG 图形具有更多的优势。本文将探讨 SVG 图形的基本概念和在 HTML5 中的使用。学习绘制、过滤器、渐变、文本和将 SVG XML 添加到网页。 简介 可缩放矢量图形…...

    2024/4/25 18:47:15
  9. 瀑布流布局实现的三种方式

    瀑布流布局的特点? 答:首先,是图片的宽度固定,图片的长度不一样。其次,是当页面滚动时 ,会再次加载数据,动态的渲染在页面上。瀑布流布局的原理? 首先,获取图片的固定的宽度W,网页body的clientWidth 其次,获取在你的版面中显示多少列图片。cols = clientHeight / W;…...

    2024/4/24 19:24:13
  10. 移动web图片高度自适应的解决方案

    由于图片的加载是在dom加载完成之后进行的,于是,在手机端浏览网页时,经常会看到页面刚打开时很多内容叠在一起,当图片加载完成后,页面会由于图片加载完成出现明显的抖动针对这个问题,有以下几种解决方案媒体查询+px rem vm padding 媒体查询+px@media screenand(max - wi…...

    2024/4/24 16:01:34
  11. 网页布局之》》》》弹性盒子》》》

    网页弹性盒子》》》》box-flex 属性 按比例占据父元素的尺寸。1,(纵向)水平方向的弹性布局:先给其父元素设置样式为弹性盒子display:box; #father{ display:-webkit-box; display: box;}》》》》》》》子元素(div或盒子)默认是纵向挨着排列的,。》》》》》》定义两个可…...

    2024/4/23 20:33:08
  12. 在xcode中格式化代码

    1. 安装homebrew/usr/bin/ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"2. 安装uncrustifybrew install uncrustify3. 下载配置好的workflow包http://by-igotit.com/wordpress/wp-content/uploads/2012/03/Uncrustify-Objective-C.workflow.tar.gz4. 解…...

    2024/4/25 1:31:11
  13. css content

    before after demo 1 添加描述信息div1:after{conent:"天假额外的文字"}2 也可以显示元素的某些属性<a class="div1" href="http://www.baidu.com"></a>div1:after{ content:attr(href)}注意:当使用attr()获取标签属性名的时候,千…...

    2024/4/19 15:33:20
  14. web PC分页功能实现。动态加载数据列表并分页

    1.最终效果图展示:2.代码截图:3.代码文字:<!DOCTYPE HTML> <HTML><head> <meta charset="utf-8"> <meta name="keywords" content="分页教程"> <meta name="description" content="CSDN平…...

    2024/4/19 15:33:19
  15. 周末作业

    ```<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Polp360首页</title> <link rel="stylesheet" type="text/css" href="css/reset.css">…...

    2024/4/25 11:47:30
  16. 提高JavaScript性能的30个技巧

    今天我们来看看 JavaScript,这项神奇而又复杂的技术。它使网站内容更加丰富,但常常出现的运行性能问题又降低了用户的体验。事实已经证明,最佳的终端用户体验能提升网站的转换率、Google搜索排名以及访问者的满意度。高性能的JavaScript意味着会给您和您的公司带来更多更好的…...

    2024/4/25 5:00:47
  17. PHP 性能分析第三篇: 性能调优实战

    注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或 PHP 性能分析第二篇: 深入研究 XHGui 。 在本系列的 第一篇 中,我们介绍了 XHProf 。而在 第二篇 中,我们深入研究了 XHGui UI, 现在最后一篇,让我们把 XHProf …...

    2024/4/24 7:29:46
  18. 读《软星七年》有感

    看完这篇好友推荐的文章,一口气细读下来,心中时而豪气激昂,时而酸痛万分,真是感慨良多,只知道现在心中有说不完的话。。。 "...8月3日,北京举行《仙四》首发签售活动,张毅君如约到场。活动中,一位玩家表示愿意出钱捐助上海软星,支持《仙剑》的研发,被婉拒后,他…...

    2024/4/19 8:52:39
  19. Docker命令行

    Docker命令行(sudo)Docker容器命令行1.查看Docker服务是否正常2.运行容器(docker run -i -t 镜像名称 命令代码)3.使用容器4.查看当前系统中存在的容器:5.容器命名6.启动已停止的容器7.进行容器内部命令行8.创建守护式容器(长期运行的容器)9.查看容器日志10.查看容器内进…...

    2024/4/19 8:52:38
  20. 利用qemu写mips汇编程序控制malta显示器

    hello world不会写,先玩玩malta虚拟器上的跑马灯,就是qemu起来后ctrl+atl+5切换出来那个,安装debian mips版本后会有个"LINUX ON MALTA"在那一直循环。参考之前的文章,windows和linux下都有qemu,gnu的交叉编译工具也都有,所以两个平台应该都能跑。本文参考了:…...

    2024/4/25 14:51:11
  21. Redis 常见面试题整理

    1 什么是 Redis?简述它的优缺点?Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出…...

    2024/4/24 22:46:20
  22. Redis 常见面试题

    今天跟大家分享下Redis 常见面试题的知识。 1 什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行…...

    2024/4/23 8:49:28
  23. OneAPM大讲堂 | 提高JavaScript性能的30个技巧

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现。 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术。它使网站内容更加丰富,但常常出现的运行性能问题又降低了用户的体验。事实已经证明,最佳的终端用户体…...

    2024/4/25 4:19:27
  24. 面试之Redis

    什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作,Redis 的性能非常…...

    2024/4/19 8:52:33
  25. 读完这46道Redis面试题之后,你就会觉得自己的Redis白学了

    前言今天跟大家分享下Redis 常见面试题的知识,总共46道,希望大家能够喜欢。1 什么是 Redis?简述它的优缺点?Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作…...

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

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

    2022/11/19 21:17:18
  27. 错误使用 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
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,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
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  45. 如何在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