From 32583616be82151dbba2b4b761a64cb39086a7a2 Mon Sep 17 00:00:00 2001
From: Jason Lam
Date: Fri, 28 Jul 2023 18:41:08 +0800
Subject: [PATCH 01/13] [zh-cn]: Update translation of String.padStart()
(#14634)
Co-authored-by: Jason Ren <40999116+jasonren0403@users.noreply.github.com>
---
.../global_objects/string/padstart/index.md | 30 +++++++++----------
1 file changed, 14 insertions(+), 16 deletions(-)
diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/padstart/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/padstart/index.md
index 77b0a60ddd119e..f33b93dc6540c6 100644
--- a/files/zh-cn/web/javascript/reference/global_objects/string/padstart/index.md
+++ b/files/zh-cn/web/javascript/reference/global_objects/string/padstart/index.md
@@ -5,13 +5,13 @@ slug: Web/JavaScript/Reference/Global_Objects/String/padStart
{{JSRef}}
-**`padStart()`** 方法用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。
+**`padStart()`** 方法用另一个字符串填充当前字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的开头开始的。
{{EmbedInteractiveExample("pages/js/string-padstart.html")}}
## 语法
-```js
+```js-nolint
padStart(targetLength)
padStart(targetLength, padString)
```
@@ -19,38 +19,37 @@ padStart(targetLength, padString)
### 参数
- `targetLength`
- - : 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
+ - : 当前 `str` 填充后的长度。如果该值小于或等于 `str.length`,则会直接返回当前 `str`。
- `padString` {{optional_inline}}
- - : 填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的默认值为 " "(U+0020)。
+ - : 用于填充当前 `str` 的字符串。如果 `padString` 太长,无法适应 `targetLength`,则会从末尾被截断。默认值为 Unicode“空格”字符(U+0020)。
### 返回值
-在原字符串开头填充指定的填充字符串直到目标长度所形成的新字符串。
+在开头填充 `padString` 直到达到给定的 `targetLength` 所形成的 {{jsxref("String")}}。
## 示例
### 简单示例
```js
-'abc'.padStart(10); // " abc"
-'abc'.padStart(10, "foo"); // "foofoofabc"
-'abc'.padStart(6,"123465"); // "123abc"
-'abc'.padStart(8, "0"); // "00000abc"
-'abc'.padStart(1); // "abc"
+"abc".padStart(10); // " abc"
+"abc".padStart(10, "foo"); // "foofoofabc"
+"abc".padStart(6, "123465"); // "123abc"
+"abc".padStart(8, "0"); // "00000abc"
+"abc".padStart(1); // "abc"
```
### 将数字转换为固定长度的字符串
```js
// JavaScript version of: (unsigned)
-// printf "%0*d" width num
+// printf "%0*d" width num
function leftFillNum(num, targetLength) {
- return num.toString().padStart(targetLength, 0);
+ return num.toString().padStart(targetLength, "0");
}
const num = 123;
-console.log(leftFillNum(num, 5));
-// 预期输出:"00123"
+console.log(leftFillNum(num, 5)); // "00123"
```
## 规范
@@ -63,6 +62,5 @@ console.log(leftFillNum(num, 5));
## 参见
-- [Polyfill of `String.prototype.padStart` in `core-js`](https://github.com/zloirock/core-js#ecmascript-string-and-regexp)
+- [`core-js` 中 `String.prototype.padStart` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-string-and-regexp)
- {{jsxref("String.prototype.padEnd()")}}
-- [A polyfill](https://github.com/behnammodi/polyfill/blob/master/string.polyfill.js)
From 58cf75f884999b3475b595c6cd3fbf098f34516c Mon Sep 17 00:00:00 2001
From: Jason Lam
Date: Fri, 28 Jul 2023 18:41:24 +0800
Subject: [PATCH 02/13] [zh-cn]: Update translation of String.padEnd() (#14633)
Co-authored-by: Jason Ren <40999116+jasonren0403@users.noreply.github.com>
---
.../global_objects/string/padend/index.md | 23 ++++++++++---------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/files/zh-cn/web/javascript/reference/global_objects/string/padend/index.md b/files/zh-cn/web/javascript/reference/global_objects/string/padend/index.md
index e45a5ffaafd327..f2e216d6a13172 100644
--- a/files/zh-cn/web/javascript/reference/global_objects/string/padend/index.md
+++ b/files/zh-cn/web/javascript/reference/global_objects/string/padend/index.md
@@ -5,13 +5,13 @@ slug: Web/JavaScript/Reference/Global_Objects/String/padEnd
{{JSRef}}
-**`padEnd()`** 方法会用一个字符串填充当前字符串(如果需要的话则重复填充),返回填充后达到指定长度的字符串。从当前字符串的末尾(右侧)开始填充。
+**`padEnd()`** 方法会将当前字符串从末尾开始填充给定的字符串(如果需要会重复填充),直到达到给定的长度。填充是从当前字符串的末尾开始的。
{{EmbedInteractiveExample("pages/js/string-padend.html")}}
## 语法
-```js
+```js-nolint
padEnd(targetLength)
padEnd(targetLength, padString)
```
@@ -19,21 +19,23 @@ padEnd(targetLength, padString)
### 参数
- `targetLength`
- - : 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
+ - : 当前 `str` 填充后的长度。如果该值小于或等于 `str.length`,则会直接返回当前 `str`。
- `padString` {{optional_inline}}
- - : 填充字符串。如果字符串太长,使填充后的字符串长度超过了目标长度,则只保留最左侧的部分,其他部分会被截断。此参数的缺省值为 " "(U+0020)。
+ - : 用于填充当前 `str` 的字符串。如果 `padString` 太长,无法适应 `targetLength`,则会被截断:对于从左到右的语言,左侧的部分将会被保留;对于从右到左的语言,右侧的部分将会被保留。默认值为“ ” (`U+0020`)。
### 返回值
-在原字符串末尾填充指定的填充字符串直到目标长度所形成的新字符串。
+在当前 `str` 末尾填充 `padString` 直到达到给定的 `targetLength` 所形成的 {{jsxref("String")}}。
## 示例
+### 使用 padEnd
+
```js
-'abc'.padEnd(10); // "abc "
-'abc'.padEnd(10, "foo"); // "abcfoofoof"
-'abc'.padEnd(6, "123456"); // "abc123"
-'abc'.padEnd(1); // "abc"
+"abc".padEnd(10); // "abc "
+"abc".padEnd(10, "foo"); // "abcfoofoof"
+"abc".padEnd(6, "123456"); // "abc123"
+"abc".padEnd(1); // "abc"
```
## 规范
@@ -46,6 +48,5 @@ padEnd(targetLength, padString)
## 参见
-- [Polyfill of `String.prototype.padEnd` in `core-js`](https://github.com/zloirock/core-js#ecmascript-string-and-regexp)
+- [`core-js` 中 `String.prototype.padEnd` 的 polyfill](https://github.com/zloirock/core-js#ecmascript-string-and-regexp)
- {{jsxref("String.prototype.padStart()")}}
-- [A polyfill](https://github.com/behnammodi/polyfill/blob/master/string.polyfill.js)
From ebe0b0ee27b9270ff1b61645a1b41346e0149afa Mon Sep 17 00:00:00 2001
From: Jason Ren <40999116+jasonren0403@users.noreply.github.com>
Date: Fri, 28 Jul 2023 18:43:10 +0800
Subject: [PATCH 03/13] Update 'css FAQ' and fix prettier (#14548)
Co-authored-by: A1lo
---
.prettierignore | 1 -
files/zh-cn/learn/css/howto/css_faq/index.md | 81 ++++++++++----------
2 files changed, 39 insertions(+), 43 deletions(-)
diff --git a/.prettierignore b/.prettierignore
index 707554e6dcef7d..4c0ab9d179b0d5 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -30,7 +30,6 @@ build/
/files/ru/learn/server-side/django/forms/index.md
/files/ru/learn/server-side/django/introduction/index.md
/files/ru/learn/html/introduction_to_html/the_head_metadata_in_html/index.md
-/files/zh-cn/learn/css/howto/css_faq/index.md
/files/zh-cn/learn/server-side/django/forms/index.md
# A full pass on all Markdown files is being performed.
diff --git a/files/zh-cn/learn/css/howto/css_faq/index.md b/files/zh-cn/learn/css/howto/css_faq/index.md
index 8c2655bc5b7a4c..86579c388400ea 100644
--- a/files/zh-cn/learn/css/howto/css_faq/index.md
+++ b/files/zh-cn/learn/css/howto/css_faq/index.md
@@ -1,27 +1,31 @@
---
title: CSS 常见问题
slug: Learn/CSS/Howto/CSS_FAQ
-original_slug: Web/CSS/Common_CSS_Questions
---
+{{LearnSidebar}}
+
+在本篇文章中,你会发现一些有关 CSS 的常见问题,这些问题及其解答可能会有助于你成为一名网站开发人员。
+
## 为什么有效的 CSS 没有正确的渲染?
-浏览器使用 DOCTYPE 声明来选择是否使用更符合 Web 标准或兼容旧浏览器的 bug 的模式。在你的 HTML 的开始使用一个正确的和现代的 DOCTYPE 声明将改善浏览器标准执行。
+浏览器使用 `DOCTYPE` 声明来选择是否使用更符合 Web 标准或兼容旧浏览器缺陷的模式。在你的 HTML 的开始使用一个正确的和现代的 `DOCTYPE` 声明将改善浏览器标准执行。
现代浏览器主要有两种渲染模式:
-- _怪异模式_:又称向后兼容模式,允许将传统网页渲染为作者意图。旧浏览器使用的非标准渲染规则。不完整的、不正确的、缺少 DOCTYPE 声明或已知的 DOCTYPE 声明中普遍使用 2001 年以前的文件将在怪异模式中呈现。
-- _标准模式_:浏览器试图严格遵守 W3C 标准。新 HTML 网页有望被设计为符合标准的浏览器,这样做的结果就是,用现代 DOCTYPE 声明的页面将被用标准模式呈现。
+- _怪异模式_:又称向后兼容模式,允许按照旧版浏览器使用的非标准渲染规则,按作者的意图呈现旧版网页。如果文档中存在不完整、不正确或缺失的 `DOCTYPE` 声明,或已知的 2001 年以前常用的 `DOCTYPE` 声明,则会以怪异模式渲染。
+- _标准模式_:浏览器试图严格遵守 W3C 标准。新的 HTML 页面预计是为符合标准的浏览器设计的,因此,带有现代 `DOCTYPE` 声明的页面将使用标准模式渲染。
-基于 Gecko 的浏览器,有三分之一 _[Almost Standards Mode](/zh-CN/docs/Gecko's_%22Almost_Standards%22_Mode)_,只有一些小怪癖。
+有三分之一的基于 Gecko 的浏览器处于[接近标准模式](https://zh.wikipedia.org/wiki/怪异模式#接近标准模式),只是有一些怪异行为。
-这是最常用的触发标准模式或准标准模式的 DOCTYPE 声明列表:
+这是最常用的触发标准模式的 `DOCTYPE` 声明:
```html
- /* 这一行是 HTML5 的 doctype 声明。使用该声明会使现代浏览器使用
-HTML5 解析器处理页面,这是推荐的 doctype 声明。*/
+
```
+你应该尽可能使用上述 doctype 声明。还有其他有效的传统 doctype 说明,它们会触发标准模式或接近标准模式:
+
```html
```
@@ -38,33 +42,27 @@ HTML5 解析器处理页面,这是推荐的 doctype 声明。*/
```
-请尽可能地使用 HTML 5 DOCTYPE。
-
## 为什么有效的 CSS 完全没有被渲染?
可能的原因如下:
- 引入的 CSS 文件路径写错了。
-
-- 为了使浏览器渲染样式文件,CSS 样式表必须用 `text/css` 的 MIME。如果 Web 服务器没有使用这种类型处理文件,则 CSS 也不会被应用。
+- 为了使浏览器渲染样式文件,CSS 样式表必须用 `text/css` 的 MIME 类型。如果 Web 服务器没有使用这种类型处理文件,则 CSS 也不会被应用。
## `id` 和 `class` 有什么不同?
-HTML 元素可以拥有一个 `id`/或 `class` 属性。 `id` 属性为元素指定应用一个有效名称,只能有一个具有该名称的元素。`class` 属性指定一个类名的元素,而这个名称可以被页面内的许多元素被使用。CSS 允许你可以对特定的 `id` 和/或类名的元素应用样式。
-
-- 当你想要将样式规则应用于多个块和元素时,你应该使用 class 选择符。
+HTML 元素可以拥有一个 `id` 和(或)`class` 属性。`id` 属性为元素指定应用一个有效名称,只能有一个具有该名称的元素。`class` 属性指定一个类名的元素,而这个名称可以被页面内的许多元素被使用。CSS 允许你可以对特定的 `id` 和/或类名的元素应用样式。
-- 当你想给一个特定元素或块应用样式规则时就使用 ID 选择符。此样式将只用于与该特定 id 匹配的元素。
+- 当你想要将样式规则应用于多个块和元素时,你应该使用特定于类的样式。
+- 当你想给一个特定元素或块应用样式规则时就使用特定于 id 的样式。此样式将只用于与该特定 id 匹配的元素。
-较少样式的样式表通常性能更高。因此建议尽可能多地使用类,保留 id 作为特定用途(比如链接 label 标签和 form 元素或者为语义上唯一的元素应用样式):
+一般建议尽量使用类,只有在特定用途(如连接标签和表单元素或用于必须在语义上唯一的样式元素)绝对必要时才使用 id:
- 使用类名可以让样式具有可扩展性——即使目前只有一个元素使用这个规则集来定义样式,未来可能会添加更多。
-
- 类名可以让你同时为多个元素赋予样式,减少样式表的大小,避免了为每一个 id 选择器撰写同样的样式信息。越小的样式表带来的性能体验也就越好。
-
- 类名选择器比 id 选择器的[优先级](/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#优先级)更低,所以可以很方便地覆盖它们。
-> **备注:** 在这篇文档中更深入层次的了解 [CSS 选择器](/zh-CN/docs/Learn/CSS/Building_blocks/Selectors)。
+> **备注:** 参见 [CSS 选择器](/zh-CN/docs/Learn/CSS/Building_blocks/Selectors),以了解详情。
## 我如何还原属性的默认值?
@@ -80,7 +78,7 @@ h1 {
}
```
-从 CSS2 开始,情况就不一样了。关键字 [initial](/zh-CN/docs/Web/CSS/initial) 现在是一个有效的 CSS 属性。它将给定的 CSS 属性值重置为默认值。
+从 CSS2 开始,情况就不一样了。关键字 [initial](/zh-CN/docs/Web/CSS/initial) 现在是一个有效的 CSS 属性值。它将给定的 CSS 属性值重置为默认值。
```css
/* 标题元素的默认颜色为黑色 */
@@ -94,14 +92,14 @@ h1 {
## 我如何才可以从一个样式中衍生出另一种样式?
-CSS 不允许这样做(请查阅 [Eric Meyer's note about the Working Group's stance](http://archivist.incutio.com/viewlist/css-discuss/2685))。但是,将多个类分配给单个元素,可以提供相同的效果。[CSS 变量](/zh-CN/docs/Web/CSS/Using_CSS_custom_properties) 也提供了一种方法来定义在多处复用的样式信息。
+CSS 并不完全允许用一种样式来定义另一种样式。但是,将多个类分配给单个元素,可以提供相同的效果。[CSS 变量](/zh-CN/docs/Web/CSS/Using_CSS_custom_properties)也提供了一种方法来定义在多处复用的样式信息。
## 我该如何给一个元素分配多个类?
HTML 元素可以通过列出的类属性,用空格分开它们。
```html
-
-... content of today's news ...
+这是今天的新闻内容。
```
-如果相同的属性中声明的规则,解决冲突首先通过特异性,然后根据 CSS 声明的顺序。在 `class` 属性类的顺序是不相关的。
+如果两个规则中都声明了相同的属性,则首先通过特异性解决冲突,然后根据 CSS 声明的顺序解决冲突。`class` 属性中类的顺序与此无关。
## 为什么我的样式规则不能正确地工作?
-在语法上正确的样式规则可能在某些情况下不适用。你可以使用调试工具 CSS 面板的[规则视图](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html)来调试这类问题。下面列出了最常见的忽略样式规则的实例:
+在语法上正确的样式规则可能在某些情况下不适用。你可以使用调试工具 *CSS 面板*的[规则视图](https://firefox-source-docs.mozilla.org/devtools-user/page_inspector/how_to/examine_and_edit_css/index.html)来调试这类问题。下面列出了最常见的忽略样式规则的实例:
### HTML 元素层次结构
@@ -146,7 +144,7 @@ CSS 应用于 HTML 元素依靠于元素的层次结构。在任何 CSS 特异
### 显式重定义样式规则
-在 CSS 样式表中,顺序 **非常** 重要。如果先定义了一个规则,然后又重新定义了同样的规则,会使用最后一个定义。
+在 CSS 样式表中,顺序**非常**重要。如果先定义了一个规则,然后又重新定义了同样的规则,会使用最后一个定义。
```css
#stockTicker {
@@ -170,9 +168,9 @@ CSS 应用于 HTML 元素依靠于元素的层次结构。在任何 CSS 特异
为了避免此类错误,请对特定选择器仅定义一次规则,将属于那个选择器的规则归类于此组。
-### 使用便捷属性
+### 使用简写属性
-使用便捷属性的好处是语法更加紧凑。仅使用一部分便捷属性完全没有问题,但要注意,没有声明的属性将自动重置为默认状态,这意味着单个属性较靠前的规则可能会被隐式覆盖。
+使用简写属性的好处是语法更加紧凑。仅使用一部分简写属性完全没有问题,但要注意,没有声明的属性将自动重置为默认状态,这意味着单个属性较靠前的规则可能会被隐式覆盖。
```css
#stockTicker {
@@ -190,12 +188,12 @@ CSS 应用于 HTML 元素依靠于元素的层次结构。在任何 CSS 特异
NYS: GE +1.0 ...
```
-在前一个示例中,问题发生在不同元素的规则中;但在同一个元素中问题也可能出现,因为顺序是 **重要** 的。
+在前一个示例中,问题发生在不同元素的规则中;但在同一个元素中问题也可能出现,因为顺序是**重要**的。
```css
#stockTicker {
font-weight: bold;
- font: 12px Verdana; /* font-weight is now normal */
+ font: 12px Verdana; /* font-weight 现在为 normal */
}
```
@@ -230,7 +228,7 @@ body * {
### CSS 中的优先级
-当某个元素应用了多个规则时,规则的选择依赖于样式的 [优先级](/zh-CN/docs/Web/CSS/Specificity)。内联样式(HTML 的 `style` 属性)最高,ID 选择器次之,再其次是类选择器,最后是元素名称选择器。
+当某个元素应用了多个规则时,规则的选择依赖于样式的[优先级](/zh-CN/docs/Learn/CSS/Building_blocks/Cascade_and_inheritance#优先级)。内联样式(HTML 的 `style` 属性)最高,ID 选择器次之,再其次是类选择器,最后是元素名称选择器。{{htmlelement("div")}} 的文本颜色将是红色的。
```css
div {
@@ -245,35 +243,34 @@ div {
```
```html
-This is red
+我是红的
```
-当选择器具有多个部分时,规则会更加复杂。有关优先级计算的更多信息,请参阅 [CSS 2.1 Specification 6.4.3 章节](https://www.w3.org/TR/CSS21/cascade.html#specificity)。
+当选择器具有多个部分时,规则会更加复杂。有关优先级计算的更多信息,请参阅 [CSS 优先级文档](/zh-CN/docs/Web/CSS/Specificity)。
## -moz-\*, -ms-\*, -webkit-\*, -o-\* 以及 -khtml-\* 属性有什么用?
这些被称为*前缀属性*的属性是 CSS 标准的扩展。这些是出于测试目的的使用,不至于污染标准命名空间,防止标准扩展时产生兼容性问题。
-不推荐在生产环境网站中使用这些属性,它们已经产生了巨大的网页兼容性混乱。例如,很多开发者只使用了 `-webkit-` 前缀版本的属性,但非前缀的版本已经在所有浏览器中得到支持,没有基于 Webkit 的浏览器很有可能会在今后丢失显示效果。这个问题过于严重,以至于其他浏览器也开始实现 `-webkit-` 前缀属性的别名以提升网站兼容性,即 [Compatibility Living Standard](https://compat.spec.whatwg.org/)。
+不推荐在生产环境网站中使用这些属性,它们已经产生了巨大的网页兼容性混乱。例如,很多开发者只使用了 `-webkit-` 前缀版本的属性,但非前缀的版本已经在所有浏览器中得到支持,没有基于 Webkit 的浏览器很有可能会在今后丢失显示效果。这个问题过于严重,以至于其他浏览器也开始实现 `-webkit-` 前缀属性的别名以提升网站兼容性,即[兼容性动态标准](https://compat.spec.whatwg.org/)。
实际上,大部分浏览器在实现实验性功能时都不使用 CSS 前缀,或者仅在 Nightly 浏览器版本或相似机制上实现它们。
如果需要使用前缀,建议先写带前缀的属性,然后再写不带前缀的标准版本。这样就可以在标准版本支持的时候覆盖掉前缀版本。例如:
```css
--ms-transform: rotate(90deg);
--webkit-transform: rotate(90deg);
-transform: rotate(90deg);
+-webkit-text-stroke: 4px navy;
+text-stroke: 4px navy;
```
-> **备注:** 为更深层次了解处理前缀属性,请参阅 [跨浏览器测试](/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing) 模块的 [处理常见的 HTML 和 CSS 问题](/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS)。
+> **备注:** 为更深层次了解处理前缀属性,请参阅[跨浏览器测试](/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing)模块的[处理常见的 HTML 和 CSS 问题——处理 CSS 前缀](/zh-CN/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS#处理_css_前缀)。
-> **备注:** 为了解 Mozilla 前缀属性 CSS 的更多信息,请参阅 [Mozilla CSS 扩展](/zh-CN/docs/Web/CSS/Mozilla_Extensions)。
+> **备注:** 请参阅 [Mozilla CSS 扩展](/zh-CN/docs/Web/CSS/Mozilla_Extensions)和 [WebKit CSS 扩展](/zh-CN/docs/Web/CSS/WebKit_Extensions),以了解浏览器前缀 CSS 属性的列表。
## z-index 属性与定位有什么关系?
z-index 属性指定了元素的栈序。
-有较高 z-index/栈序的元素总是在有着较低 z-index/栈序的元素之前。z-index 只会在有着指定 position(`position:absolute`、`position:relative` 或 `position:fixed`)的元素上工作。
+具有较高 z-index/栈序的元素总是渲染于具有较低 z-index/栈序的元素之前。z-index 只会在有着指定 position(`position:absolute`、`position:relative` 或 `position:fixed`)的元素上工作。
-> **备注:** 请参阅 [定位](/zh-CN/docs/Learn/CSS/CSS_layout/Positioning) 文章,特别是 [介绍 z-index](/zh-CN/docs/Learn/CSS/CSS_layout/Positioning#介绍_z-index) 部分来深入学习。
+> **备注:** 请参阅[定位](/zh-CN/docs/Learn/CSS/CSS_layout/Positioning)文章,特别是[介绍 z-index](/zh-CN/docs/Learn/CSS/CSS_layout/Positioning#介绍_z-index) 部分来深入学习。
From e0f73ae86e34e36631d4594dc5f04453a6f4a422 Mon Sep 17 00:00:00 2001
From: "Queen Vinyl Da.i'gyu-Kazotetsu"
Date: Fri, 28 Jul 2023 04:14:52 -0700
Subject: [PATCH 04/13] zh-cn: Format /web/svg using Prettier (#14672)
---
.prettierignore | 1 -
.../index.md | 131 ++++++----
.../web/svg/attribute/attributename/index.md | 2 +-
.../web/svg/attribute/baseline-shift/index.md | 8 +-
.../web/svg/attribute/baseprofile/index.md | 10 +-
files/zh-cn/web/svg/attribute/begin/index.md | 2 +-
.../web/svg/attribute/clip-path/index.md | 48 +++-
files/zh-cn/web/svg/attribute/clip/index.md | 18 +-
files/zh-cn/web/svg/attribute/color/index.md | 10 +-
files/zh-cn/web/svg/attribute/cx/index.md | 70 +++--
files/zh-cn/web/svg/attribute/cy/index.md | 70 +++--
files/zh-cn/web/svg/attribute/d/index.md | 194 +++++++++-----
.../zh-cn/web/svg/attribute/display/index.md | 18 +-
files/zh-cn/web/svg/attribute/dur/index.md | 2 +-
files/zh-cn/web/svg/attribute/dx/index.md | 8 +-
files/zh-cn/web/svg/attribute/end/index.md | 2 +-
.../web/svg/attribute/fill-opacity/index.md | 2 +-
.../web/svg/attribute/fill-rule/index.md | 74 ++++--
files/zh-cn/web/svg/attribute/fill/index.md | 2 +-
files/zh-cn/web/svg/attribute/filter/index.md | 2 +-
.../web/svg/attribute/font-family/index.md | 8 +-
files/zh-cn/web/svg/attribute/fr/index.md | 54 ++--
files/zh-cn/web/svg/attribute/from/index.md | 2 +-
files/zh-cn/web/svg/attribute/fx/index.md | 47 ++--
files/zh-cn/web/svg/attribute/height/index.md | 11 +-
files/zh-cn/web/svg/attribute/id/index.md | 9 +-
files/zh-cn/web/svg/attribute/in/index.md | 74 ++++--
.../web/svg/attribute/kernelmatrix/index.md | 6 +-
.../zh-cn/web/svg/attribute/keytimes/index.md | 46 ++--
.../web/svg/attribute/letter-spacing/index.md | 10 +-
.../web/svg/attribute/marker-end/index.md | 27 +-
.../web/svg/attribute/marker-start/index.md | 27 +-
files/zh-cn/web/svg/attribute/mask/index.md | 6 +-
files/zh-cn/web/svg/attribute/max/index.md | 22 +-
files/zh-cn/web/svg/attribute/media/index.md | 12 +-
.../zh-cn/web/svg/attribute/opacity/index.md | 6 +-
files/zh-cn/web/svg/attribute/order/index.md | 6 +-
.../web/svg/attribute/pathlength/index.md | 70 ++---
.../web/svg/attribute/patternunits/index.md | 30 ++-
.../web/svg/attribute/pointer-events/index.md | 22 +-
files/zh-cn/web/svg/attribute/points/index.md | 6 +-
.../attribute/preserveaspectratio/index.md | 9 +-
files/zh-cn/web/svg/attribute/r/index.md | 32 ++-
files/zh-cn/web/svg/attribute/radius/index.md | 6 +-
files/zh-cn/web/svg/attribute/result/index.md | 6 +-
files/zh-cn/web/svg/attribute/rx/index.md | 26 +-
files/zh-cn/web/svg/attribute/scale/index.md | 6 +-
files/zh-cn/web/svg/attribute/seed/index.md | 6 +-
.../svg/attribute/stroke-dasharray/index.md | 55 ++--
.../svg/attribute/stroke-dashoffset/index.md | 8 +-
.../web/svg/attribute/stroke-linecap/index.md | 52 ++--
.../svg/attribute/stroke-linejoin/index.md | 177 +++++++++----
.../svg/attribute/stroke-miterlimit/index.md | 8 +-
.../web/svg/attribute/stroke-opacity/index.md | 18 +-
.../web/svg/attribute/stroke-width/index.md | 6 +-
files/zh-cn/web/svg/attribute/stroke/index.md | 12 +-
files/zh-cn/web/svg/attribute/style/index.md | 8 +-
files/zh-cn/web/svg/attribute/target/index.md | 26 +-
.../web/svg/attribute/text-anchor/index.md | 57 +++--
.../web/svg/attribute/transform/index.md | 127 ++++++---
files/zh-cn/web/svg/attribute/type/index.md | 2 +-
files/zh-cn/web/svg/attribute/values/index.md | 1 +
.../web/svg/attribute/vector-effect/index.md | 23 +-
.../zh-cn/web/svg/attribute/version/index.md | 6 +-
files/zh-cn/web/svg/attribute/y/index.md | 2 +-
files/zh-cn/web/svg/content_type/index.md | 22 +-
files/zh-cn/web/svg/element/a/index.md | 18 +-
files/zh-cn/web/svg/element/animate/index.md | 14 +-
.../web/svg/element/animatemotion/index.md | 9 +-
.../web/svg/element/animatetransform/index.md | 30 ++-
files/zh-cn/web/svg/element/circle/index.md | 8 +-
files/zh-cn/web/svg/element/clippath/index.md | 19 +-
files/zh-cn/web/svg/element/feblend/index.md | 29 ++-
.../web/svg/element/fecolormatrix/index.md | 42 ++-
.../svg/element/fecomponenttransfer/index.md | 36 ++-
.../svg/element/fediffuselighting/index.md | 43 +++-
.../web/svg/element/fedropshadow/index.md | 34 +--
.../web/svg/element/fegaussianblur/index.md | 30 +--
files/zh-cn/web/svg/element/feimage/index.md | 11 +-
files/zh-cn/web/svg/element/filter/index.md | 11 +-
.../web/svg/element/foreignobject/index.md | 19 +-
files/zh-cn/web/svg/element/g/index.md | 7 +-
files/zh-cn/web/svg/element/image/index.md | 16 +-
.../web/svg/element/lineargradient/index.md | 14 +-
files/zh-cn/web/svg/element/marker/index.md | 16 +-
files/zh-cn/web/svg/element/mpath/index.md | 45 ++--
files/zh-cn/web/svg/element/path/index.md | 6 +-
.../web/svg/element/radialgradient/index.md | 22 +-
files/zh-cn/web/svg/element/rect/index.md | 6 +-
files/zh-cn/web/svg/element/script/index.md | 16 +-
files/zh-cn/web/svg/element/stop/index.md | 21 +-
files/zh-cn/web/svg/element/style/index.md | 7 +-
files/zh-cn/web/svg/element/svg/index.md | 28 +-
files/zh-cn/web/svg/element/symbol/index.md | 29 ++-
files/zh-cn/web/svg/element/textpath/index.md | 26 +-
files/zh-cn/web/svg/element/tspan/index.md | 4 +-
files/zh-cn/web/svg/linking/index.md | 2 +-
.../web/svg/svg_animation_with_smil/index.md | 50 ++--
.../tutorial/clipping_and_masking/index.md | 28 +-
.../svg/tutorial/fills_and_strokes/index.md | 8 +-
.../web/svg/tutorial/filter_effects/index.md | 98 ++++---
.../web/svg/tutorial/getting_started/index.md | 6 +-
.../zh-cn/web/svg/tutorial/gradients/index.md | 241 ++++++++++++------
.../zh-cn/web/svg/tutorial/patterns/index.md | 28 +-
.../web/svg/tutorial/svg_and_css/index.md | 198 +++++++-------
105 files changed, 2026 insertions(+), 1125 deletions(-)
diff --git a/.prettierignore b/.prettierignore
index 4c0ab9d179b0d5..93ef1c28e73f10 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -93,4 +93,3 @@ build/
/files/zh-cn/web/css/**/*.md
/files/zh-cn/web/html/**/*.md
/files/zh-cn/web/javascript/reference/**/*.md
-/files/zh-cn/web/svg/**/*.md
diff --git a/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.md b/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.md
index 85dfae74cc4811..716e02f2234db6 100644
--- a/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.md
+++ b/files/zh-cn/web/svg/applying_svg_effects_to_html_content/index.md
@@ -16,7 +16,11 @@ slug: Web/SVG/Applying_SVG_effects_to_HTML_content
要想在 CSS 样式中应用 SVG 效果,首先需要创建一个引用 SVG 的 CSS 样式。
```html
-
+
```
在上面的例子中,所有段落会被 [ID](/zh-CN/docs/Web/HTML/Global_attributes/id) 为 `my-mask` 的 [SVG ``](/zh-CN/docs/Web/SVG/Element/mask) 遮罩。
@@ -29,11 +33,11 @@ slug: Web/SVG/Applying_SVG_effects_to_HTML_content
-
-
+
+
-
-
+
+
```
@@ -55,14 +59,15 @@ p {
```html
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
- Lorem ipsum dolor sit amet, consectetur adipisicing
- elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua.
- Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing
+ elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam.
```
@@ -76,22 +81,23 @@ p {
```html
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
- Lorem ipsum dolor sit amet, consectetur adipisicing
- elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua.
- Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing
+ elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam.
Toggle radius
-
-
+
+
```
@@ -114,7 +120,7 @@ p {
```js
function toggleRadius() {
var circle = document.getElementById("circle");
- circle.r.baseVal.value = 0.40 - circle.r.baseVal.value;
+ circle.r.baseVal.value = 0.4 - circle.r.baseVal.value;
}
```
@@ -126,15 +132,16 @@ function toggleRadius() {
```html
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua. Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.
lorem
- Lorem ipsum dolor sit amet, consectetur adipisicing
- elit, sed do eiusmod tempor incididunt
- ut labore et dolore magna aliqua.
- Ut enim ad minim veniam.
+ Lorem ipsum dolor sit amet, consectetur adipisicing
+ elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+ Ut enim ad minim veniam.
```
@@ -143,7 +150,7 @@ function toggleRadius() {
```html
-
+
```
@@ -153,10 +160,11 @@ function toggleRadius() {
```html
-
+
```
@@ -166,20 +174,29 @@ function toggleRadius() {
```html
-
+
-
-
+
+
-
+
```
@@ -187,12 +204,24 @@ function toggleRadius() {
使用以下 CSS 应用五个过滤器:
```css
-p.target { filter:url(#f3); }
-p.target:hover { filter:url(#f5); }
-b.target { filter:url(#f1); }
-b.target:hover { filter:url(#f4); }
-pre.target { filter:url(#f2); }
-pre.target:hover { filter:url(#f3); }
+p.target {
+ filter: url(#f3);
+}
+p.target:hover {
+ filter: url(#f5);
+}
+b.target {
+ filter: url(#f1);
+}
+b.target:hover {
+ filter: url(#f4);
+}
+pre.target {
+ filter: url(#f2);
+}
+pre.target:hover {
+ filter: url(#f3);
+}
```
{{EmbedLiveSample('示例:Filtering', 650, 200)}}
@@ -206,7 +235,7 @@ pre.target:hover { filter:url(#f3); }
-
+
@@ -215,7 +244,9 @@ pre.target:hover { filter:url(#f3); }
你可以在同一个 class 中使用 SVG 和 CSS 过滤器:
```css
-.blur { filter: url(#wherearemyglasses); }
+.blur {
+ filter: url(#wherearemyglasses);
+}
```
{{ EmbedLiveSample('示例:Blurred Text', 300, 100) }}
@@ -241,7 +272,9 @@ SVG 还可以用于添加比纯 HTML 文本更动态、更灵活的文本添加
例如,CSS 规则在一个名为 default.css 的文件中,如下这样:
```css
-.target { clip-path: url(resources.svg#c1); }
+.target {
+ clip-path: url(resources.svg#c1);
+}
```
这个 SVG 就可以从一个名为 resources.svg 的文件中导入,clip 路径为 ID c1。
diff --git a/files/zh-cn/web/svg/attribute/attributename/index.md b/files/zh-cn/web/svg/attribute/attributename/index.md
index f6f2119fb0ea14..d3a627960647f6 100644
--- a/files/zh-cn/web/svg/attribute/attributename/index.md
+++ b/files/zh-cn/web/svg/attribute/attributename/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/attributeName
| 类别 | 动画属性目标属性 |
| -------- | ------------------------------------------------------------------------------------- |
-| 值 | \ |
+| 值 | \ |
| 可变性 | No |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/animate.html#AttributeNameAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/baseline-shift/index.md b/files/zh-cn/web/svg/attribute/baseline-shift/index.md
index fc01b4121995cc..1f6e7becfee3f1 100644
--- a/files/zh-cn/web/svg/attribute/baseline-shift/index.md
+++ b/files/zh-cn/web/svg/attribute/baseline-shift/index.md
@@ -11,11 +11,11 @@ slug: Web/SVG/Attribute/baseline-shift
## 用法
-| 类别 | 外观属性 |
-| -------- | ---------------------------------------------------------------------------------------------------------- |
+| 类别 | 外观属性 |
+| -------- | --------------------------------------------------------------------------------------------------------------- |
| 值 | **auto** \| baseline \| super \| sub \| \ \| [\](/zh-CN/SVG/Content_type#Length) \| inherit |
-| 可变性 | Yes |
-| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/text.html#BaselineShiftProperty) |
+| 可变性 | Yes |
+| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/text.html#BaselineShiftProperty) |
- baseline
- : 没有基线切换,`dominant-baseline`依然在原来的位置。
diff --git a/files/zh-cn/web/svg/attribute/baseprofile/index.md b/files/zh-cn/web/svg/attribute/baseprofile/index.md
index b3996c2ce3dedd..0e943cd263b72c 100644
--- a/files/zh-cn/web/svg/attribute/baseprofile/index.md
+++ b/files/zh-cn/web/svg/attribute/baseprofile/index.md
@@ -29,11 +29,13 @@ slug: Web/SVG/Attribute/baseProfile
## 例子
```html
-
-
+
...
-
```
diff --git a/files/zh-cn/web/svg/attribute/begin/index.md b/files/zh-cn/web/svg/attribute/begin/index.md
index 9c0a462b85c2e8..a26c27b78f5a12 100644
--- a/files/zh-cn/web/svg/attribute/begin/index.md
+++ b/files/zh-cn/web/svg/attribute/begin/index.md
@@ -13,7 +13,7 @@ slug: Web/SVG/Attribute/begin
| 类别 | 动画定时属性 |
| -------- | ----------------------------------------------------------------------------- |
-| 值 | \ |
+| 值 | \ |
| 可变性 | No |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/animate.html#BeginAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/clip-path/index.md b/files/zh-cn/web/svg/attribute/clip-path/index.md
index 8b673cd1749a72..6862efef2167d2 100644
--- a/files/zh-cn/web/svg/attribute/clip-path/index.md
+++ b/files/zh-cn/web/svg/attribute/clip-path/index.md
@@ -14,7 +14,11 @@ slug: Web/SVG/Attribute/clip-path
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -24,24 +28,44 @@ html,body,svg { height:100% }
-
+
-
+
-
+
-
+
```
@@ -50,9 +74,9 @@ html,body,svg { height:100% }
## Usage notes
| 值 | {{cssxref('url')}} \| [ {{cssxref('basic-shape')}} \|\| `` ] \| `none` |
-| ---------- | ---------------------------------------------------------------------------------------------------- |
-| 默认值 | `none` |
-| Animatable | 是 |
+| ---------- | ------------------------------------------------------------------------------------ |
+| 默认值 | `none` |
+| Animatable | 是 |
- \
- : geometry-box 是应用 {{cssxref('basic-shape')}} 的额外信息,用于区分 CSS 基本形状如何应用于元素上:`fill-box` 表示将对象的包围框作为参照框;`stroke-box` 表示将对象的包围框加上描边的范围作为参照框;`view-box` 表示使用最近的 SVG 视窗作为参照框。
diff --git a/files/zh-cn/web/svg/attribute/clip/index.md b/files/zh-cn/web/svg/attribute/clip/index.md
index f16e95e83cc2c6..e1e21428c9803e 100644
--- a/files/zh-cn/web/svg/attribute/clip/index.md
+++ b/files/zh-cn/web/svg/attribute/clip/index.md
@@ -14,20 +14,22 @@ As a presentation attribute, it can be applied to any element but it has effect
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
@@ -40,9 +42,9 @@ html,body,svg { height:100% }
**Warning:** This property is deprecated. Use {{cssxref("clip-path")}} instead.
| 可用值 | **auto** \| \ \| inherit |
-| ---------- | ------------------------------ |
-| 默认值 | Yes |
-| Animatable | Yes |
+| ---------- | ------------------------------- |
+| 默认值 | Yes |
+| Animatable | Yes |
The value `auto` defines a clipping path along the bounds of the viewport created by the given element.
diff --git a/files/zh-cn/web/svg/attribute/color/index.md b/files/zh-cn/web/svg/attribute/color/index.md
index b16d41d55cb5f9..3c399ea1ca22c2 100644
--- a/files/zh-cn/web/svg/attribute/color/index.md
+++ b/files/zh-cn/web/svg/attribute/color/index.md
@@ -13,7 +13,7 @@ slug: Web/SVG/Attribute/color
| 类别 | 外观属性 |
| -------- | ---------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#Color) \| inherit |
+| 值 | [\](/zh-CN/SVG/Content_type#Color) \| inherit |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/color.html#ColorProperty) |
## 示例
@@ -22,7 +22,13 @@ slug: Web/SVG/Attribute/color
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/cx/index.md b/files/zh-cn/web/svg/attribute/cx/index.md
index 822497752f405b..16ef1c180c1bc3 100644
--- a/files/zh-cn/web/svg/attribute/cx/index.md
+++ b/files/zh-cn/web/svg/attribute/cx/index.md
@@ -12,17 +12,21 @@ slug: Web/SVG/Attribute/cx
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
@@ -35,9 +39,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('circle')}},`cx` 用来定义图形中心的 x 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `0` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `0` |
+| 可变性 | Yes |
注:起始于 SVG2 `cx`,是一个几何属性,意味着该属性也可以用作圆的 CSS 属性。
@@ -46,9 +50,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('ellipse')}},`cx` 用来定义图形中心的 x 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `0` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `0` |
+| 可变性 | Yes |
**注:** 起始于 SVG2 `cx`,是一个几何属性,意味着该属性也可以用作椭圆的 CSS 属性。
@@ -57,41 +61,63 @@ html,body,svg { height:100% }
对于 {{SVGElement('radialGradient')}}, `cx` 用来定义径向渐变终止圆的 x 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** |
-| ------ | ------------------------------------------------- |
-| 默认值 | `50%` |
-| 可变性 | Yes |
+| ------ | -------------------------------------------------------- |
+| 默认值 | `50%` |
+| 可变性 | Yes |
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/cy/index.md b/files/zh-cn/web/svg/attribute/cy/index.md
index c70e6687e682e2..55c89b1a5a292c 100644
--- a/files/zh-cn/web/svg/attribute/cy/index.md
+++ b/files/zh-cn/web/svg/attribute/cy/index.md
@@ -12,17 +12,21 @@ slug: Web/SVG/Attribute/cy
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
@@ -35,9 +39,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('circle')}},`cy` 用来定义图形中心的 y 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `0` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `0` |
+| 可变性 | Yes |
**注:**起始于 SVG2,`cy` 是一个几何属性,意味着该属性也可以用作圆的 CSS 属性。
@@ -46,9 +50,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('ellipse')}},`cy` 用来定义图形中心的 y 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `0` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `0` |
+| 可变性 | Yes |
**注:**起始于 SVG2,`cy` 是一个几何属性,意味着该属性也可以用作椭圆的 CSS 属性。
@@ -57,41 +61,63 @@ html,body,svg { height:100% }
对于 {{SVGElement('radialGradient')}},`cy` 用来定义径向渐变终止圆的 y 轴坐标。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** |
-| ------ | ------------------------------------------------- |
-| 默认值 | `50%` |
-| 可变性 | Yes |
+| ------ | -------------------------------------------------------- |
+| 默认值 | `50%` |
+| 可变性 | Yes |
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/d/index.md b/files/zh-cn/web/svg/attribute/d/index.md
index 08b84e366c6f4c..a923be4486e0d5 100644
--- a/files/zh-cn/web/svg/attribute/d/index.md
+++ b/files/zh-cn/web/svg/attribute/d/index.md
@@ -16,12 +16,18 @@ slug: Web/SVG/Attribute/d
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
-
@@ -397,21 +417,29 @@ _Lineto_ 指令将绘制一条直线段。这个直线段从*当前位置*(_P<
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
@@ -433,7 +461,7 @@ html,body,svg { height:100% }
- 终点控制点
- : (_Pce _ = {_xce _, _yce _})(控制在终点附近的曲线的曲率)
-绘制后,*终点*(_Pn _)将成为下一个命令中的*当前位置*(_Po ′_)。
+绘制后,_终点_(_Pn _)将成为下一个命令中的*当前位置*(_Po ′_)。
@@ -569,45 +597,60 @@ html,body,svg { height:100% }
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
+
-
-
-
-
+
-
+
-
-
+
+
-
-
-
+
+
+
@@ -617,7 +660,7 @@ html,body,svg { height:100% }
### 二次贝塞尔曲线
-*二次*[*贝塞尔曲线*](/zh-CN/docs/Glossary/Bezier_curve)是使用三个点定义的平滑曲线:
+*二次[贝塞尔曲线](/zh-CN/docs/Glossary/Bezier_curve)*是使用三个点定义的平滑曲线:
- 起始点(当前位置)
- : _Po _ = {_xo _, _yo _}
@@ -626,7 +669,7 @@ html,body,svg { height:100% }
- 控制点
- : _Pc _ = {_xc _, _yc _}(控制曲率)
-绘制后,*终点*(_Pn _)将成为下一个命令中的*当前位置*(_Po ′_)。
+绘制后,_终点_(_Pn _)将成为下一个命令中的*当前位置*(_Po ′_)。
@@ -760,15 +803,23 @@ html,body,svg { height:100% }
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
+
-
@@ -778,23 +829,31 @@ html,body,svg { height:100% }
-
-
+
+
-
+
-
+
-
+
@@ -907,27 +966,38 @@ html,body,svg { height:100% }
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
-
-
-
```
@@ -960,34 +1030,40 @@ _ClosePath_ 命令将从*当前位置*绘制一条直线到路径中的第一个
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
-
-
diff --git a/files/zh-cn/web/svg/attribute/display/index.md b/files/zh-cn/web/svg/attribute/display/index.md
index 34c339e4fc85c2..c894aadb5827fd 100644
--- a/files/zh-cn/web/svg/attribute/display/index.md
+++ b/files/zh-cn/web/svg/attribute/display/index.md
@@ -28,7 +28,9 @@ As a presentation attribute, it can be applied to any element.
## 示例
```css hidden
-html, body, svg {
+html,
+body,
+svg {
height: 100%;
}
```
@@ -41,7 +43,13 @@ html, body, svg {
-
+
```
@@ -49,10 +57,10 @@ html, body, svg {
## 使用说明
-| Default value | `inline` |
-| ------------- | -------------------------------- |
+| Default value | `inline` |
+| ------------- | ------------------------ |
| Value | {{csssyntax("display")}} |
-| Animatable | Yes |
+| Animatable | Yes |
For a description of the values, please refer to the {{cssxref("display", "CSS display")}} property.
diff --git a/files/zh-cn/web/svg/attribute/dur/index.md b/files/zh-cn/web/svg/attribute/dur/index.md
index b921cd35a0524a..a3c05fe4ae8f3e 100644
--- a/files/zh-cn/web/svg/attribute/dur/index.md
+++ b/files/zh-cn/web/svg/attribute/dur/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/dur
| 类别 | 动画定时属性 |
| -------- | --------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#Clock-value) \| **indefinite** |
+| 值 | [\](/zh-CN/SVG/Content_type#Clock-value) \| **indefinite** |
| 可变性 | No |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/animate.html#DurAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/dx/index.md b/files/zh-cn/web/svg/attribute/dx/index.md
index c6d059c6e78c76..f1a83c66fd22f2 100644
--- a/files/zh-cn/web/svg/attribute/dx/index.md
+++ b/files/zh-cn/web/svg/attribute/dx/index.md
@@ -24,10 +24,10 @@ slug: Web/SVG/Attribute/dx
## 用法上下文
-| 分类 | 无 |
-| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| 数值类型 | [\](/zh-CN/SVG/Content_type#Number) \| [T<.2Fvar>s">\](/zh-CN/SVG/Content_type#List-of-T<.2Fvar>s) |
-| 可变 | 是 |
+| 分类 | 无 |
+| -------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| 数值类型 | [\](/zh-CN/SVG/Content_type#Number) \| [T<.2Fvar>s">\](/zh-CN/SVG/Content_type#List-of-T<.2Fvar>s) |
+| 可变 | 是 |
## 元素
diff --git a/files/zh-cn/web/svg/attribute/end/index.md b/files/zh-cn/web/svg/attribute/end/index.md
index 21c6d6b0719b38..39973c740f9ddc 100644
--- a/files/zh-cn/web/svg/attribute/end/index.md
+++ b/files/zh-cn/web/svg/attribute/end/index.md
@@ -13,7 +13,7 @@ slug: Web/SVG/Attribute/end
| 类别 | 动画定时属性 |
| -------- | --------------------------------------------------------------------------- |
-| 值 | \ |
+| 值 | \ |
| 可变性 | No |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/animate.html#EndAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/fill-opacity/index.md b/files/zh-cn/web/svg/attribute/fill-opacity/index.md
index 42dfc5ea6d3a58..bdec1372375654 100644
--- a/files/zh-cn/web/svg/attribute/fill-opacity/index.md
+++ b/files/zh-cn/web/svg/attribute/fill-opacity/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/fill-opacity
| 类别 | 外观属性 |
| -------- | ----------------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#Opacity_value) \| inherit |
+| 值 | [\](/zh-CN/SVG/Content_type#Opacity_value) \| inherit |
| 初始值 | 1 |
| 可变性 | Yes |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/painting.html#FillOpacityProperty) |
diff --git a/files/zh-cn/web/svg/attribute/fill-rule/index.md b/files/zh-cn/web/svg/attribute/fill-rule/index.md
index 814e1acb803e38..84facdac874844 100644
--- a/files/zh-cn/web/svg/attribute/fill-rule/index.md
+++ b/files/zh-cn/web/svg/attribute/fill-rule/index.md
@@ -24,21 +24,29 @@ slug: Web/SVG/Attribute/fill-rule
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
```
@@ -62,30 +70,40 @@ html,body,svg { height:100% }
#### Example
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
```
@@ -98,30 +116,40 @@ html,body,svg { height:100% }
#### Example
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/fill/index.md b/files/zh-cn/web/svg/attribute/fill/index.md
index e17ff051a2865d..47be234349f038 100644
--- a/files/zh-cn/web/svg/attribute/fill/index.md
+++ b/files/zh-cn/web/svg/attribute/fill/index.md
@@ -30,7 +30,7 @@ slug: Web/SVG/Attribute/fill
| 类别 | 外观属性 |
| -------- | ---------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#Paint) |
+| 值 | [\](/zh-CN/SVG/Content_type#Paint) |
| 可变性 | Yes |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/painting.html#FillProperty) |
diff --git a/files/zh-cn/web/svg/attribute/filter/index.md b/files/zh-cn/web/svg/attribute/filter/index.md
index fd5d559505c7d5..b169e3d9c89f2b 100644
--- a/files/zh-cn/web/svg/attribute/filter/index.md
+++ b/files/zh-cn/web/svg/attribute/filter/index.md
@@ -13,7 +13,7 @@ slug: Web/SVG/Attribute/filter
| 类别 | 外观属性 |
| -------- | ------------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#FuncIRI) \| **none** \| inherit |
+| 值 | [\](/zh-CN/SVG/Content_type#FuncIRI) \| **none** \| inherit |
| 可变性 | Yes |
| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/filters.html#FilterProperty) |
diff --git a/files/zh-cn/web/svg/attribute/font-family/index.md b/files/zh-cn/web/svg/attribute/font-family/index.md
index 300167ae5c9111..d27187379ad98b 100644
--- a/files/zh-cn/web/svg/attribute/font-family/index.md
+++ b/files/zh-cn/web/svg/attribute/font-family/index.md
@@ -11,11 +11,11 @@ slug: Web/SVG/Attribute/font-family
## 使用上下文
-| 分类 | Presentation attribute |
-| ----------------- | --------------------------------------------------------------------------------------- |
+| 分类 | Presentation attribute |
+| ----------------- | ------------------------------------------------------------------------------------------- |
| 值 | [[\ \| \],]\* [\ \| \] \| inherit |
-| 可动画 Animatable | Yes |
-| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/text.html#FontFamilyProperty) |
+| 可动画 Animatable | Yes |
+| 规范文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG11/text.html#FontFamilyProperty) |
## 例子
diff --git a/files/zh-cn/web/svg/attribute/fr/index.md b/files/zh-cn/web/svg/attribute/fr/index.md
index 932bae870f3499..41320d70c03f9e 100644
--- a/files/zh-cn/web/svg/attribute/fr/index.md
+++ b/files/zh-cn/web/svg/attribute/fr/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/fr
| 类别 | 无 |
| -------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/docs/Web/SVG/Content_type#Length) |
+| 值 | [\](/zh-CN/docs/Web/SVG/Content_type#Length) |
| 可变性 | 非 |
| 规范文档 | [SVG 1.1 (2nd Edition): The radialGradient element](http://www.w3.org/TR/SVG/pservers.html#RadialGradientElementCXAttribute) |
@@ -20,25 +20,47 @@ slug: Web/SVG/Attribute/fr
```html
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
- (fx,fy)
- (cx,cy)
+
+
+
+
+
+ (fx,fy)
+
+
+ (cx,cy)
+
```
diff --git a/files/zh-cn/web/svg/attribute/from/index.md b/files/zh-cn/web/svg/attribute/from/index.md
index 4ec9a825bcb0cf..3398295bc5568a 100644
--- a/files/zh-cn/web/svg/attribute/from/index.md
+++ b/files/zh-cn/web/svg/attribute/from/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/From
| 类别 | 动画属性值 |
| ---------- | ---------------------------------------------------------------------------- |
-| 值 | \ |
+| 值 | \ |
| 动画特征 | No |
| 标准化文档 | [SVG 1.1 (2nd Edition)](http://www.w3.org/TR/SVG/animate.html#FromAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/fx/index.md b/files/zh-cn/web/svg/attribute/fx/index.md
index 22399314975224..8fc004cd8e8521 100644
--- a/files/zh-cn/web/svg/attribute/fx/index.md
+++ b/files/zh-cn/web/svg/attribute/fx/index.md
@@ -11,7 +11,7 @@ slug: Web/SVG/Attribute/fx
| 类别 | 无 |
| -------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| 值 | [\](/zh-CN/SVG/Content_type#Coordinate) |
+| 值 | [\](/zh-CN/SVG/Content_type#Coordinate) |
| 可变性 | 非 |
| 规范文档 | [SVG 1.1 (2nd Edition): The radialGradient element](http://www.w3.org/TR/SVG/pservers.html#RadialGradientElementCXAttribute) |
@@ -20,25 +20,40 @@ slug: Web/SVG/Attribute/fx
```html
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
- (fx,fy)
- (cx,cy)
+
+
+
+
+
+ (fx,fy)
+
+
+ (cx,cy)
+
```
diff --git a/files/zh-cn/web/svg/attribute/height/index.md b/files/zh-cn/web/svg/attribute/height/index.md
index 269ef49ebf2e11..49549cd5fe5c14 100644
--- a/files/zh-cn/web/svg/attribute/height/index.md
+++ b/files/zh-cn/web/svg/attribute/height/index.md
@@ -13,11 +13,12 @@ slug: Web/SVG/Attribute/height
```html
-
-
-
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/id/index.md b/files/zh-cn/web/svg/attribute/id/index.md
index 49fd1fb5b9c1c6..b3a2155cc3da01 100644
--- a/files/zh-cn/web/svg/attribute/id/index.md
+++ b/files/zh-cn/web/svg/attribute/id/index.md
@@ -12,7 +12,11 @@ slug: Web/SVG/Attribute/id
## 示例
```html
-
+
Resize the window to see the effect
diff --git a/files/zh-cn/web/svg/attribute/opacity/index.md b/files/zh-cn/web/svg/attribute/opacity/index.md
index 4a7f65b0158285..26aa8489c15d2c 100644
--- a/files/zh-cn/web/svg/attribute/opacity/index.md
+++ b/files/zh-cn/web/svg/attribute/opacity/index.md
@@ -11,10 +11,10 @@ opacity 属性指定了一个对象或一组对象的透明度,也就是说,
## 用法
-| 类别 | 外观属性 |
-| ------ | -------------------------- |
+| 类别 | 外观属性 |
+| ------ | --------------------------- |
| 值 | \ \| inherit |
-| 可变性 | Yes |
+| 可变性 | Yes |
- \
- : 一致的不透明度设置,作为一个[\](/zh-CN/SVG/Content_type#Number)被应用到整个对象上。任何超过范围 0.0 到 1.0 的值都会被压回这个范围。0.0 表示完全透明,1.0 表示完全不透明。
diff --git a/files/zh-cn/web/svg/attribute/order/index.md b/files/zh-cn/web/svg/attribute/order/index.md
index d88a65bafab14d..fb33b01f4c81f0 100644
--- a/files/zh-cn/web/svg/attribute/order/index.md
+++ b/files/zh-cn/web/svg/attribute/order/index.md
@@ -15,10 +15,10 @@ order 属性确定被用作 {{ SVGElement("feConvolveMatrix") }} 元素的矩阵
## Usage context
-| Categories | None |
-| ---------- | ----------------------------------------------------------------------- |
+| Categories | None |
+| ---------- | --------------------------------------------------------------------------- |
| Value | [\](/zh-CN/SVG/Content_type#Number-optional-number) |
-| Animatable | Yes |
+| Animatable | Yes |
## Example
diff --git a/files/zh-cn/web/svg/attribute/pathlength/index.md b/files/zh-cn/web/svg/attribute/pathlength/index.md
index d9974a3445c6ca..9318d8ef55fa0b 100644
--- a/files/zh-cn/web/svg/attribute/pathlength/index.md
+++ b/files/zh-cn/web/svg/attribute/pathlength/index.md
@@ -14,34 +14,38 @@ Seven elements are using this attribute: {{SVGElement('circle')}}, {{SVGElement(
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
-
+
-
+
```
@@ -52,63 +56,63 @@ html,body,svg { height:100% }
For {{SVGElement('circle')}}, `pathLength` lets authors specify a total length for the circle, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## ellipse
For {{SVGElement('ellipse')}}, `pathLength` lets authors specify a total length for the ellipse, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## line
For {{SVGElement('line')}}, `pathLength` lets authors specify a total length for the line, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## path
For {{SVGElement('path')}}, `pathLength` lets authors specify a total length for the path, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## polygon
For {{SVGElement('polygon')}}, `pathLength` lets authors specify a total length for the shape, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## polyline
For {{SVGElement('polyline')}}, `pathLength` lets authors specify a total length for the shape, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## rect
For {{SVGElement('circle')}}, `pathLength` lets authors specify a total length for the rectangle, in user units.
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Number)** |
-| ------------- | ------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | -------------------------------------------------------- |
+| Default value | _none_ |
+| Animatable | Yes |
## 规范
diff --git a/files/zh-cn/web/svg/attribute/patternunits/index.md b/files/zh-cn/web/svg/attribute/patternunits/index.md
index c238fcdbfb983b..3d985f9aa023bb 100644
--- a/files/zh-cn/web/svg/attribute/patternunits/index.md
+++ b/files/zh-cn/web/svg/attribute/patternunits/index.md
@@ -12,30 +12,42 @@ Only one element is using this attribute: {{SVGElement('pattern')}}
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/pointer-events/index.md b/files/zh-cn/web/svg/attribute/pointer-events/index.md
index 81debf70a6aa5e..d453b4ffbfc74e 100644
--- a/files/zh-cn/web/svg/attribute/pointer-events/index.md
+++ b/files/zh-cn/web/svg/attribute/pointer-events/index.md
@@ -12,7 +12,11 @@ pointer-events 属性是一个展示属性,用于定义元素是否或何时
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -23,8 +27,7 @@ html,body,svg { height:100% }
你需要点击 rect 元素在圆外的部分
-->
-
+
-
+
```
```js
-window.addEventListener('mouseup', (e) => {
+window.addEventListener("mouseup", (e) => {
// 在 #000000 和 #FFFFFF 之间随机选取一个颜色
- const color = Math.round(Math.random() * 0xFFFFFF)
+ const color = Math.round(Math.random() * 0xffffff);
// 将 color 变量的值按照 CSS 的要求进行格式化
- const fill = '#' + color.toString(16).padStart(6,'0')
+ const fill = "#" + color.toString(16).padStart(6, "0");
// 将 color 变量设置的颜色应用到实际点击的元素上
- e.target.style.fill = fill
-})
+ e.target.style.fill = fill;
+});
```
{{EmbedLiveSample('示例', '100%', 150)}}
diff --git a/files/zh-cn/web/svg/attribute/points/index.md b/files/zh-cn/web/svg/attribute/points/index.md
index 839e7dd8ab34a1..132f4455c926ba 100644
--- a/files/zh-cn/web/svg/attribute/points/index.md
+++ b/files/zh-cn/web/svg/attribute/points/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/points
## 用法
-| 类别 | 无 |
-| ------ | ---------------- |
+| 类别 | 无 |
+| ------ | ----------------- |
| 值 | \ |
-| 可变性 | Yes |
+| 可变性 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/preserveaspectratio/index.md b/files/zh-cn/web/svg/attribute/preserveaspectratio/index.md
index ed556624e5c352..a7d101d748dca4 100644
--- a/files/zh-cn/web/svg/attribute/preserveaspectratio/index.md
+++ b/files/zh-cn/web/svg/attribute/preserveaspectratio/index.md
@@ -15,12 +15,13 @@ slug: Web/SVG/Attribute/preserveAspectRatio
## 上下文用法
-| Categories | None |
-| ---------- | ----------------------- |
+| Categories | None |
+| ---------- | ------------------------- |
| Value | \ [\] |
-| Animatable | Yes |
+| Animatable | Yes |
- \
+
- : `` 属性值表示是否强制统一缩放,当 SVG 的 viewbox 属性与视图属性宽高比不一致时使用。`` 属性的值一定是下列的值之一:
- **none** 不会进行强制统一缩放,如果需要,会缩放指定元素的图形内容,使元素的边界完全匹配视图矩形。(注意:如果 `` 的值是 `none` ,则 `` 属性的值将会被忽略。)
@@ -33,7 +34,9 @@ slug: Web/SVG/Attribute/preserveAspectRatio
- **xMinYMax** - 强制统一缩放。将 SVG 元素的 viewbox 属性的 X 的最小值与视图的 X 的最小值对齐。将 SVG 元素的 viewbox 属性的 Y 的最小值 + 元素的高度与视图的 Y 的最大值对齐。
- **xMidYMax** - 强制统一缩放。将 SVG 元素的 viewbox 属性的 X 的中点值与视图的 X 的中点值对齐。将 SVG 元素的 viewbox 属性的 Y 的最小值 + 元素的高度与视图的 Y 的最大值对齐。
- **xMaxYMax** - 强制统一缩放。将 SVG 元素的 viewbox 属性的 X 的最小值 + 元素的宽度与视图的 X 的最大值对齐。将 SVG 元素的 viewbox 属性的 Y 的最小值 + 元素的高度与视图的 Y 的最大值对齐。
+
- \
+
- : `` 是可选的,如果提供的话,与 `` 间隔一个或多个的空格,参数所选值必须是以下值之一:
- **meet** (默认值) - 图形将缩放到:
diff --git a/files/zh-cn/web/svg/attribute/r/index.md b/files/zh-cn/web/svg/attribute/r/index.md
index df583264787406..f59bc54d1d96c6 100644
--- a/files/zh-cn/web/svg/attribute/r/index.md
+++ b/files/zh-cn/web/svg/attribute/r/index.md
@@ -12,29 +12,33 @@ slug: Web/SVG/Attribute/r
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
-
-
-
+
+
+
-
+
@@ -47,9 +51,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('circle')}},`r` 用来定义圆的半径以及它的大小。取值小于或等于零,圆将不会被绘制出来。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `0` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `0` |
+| 可变性 | Yes |
**注:**起始于 SVG2,`r` 是一个几何属性,意味着该属性也可以用作圆的 CSS 属性。
@@ -60,9 +64,9 @@ html,body,svg { height:100% }
渐变将以此绘制出来:**100%** 渐变停止点会被映射到终止圆的一周上。取值小于或等于零,将会使用最后一个渐变 {{ SVGElement("stop") }} 的颜色和不透明度,导致该区域被绘制为单色。
| 值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** |
-| ------ | -------------------------------------------------------------------------------------------------------------- |
-| 默认值 | `50%` |
-| 可变性 | Yes |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `50%` |
+| 可变性 | Yes |
## 规范
diff --git a/files/zh-cn/web/svg/attribute/radius/index.md b/files/zh-cn/web/svg/attribute/radius/index.md
index 9ebdfc206dd3b3..e26f6e381274a2 100644
--- a/files/zh-cn/web/svg/attribute/radius/index.md
+++ b/files/zh-cn/web/svg/attribute/radius/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/radius
## 用法
-| 类别 | _无_ |
-| ------ | ----------------------------------------------------------------------- |
+| 类别 | _无_ |
+| ------ | --------------------------------------------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Number-optional-number) |
-| 可变性 | Yes |
+| 可变性 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/result/index.md b/files/zh-cn/web/svg/attribute/result/index.md
index 18b102450ac22c..59340c22447cd7 100644
--- a/files/zh-cn/web/svg/attribute/result/index.md
+++ b/files/zh-cn/web/svg/attribute/result/index.md
@@ -9,10 +9,10 @@ slug: Web/SVG/Attribute/result
## 用法
-| 类别 | 无 |
-| ------ | ---------------------------- |
+| 类别 | 无 |
+| ------ | ----------------------------- |
| 值 | \ |
-| 可变性 | Yes |
+| 可变性 | Yes |
注意``不是一个 XML ID,换句话说,``只在给定的{{ SVGElement("filter") }}元素内部有意义,因此只有局部范围。在同一个{{ SVGElement("filter") }}元素内部,同一个``出现多次也是合法的。如果引用了,``将使用在给定结果前面、离给定结果最近的滤镜。
diff --git a/files/zh-cn/web/svg/attribute/rx/index.md b/files/zh-cn/web/svg/attribute/rx/index.md
index d3f5e9cd469625..37ea355bb0d31e 100644
--- a/files/zh-cn/web/svg/attribute/rx/index.md
+++ b/files/zh-cn/web/svg/attribute/rx/index.md
@@ -12,18 +12,22 @@ slug: Web/SVG/Attribute/rx
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
-
-
+
+
+
```
@@ -34,9 +38,9 @@ html,body,svg { height:100% }
对于 {{SVGElement('ellipse')}},`rx` 属性定义了水平方向的半径尺寸。如果使用了负值或者零,那么椭圆就不会被绘制。
| 取值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** \| `auto` |
-| ------------ | ------------------------------------------------------------------------------------------------------------------------ |
-| 默认值 | `auto` |
-| 是否支持动画 | 是 |
+| ------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
+| 默认值 | `auto` |
+| 是否支持动画 | 是 |
**注释:** 从 SVG2 开始, `rx` 是一个几何属性,也就是说,这个属性也可以用作椭圆的 CSS 属性。
@@ -51,9 +55,9 @@ html,body,svg { height:100% }
- `rx` 属性的有效值为矩形宽度的一半(即,如果为 `rx` 指定的值大于矩形宽度的一半,那么浏览器会视为 `rx` 的值为矩形宽度的一半)。
| 取值 | **[\](/zh-CN/docs/Web/SVG/Content_type#Length)** \| **[\](/zh-CN/docs/Web/SVG/Content_type#Percentage)** \| `auto` |
-| ------------ | ------------------------------------------------------------------------------------------------------------------------ |
-| 缺省值 | `auto` |
-| 是否支持动画 | 是 |
+| ------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
+| 缺省值 | `auto` |
+| 是否支持动画 | 是 |
**注释:** 从 SVG2 开始,`rx` 是一个几何属性,也就是说,这个属性也可以用作矩形(rect)的 CSS 属性。
diff --git a/files/zh-cn/web/svg/attribute/scale/index.md b/files/zh-cn/web/svg/attribute/scale/index.md
index f0de8eb07f4284..21c6182c5d68e5 100644
--- a/files/zh-cn/web/svg/attribute/scale/index.md
+++ b/files/zh-cn/web/svg/attribute/scale/index.md
@@ -13,10 +13,10 @@ slug: Web/SVG/Attribute/scale
## 用法
-| 类别 | _无_ |
-| ------ | --------------------------------------- |
+| 类别 | _无_ |
+| ------ | ------------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Number) |
-| 可变性 | Yes |
+| 可变性 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/seed/index.md b/files/zh-cn/web/svg/attribute/seed/index.md
index 29bd88769d6566..a3235263e7afa9 100644
--- a/files/zh-cn/web/svg/attribute/seed/index.md
+++ b/files/zh-cn/web/svg/attribute/seed/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/seed
## 用法
-| 类别 | _None_ |
-| ------ | ----------------------------------------------- |
+| 类别 | _None_ |
+| ------ | ------------------------------------------------ |
| 值 | [\](/zh-CN/docs/SVG/Content_type#Number) |
-| 可变性 | Yes |
+| 可变性 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md b/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md
index 56a6c0d942e91f..385b11bbb09a01 100644
--- a/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-dasharray/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/stroke-dasharray
## 用法
-| 类别 | 外观属性 |
-| ------ | ---------------------------------- |
+| 类别 | 外观属性 |
+| ------ | ----------------------------------- |
| 值 | **none** \| \ \| inherit |
-| 可变性 | Yes |
+| 可变性 | Yes |
- \
- : 它是一个[\](/zh-CN/SVG/Content_type#Length)和[\](/zh-CN/SVG/Content_type#Percentage)数列,数与数之间用逗号或者空白隔开,指定短划线和缺口的长度。如果提供了奇数个值,则这个值的数列重复一次,从而变成偶数个值。因此,**5,3,2**等同于**5,3,2,5,3,2**。
@@ -23,25 +23,36 @@ slug: Web/SVG/Attribute/stroke-dasharray
```html
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/stroke-dashoffset/index.md b/files/zh-cn/web/svg/attribute/stroke-dashoffset/index.md
index 48844f30a52436..adff6abb91af9c 100644
--- a/files/zh-cn/web/svg/attribute/stroke-dashoffset/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-dashoffset/index.md
@@ -13,11 +13,11 @@ slug: Web/SVG/Attribute/stroke-dashoffset
## 使用环境
-| 类别 | 显示属性 |
-| ------ | ----------------------------------------------------------------------------------------------------- |
+| 类别 | 显示属性 |
+| ------ | ------------------------------------------------------------------------------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Percentage) \| [\](/zh-CN/SVG/Content_type#Length) \| inherit |
-| 初始值 | 1 |
-| 可动画 | Yes |
+| 初始值 | 1 |
+| 可动画 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/stroke-linecap/index.md b/files/zh-cn/web/svg/attribute/stroke-linecap/index.md
index 974592ccf4a431..5953085e517bf1 100644
--- a/files/zh-cn/web/svg/attribute/stroke-linecap/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-linecap/index.md
@@ -20,24 +20,40 @@ slug: Web/SVG/Attribute/stroke-linecap
```html
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/stroke-linejoin/index.md b/files/zh-cn/web/svg/attribute/stroke-linejoin/index.md
index c0b0ea7e691a15..1865bd1f3be5e0 100644
--- a/files/zh-cn/web/svg/attribute/stroke-linejoin/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-linejoin/index.md
@@ -23,7 +23,11 @@ slug: Web/SVG/Attribute/stroke-linejoin
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -32,49 +36,66 @@ html,body,svg { height:100% }
Upper left path:
Effect of the "miter" value
-->
-
+
-
+
-
+
-
+
-
-
+
-
-
-
+
+
+
@@ -102,22 +123,32 @@ html,body,svg { height:100% }
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
@@ -134,22 +165,28 @@ The `bevel` 用斜角连接路径段。
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
@@ -168,23 +205,37 @@ The `miter` 用尖角连接路径段。通过在路径段的切线处延伸笔
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
@@ -193,10 +244,14 @@ html,body,svg { height:100% }
-
-
+
+
-
+
```
@@ -214,22 +269,36 @@ The `miter-clip` 用尖角连接路径段。通过在路径段的切线处延伸
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
@@ -238,10 +307,14 @@ html,body,svg { height:100% }
-
-
+
+
-
+
```
@@ -255,22 +328,28 @@ html,body,svg { height:100% }
#### 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
diff --git a/files/zh-cn/web/svg/attribute/stroke-miterlimit/index.md b/files/zh-cn/web/svg/attribute/stroke-miterlimit/index.md
index d6c33c713773a3..14121463e4c459 100644
--- a/files/zh-cn/web/svg/attribute/stroke-miterlimit/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-miterlimit/index.md
@@ -17,11 +17,11 @@ miterLength / stroke-width = 1 / sin ( theta / 2 )
## 用法
-| 类别 | 外观属性 |
-| ------ | ----------------------- |
+| 类别 | 外观属性 |
+| ------ | ------------------------ |
| 值 | \ \| inherit |
-| 初始值 | 4 |
-| 可动性 | Yes |
+| 初始值 | 4 |
+| 可动性 | Yes |
- \
- : 对斜角长度与{{ SVGAttr("stroke-width") }}的比率的限制。\的值必须是一个大于或等于 1 的[\](/zh-CN/SVG/Content_type#Number)。
diff --git a/files/zh-cn/web/svg/attribute/stroke-opacity/index.md b/files/zh-cn/web/svg/attribute/stroke-opacity/index.md
index b52a535b40703a..55e6f220d240df 100644
--- a/files/zh-cn/web/svg/attribute/stroke-opacity/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-opacity/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/stroke-opacity
## 用法
-| 类别 | 外观属性 |
-| ------ | -------------------------- |
+| 类别 | 外观属性 |
+| ------ | --------------------------- |
| 值 | \ \| inherit |
-| 可变性 | Yes |
+| 可变性 | Yes |
- \
- : 在当前对象的轮廓上用该涂色操作的不透明度。任何超出 0.0 到 1.0 范围的值都会被压回这个范围(0.0 表示完全透明,1.0 表示完全不透明)。
@@ -25,18 +25,18 @@ slug: Web/SVG/Attribute/stroke-opacity
```html
-
+
```
### CSS
```css
-rect{
- fill:#b4da55;
- stroke:#000;
- stroke-width:10px;
- stroke-opacity:0.3;
+rect {
+ fill: #b4da55;
+ stroke: #000;
+ stroke-width: 10px;
+ stroke-opacity: 0.3;
}
```
diff --git a/files/zh-cn/web/svg/attribute/stroke-width/index.md b/files/zh-cn/web/svg/attribute/stroke-width/index.md
index dc4e26c5e9b08d..81999bc29fa8f8 100644
--- a/files/zh-cn/web/svg/attribute/stroke-width/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke-width/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/stroke-width
## 用法
-| 类别 | 外观属性 |
-| ------ | ----------------------------------------------------------------------------------------------------- |
+| 类别 | 外观属性 |
+| ------ | ------------------------------------------------------------------------------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Length) \| [\](/zh-CN/SVG/Content_type#Percentage) \| inherit |
-| 可变性 | Yes |
+| 可变性 | Yes |
## 示例
diff --git a/files/zh-cn/web/svg/attribute/stroke/index.md b/files/zh-cn/web/svg/attribute/stroke/index.md
index b693f429dbef9e..8631dfa7157902 100644
--- a/files/zh-cn/web/svg/attribute/stroke/index.md
+++ b/files/zh-cn/web/svg/attribute/stroke/index.md
@@ -9,10 +9,10 @@ slug: Web/SVG/Attribute/stroke
## 用法
-| 类别 | 外观属性 |
-| ------ | ------------------------------------- |
+| 类别 | 外观属性 |
+| ------ | ----------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Paint) |
-| 可变性 | 是 |
+| 可变性 | 是 |
## 示例
@@ -21,8 +21,8 @@ slug: Web/SVG/Attribute/stroke
### 示例 1:用 stroke 属性画一条绿色的直线。
```html
-
-
+
+
```
@@ -30,7 +30,7 @@ slug: Web/SVG/Attribute/stroke
```html
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/style/index.md b/files/zh-cn/web/svg/attribute/style/index.md
index 7683eb7c6343c6..a79e7a90558f97 100644
--- a/files/zh-cn/web/svg/attribute/style/index.md
+++ b/files/zh-cn/web/svg/attribute/style/index.md
@@ -23,8 +23,12 @@ slug: Web/SVG/Attribute/style
```html
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/target/index.md b/files/zh-cn/web/svg/attribute/target/index.md
index be375a38d545c8..4ceb4f8665dba6 100644
--- a/files/zh-cn/web/svg/attribute/target/index.md
+++ b/files/zh-cn/web/svg/attribute/target/index.md
@@ -12,14 +12,19 @@ slug: Web/SVG/Attribute/target
## 示例
```css hidden
-html, body, svg {
- height: 100%;
+html,
+body,
+svg {
+ height: 100%;
}
text {
- font: 20px Arial, Helvetica, sans-serif;
- fill: blue;
- text-decoration: underline;
+ font:
+ 20px Arial,
+ Helvetica,
+ sans-serif;
+ fill: blue;
+ text-decoration: underline;
}
```
@@ -27,13 +32,13 @@ text {
在 iframe 中打开链接
-
+
在新标签页或窗口中打开链接
-
+
在此标签或窗口中打开链接
-
+
```
@@ -47,6 +52,7 @@ text {
| 可动画的 | 是 |
- `_replace` {{deprecated_inline}}
+
- : 当前 SVG 图像被与当前 SVG 图像在同一帧中相同矩形区域中的链接内容替换。
> **备注:** 这个值是从来没有很好的执行,之间的区别 `_replace`,并 `_self` 已通过在浏览上下文的 HTML 定义的变化变得多余。使用 `_self` 以取代目前的 SVG 文件。
@@ -58,9 +64,9 @@ text {
- `_top`
- : 完整活动窗口或选项卡的内容将由链接的内容替换(如果存在),并且可以从此文档中安全地访问
- `_blank`
- - : 如果此文档可以安全地显示,则需要一个新的未命名窗口或标签来显示链接的内容。如果用户代理不支持多个窗口/选项卡,则结果与_top 相同。
+ - : 如果此文档可以安全地显示,则需要一个新的未命名窗口或标签来显示链接的内容。如果用户代理不支持多个窗口/选项卡,则结果与\_top 相同。
- ``
- - : 指定用于显示链接内容的浏览上下文的名称(选项卡,内联框架,对象等)。如果具有该名称的上下文已经存在,并且可以从此文档中安全地访问,则可以重新使用该上下文,替换现有内容。如果不存在,则创建它(与'_blank'相同,但现在有了一个名称)。该名称必须是有效的 XML 名称 \[XML11],并且不能以下划线(U + 005F LOW LINE 字符)开头,以满足来自 HTML 的有效浏览上下文名称的要求。
+ - : 指定用于显示链接内容的浏览上下文的名称(选项卡,内联框架,对象等)。如果具有该名称的上下文已经存在,并且可以从此文档中安全地访问,则可以重新使用该上下文,替换现有内容。如果不存在,则创建它(与'\_blank'相同,但现在有了一个名称)。该名称必须是有效的 XML 名称 \[XML11],并且不能以下划线(U + 005F LOW LINE 字符)开头,以满足来自 HTML 的有效浏览上下文名称的要求。
## 规范
diff --git a/files/zh-cn/web/svg/attribute/text-anchor/index.md b/files/zh-cn/web/svg/attribute/text-anchor/index.md
index 0466f5d0dca633..ab244bcd9cf8ce 100644
--- a/files/zh-cn/web/svg/attribute/text-anchor/index.md
+++ b/files/zh-cn/web/svg/attribute/text-anchor/index.md
@@ -29,33 +29,36 @@ slug: Web/SVG/Attribute/text-anchor
```html
-
-
-
-
-
-
-
- A
-
- A
-
- A
-
-
-
-
-
-
-
+
+
+
+
+
+ A
+
+ A
+
+ A
+
+
+
+
+
+
+
```
diff --git a/files/zh-cn/web/svg/attribute/transform/index.md b/files/zh-cn/web/svg/attribute/transform/index.md
index f1e63831a28f50..9fac2a8efcaeb7 100644
--- a/files/zh-cn/web/svg/attribute/transform/index.md
+++ b/files/zh-cn/web/svg/attribute/transform/index.md
@@ -10,20 +10,30 @@ slug: Web/SVG/Attribute/transform
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
-
+
-
+
-
+
```
@@ -36,9 +46,9 @@ html,body,svg { height:100% }
另外,作为 SVG 1.1 的遗留物,{{SVGElement('linearGradient')}}和{{SVGElement('radialGradient')}}支持 `gradientTransform` 属性,而{{SVGElement('pattern')}}支持 `patternTransform` 属性,两者的行为完全相同于 `transform` 属性
| Value | **[\](/zh-CN/docs/Web/SVG/Content_type#Transform-list)** |
-| ------------- | ----------------------------------------------------------------- |
-| Default value | _none_ |
-| Animatable | Yes |
+| ------------- | ------------------------------------------------------------------------ |
+| Default value | _none_ |
+| Animatable | Yes |
## Transform functions
@@ -53,7 +63,11 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -84,8 +98,13 @@ html,body,svg { height:100% }
newX = a * oldX + c * oldY + e = 3 * 40 - 1 * 30 + 30 = 120
newY = b * oldX + d * oldY + f = 1 * 40 + 3 * 30 + 40 = 170
-->
-
+
```
@@ -98,7 +117,11 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -107,16 +130,31 @@ html,body,svg { height:100% }
-
+
-
+
-
+
```
@@ -129,22 +167,23 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
@@ -160,7 +199,11 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -168,12 +211,16 @@ html,body,svg { height:100% }
-
+
-
+
```
@@ -186,15 +233,18 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
```
@@ -207,15 +257,18 @@ html,body,svg { height:100% }
#### 举例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/type/index.md b/files/zh-cn/web/svg/attribute/type/index.md
index 153051db94350e..7d6a4f1022e884 100644
--- a/files/zh-cn/web/svg/attribute/type/index.md
+++ b/files/zh-cn/web/svg/attribute/type/index.md
@@ -51,7 +51,7 @@ type 属性是一个类属性,他在不同的使用语境下有不同的意思
| Categories | _None_ |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| Value | \ |
+| Value | \ |
| Animatable | No |
| Normative document | [SVG 1.1 (2nd Edition) : script](http://www.w3.org/TR/SVG11/script.html#ScriptElementTypeAttribute) [SVG 1.1 (2nd Edition) : style](http://www.w3.org/TR/SVG11/styling.html#StyleElementTypeAttribute) |
diff --git a/files/zh-cn/web/svg/attribute/values/index.md b/files/zh-cn/web/svg/attribute/values/index.md
index 9020e9cf9c868c..81ad40c3779aac 100644
--- a/files/zh-cn/web/svg/attribute/values/index.md
+++ b/files/zh-cn/web/svg/attribute/values/index.md
@@ -31,6 +31,7 @@ values 属性具有不同的含义,具体取决于使用的上下文,它可
| Animatable | Yes |
- ``
+
- : 该值是一个数字列表,根据 type 属性的值来定义不同解释:
- `type="matrix"`,`values` 是 20 个矩阵值(a00 a01 a02 a03 a04 a10 a11 ... a34)的列表,以空格和/或逗号分隔。
diff --git a/files/zh-cn/web/svg/attribute/vector-effect/index.md b/files/zh-cn/web/svg/attribute/vector-effect/index.md
index 5a4055d436234a..9b54b9a34c8fad 100644
--- a/files/zh-cn/web/svg/attribute/vector-effect/index.md
+++ b/files/zh-cn/web/svg/attribute/vector-effect/index.md
@@ -36,15 +36,28 @@ slug: Web/SVG/Attribute/vector-effect
```html
-
+
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/attribute/version/index.md b/files/zh-cn/web/svg/attribute/version/index.md
index 017c00add646d1..f6e63aa7f045cf 100644
--- a/files/zh-cn/web/svg/attribute/version/index.md
+++ b/files/zh-cn/web/svg/attribute/version/index.md
@@ -11,10 +11,10 @@ slug: Web/SVG/Attribute/version
## Usage context
-| 类别 | None |
-| -------- | --------------------------------------- |
+| 类别 | None |
+| -------- | ------------------------------------------- |
| 值 | [\](/zh-CN/SVG/Content_type#Number) |
-| 动画属性 | No |
+| 动画属性 | No |
## 规范
diff --git a/files/zh-cn/web/svg/attribute/y/index.md b/files/zh-cn/web/svg/attribute/y/index.md
index be029cbc51124d..46de0be3f04c39 100644
--- a/files/zh-cn/web/svg/attribute/y/index.md
+++ b/files/zh-cn/web/svg/attribute/y/index.md
@@ -1,5 +1,5 @@
---
-title: 'y'
+title: "y"
slug: Web/SVG/Attribute/y
---
diff --git a/files/zh-cn/web/svg/content_type/index.md b/files/zh-cn/web/svg/content_type/index.md
index e426f4d4a76d5e..d3f7ff486f04ea 100644
--- a/files/zh-cn/web/svg/content_type/index.md
+++ b/files/zh-cn/web/svg/content_type/index.md
@@ -10,6 +10,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 角度
- \
+
- : 可以用两种办法指定角度。如果用在样式表的属性的值中,`` 可以用如下方法定义:`plain angle ::= number (~"deg" | ~"grad" | ~"rad")?` 在这里 deg 标识了度数,grad 标识了斜率,rad 标识了弧度。对于定义在 CSS2 中的属性,必须提供一个角度单位标识符。对于在 SVG 特有的属性和它们对应的外观属性中的角度值,角度单位标识符是可选的。如果没有提供,角度值会被潜在分配一个度数单位。在所有元素的外观属性中,无论是在 SVG1.1 中定义的,还是在 CSS2 中定义的,如果指定了角度标识符,角度标识符必须是小写的。如果角度用在一个 SVG 属性中,``可以用以下方式定义:
```plain
@@ -21,6 +22,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 任意值
- \
+
- : 基本类型 \ 是一个零字符或多字符的序列。具体如下:
```plain
@@ -32,6 +34,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 时钟值
- \
+
- : 时钟值的句法与 [SMIL Animation](https://www.w3.org/TR/2001/REC-smil-animation-20010904/) 规范中写的句法相同。在这里重放一下时钟值的语法:
```
@@ -52,14 +55,17 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
对于 `Timecount` 值,默认的公制前缀是“s”(秒)。在时钟值中不能嵌入空白,而且前导和末尾的空白字符会被忽略掉。下面是合法的时钟值的示例:
- 完整时钟值:
+
- `02:30:03` >= 2 小时 30 分钟又 3 秒
- `50:00:10.25` = 50 小时 10 秒又 250 毫秒
- 部分时钟值:
+
- `02:33` >= 2 分钟又 33 秒
- `00:10.5` = 10.5 秒 = 10 秒又 500 毫秒
- Timecount 值:
+
- `3.2h` >= 3.2 小时 = 3 小时 12 分钟
- `45min` >= 45 分钟
- `30s` >= 30 秒
@@ -73,6 +79,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 颜色
- \
+
- : 基本类型\是一个 CSS2 兼容的规范,针对 sRGB 颜色空间的颜色。\ 应用在 SVG 的属性 {{SVGAttr("color")}} 上,也是属性{{SVGAttr("fill")}}、属性{{SVGAttr("stroke")}}、属性{{SVGAttr("stop-color")}}、属性 {{SVGAttr("flood-color")}}和属性{{SVGAttr("lighting-color")}}的定义的组成部分,\ 还提供了可选的基于 ICC 的颜色规范。
SVG 支持所有的定义在[CSS2 句法和基本数据类型](http://www.w3.org/TR/2008/REC-CSS2-20080411/syndata.html#value-def-color)中的 \ 供选择的句法,而且还支持[CSS Color Module Level 3](http://www.w3.org/TR/css3-color/)中的 \ 句法(取决于编译器)。
@@ -99,6 +106,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 频率
- \
+
- : 频率值用在可听到的属性上。就如 CSS2 中所定义的,一个频率值是一个 [\](/zh-CN/docs/SVG/Content_type#Number) 后面跟着一个频率单位标识符。频率单位标识符可以是:
- `Hz`:赫兹
@@ -114,6 +122,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## ICC 颜色
- \
+
- : \ 一份 ICC 颜色规范。在 SVG 1.1,一份 ICC 颜色规范,顾名思义,是一个参考了一个{{SVGElement("color-profile")}} 元素,以及一个或更多颜色成分值。语法如下所示:
```plain
@@ -125,6 +134,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 整型数
- \
+
- : 用一个可选的正负符号(“+”或“-”)后面跟着一个或多个 0 到 9 的数字可以指定一个\:
```plain
@@ -136,6 +146,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## IRI
- \
+
- : 一个国际化资源标识符。在因特网上,资源是用 _IRI_(一个国际化资源标识符)标识的。举个例子,一个 SVG 文档调用了位于 `http://example.com` 上的 `someDrawing.svg`,可以使用下面的 _IRI_:
```
@@ -159,7 +170,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
然后你再引用这个线性渐变,作为矩形的属性 {{SVGAttr("fill")}} 的值,如下:
```html
-
+
```
SVG 支持两种类型的 _IRI_ 引用:
@@ -172,6 +183,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 长度
- \
+
- : 一个长度是一个可度量的距离,给定一个数字以及一个单位。长度可以用两种方法指定。如果在样式表中使用它,可以如下定义\:
```
@@ -200,17 +212,19 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## T 值数列
- \
+
- : (在这里*T* 某些类型。)由一系列分开的值构成的数列。除非另有说明,SVG 的 XML 属性内的数列既可以是逗号分隔的,也可以是空格分隔的。用逗号作分隔符,逗号前面或后面可有带空格。数列中的空白被定义为一个或多个下列连续字符:“空格”(U+0020)、“制表符”(U+0009)、 “换行符”(U+000A)、 “回车符”(U+000D)以及“换页符”(U+000C)。下面是一个 EBNF 语法的模板,用来描述\句法:
```plain
list-of-Ts ::= T | T, list-of-Ts
```
- 在 SVG DOM 内部,\类型的值可以用一个限特定类型 _T_ 的接口来表达。举个例子,SVG DOM 中的\使用一个 {{domxref("SVGLengthList")}} 对象或者 {{domxref("SVGAnimatedLengthList")}} 对象来表达。
+ 在 SVG DOM 内部,\类型的值可以用一个限特定类型 \_T_ 的接口来表达。举个例子,SVG DOM 中的\使用一个 {{domxref("SVGLengthList")}} 对象或者 {{domxref("SVGAnimatedLengthList")}} 对象来表达。
## 命名
- \
+
- : 一个命名,是一个字符串,是不符合句法意义的少量的字符。
```plain
@@ -220,6 +234,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 数字
- \
+
- : 真实数字可以用两种方法指定。如果用在样式表中,一个 \ 可以如下定义:`plain number ::= integer | [+-]? [0-9]* "." [0-9]+` 该句法与 CSS(CSS2 第 4.3.1 章节)中的定义一样。如果用在一个 SVG 属性中,一个 \ 可以用别的方法定义,允许一个数字后面跟着大数指数,以指定得更精确:
```plain
@@ -231,6 +246,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 带可取舍的后缀数字的数字
- \
+
- : 一对\,其中第二个 \ 是可视情况取舍的。
```plain
@@ -252,6 +268,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 百分数
- \
+
- : 一个数字后面跟着一个百分号“%”就可以指定一个百分数。
```plain
@@ -263,6 +280,7 @@ SVG 中使用了许多数据类型。本文列出了这些数据类型以及它
## 时间
- \
+
- : 一个时间值是一个 <number> 后面紧跟着时间单位标识符。时间单位标识符可以是:
- ms:毫秒
diff --git a/files/zh-cn/web/svg/element/a/index.md b/files/zh-cn/web/svg/element/a/index.md
index c7654555c2f64a..bcce3c02f23070 100644
--- a/files/zh-cn/web/svg/element/a/index.md
+++ b/files/zh-cn/web/svg/element/a/index.md
@@ -16,17 +16,15 @@ slug: Web/SVG/Element/a
## 示例
```html
-
-
-
-
- SVG on MDN
+
+
+
+ SVG on MDN
-
```
diff --git a/files/zh-cn/web/svg/element/animate/index.md b/files/zh-cn/web/svg/element/animate/index.md
index bbbeac42c62516..07eb1ec7ac8ca1 100644
--- a/files/zh-cn/web/svg/element/animate/index.md
+++ b/files/zh-cn/web/svg/element/animate/index.md
@@ -10,13 +10,23 @@ slug: Web/SVG/Element/animate
## 示例
```css hidden
-html,body,svg { height:100%; margin:0; padding:0; }
+html,
+body,
+svg {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+}
```
```html
-
+
```
diff --git a/files/zh-cn/web/svg/element/animatemotion/index.md b/files/zh-cn/web/svg/element/animatemotion/index.md
index 525e2a3adc4164..d86e591cc0fea6 100644
--- a/files/zh-cn/web/svg/element/animatemotion/index.md
+++ b/files/zh-cn/web/svg/element/animatemotion/index.md
@@ -12,7 +12,14 @@ slug: Web/SVG/Element/animateMotion
## 示例
```css
-html,body,svg { height:100%; margin: 0; padding: 0; display:block; }
+html,
+body,
+svg {
+ height: 100%;
+ margin: 0;
+ padding: 0;
+ display: block;
+}
```
```xml
diff --git a/files/zh-cn/web/svg/element/animatetransform/index.md b/files/zh-cn/web/svg/element/animatetransform/index.md
index fffed60cd886f5..deee960d0f960e 100644
--- a/files/zh-cn/web/svg/element/animatetransform/index.md
+++ b/files/zh-cn/web/svg/element/animatetransform/index.md
@@ -15,19 +15,23 @@ slug: Web/SVG/Element/animateTransform
```html
-
-
-
-
-
+
+
+
+
```
diff --git a/files/zh-cn/web/svg/element/circle/index.md b/files/zh-cn/web/svg/element/circle/index.md
index 02574d23617328..51f16fc7124720 100644
--- a/files/zh-cn/web/svg/element/circle/index.md
+++ b/files/zh-cn/web/svg/element/circle/index.md
@@ -14,12 +14,16 @@ slug: Web/SVG/Element/circle
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
```
diff --git a/files/zh-cn/web/svg/element/clippath/index.md b/files/zh-cn/web/svg/element/clippath/index.md
index 8984f842ba88fb..78dbbc89777e71 100644
--- a/files/zh-cn/web/svg/element/clippath/index.md
+++ b/files/zh-cn/web/svg/element/clippath/index.md
@@ -12,7 +12,11 @@ slug: Web/SVG/Element/clipPath
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
@@ -25,7 +29,9 @@ html,body,svg { height:100% }
-
+
No Light
@@ -31,8 +30,14 @@ slug: Web/SVG/Element/feDiffuseLighting
-
+
@@ -41,11 +46,17 @@ slug: Web/SVG/Element/feDiffuseLighting
feDistantLight
-
+
-
+
@@ -54,12 +65,24 @@ slug: Web/SVG/Element/feDiffuseLighting
feSpotLight
-
+
-
+
diff --git a/files/zh-cn/web/svg/element/fedropshadow/index.md b/files/zh-cn/web/svg/element/fedropshadow/index.md
index 21a15de2a2f0f5..26ce9fa3b7dcd3 100644
--- a/files/zh-cn/web/svg/element/fedropshadow/index.md
+++ b/files/zh-cn/web/svg/element/fedropshadow/index.md
@@ -12,33 +12,37 @@ SVG **``** 原语创建输入图像的阴影。它只能在 {{SVGE
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
-
+
-
+
-
+
-
+
-
+
-
+
```
@@ -47,11 +51,11 @@ html,body,svg { height:100% }
## 属性
- {{SVGAttr("dx")}}
- - : 此属性定义了投影的 x 轴偏移量。*值类型*:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);*默认值*:`2`;*可用于动画*:**是**
+ - : 此属性定义了投影的 x 轴偏移量。_值类型_:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);_默认值_:`2`;_可用于动画_:**是**
- {{SVGAttr("dy")}}
- - : 此属性定义了投影的 y 轴偏移量。*值类型*:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);*默认值*:`2`;*可用于动画*:**是**
+ - : 此属性定义了投影的 y 轴偏移量。_值类型_:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);_默认值_:`2`;_可用于动画_:**是**
- {{SVGAttr("stdDeviation")}}
- - : 此属性定义了投影的模糊操作的标准差。*值类型*:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);*默认值*:`2`;*可用于动画*:**是**
+ - : 此属性定义了投影的模糊操作的标准差。_值类型_:[**\**](/zh-CN/docs/Web/SVG/Content_type#数字);_默认值_:`2`;_可用于动画_:**是**
### 全局属性
diff --git a/files/zh-cn/web/svg/element/fegaussianblur/index.md b/files/zh-cn/web/svg/element/fegaussianblur/index.md
index c73e11883ed9bc..e891a0a5dec339 100644
--- a/files/zh-cn/web/svg/element/fegaussianblur/index.md
+++ b/files/zh-cn/web/svg/element/fegaussianblur/index.md
@@ -16,18 +16,18 @@ slug: Web/SVG/Element/feGaussianBlur
### 简单示例
```html
-
-
+
-
+
-
+
```
@@ -38,21 +38,21 @@ slug: Web/SVG/Element/feGaussianBlur
### 投影示例
```html
-
-
+
-
-
+
+
-
+
```
diff --git a/files/zh-cn/web/svg/element/feimage/index.md b/files/zh-cn/web/svg/element/feimage/index.md
index 392000e3c933b5..4e628cf2cacbfa 100644
--- a/files/zh-cn/web/svg/element/feimage/index.md
+++ b/files/zh-cn/web/svg/element/feimage/index.md
@@ -37,16 +37,17 @@ slug: Web/SVG/Element/feImage
### SVG
```html
-
+
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/element/filter/index.md b/files/zh-cn/web/svg/element/filter/index.md
index daea351186b2b4..f2c1e120192fc1 100644
--- a/files/zh-cn/web/svg/element/filter/index.md
+++ b/files/zh-cn/web/svg/element/filter/index.md
@@ -43,14 +43,13 @@ slug: Web/SVG/Element/filter
```html
-
-
-
+
+
+
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/element/foreignobject/index.md b/files/zh-cn/web/svg/element/foreignobject/index.md
index 9e42eaf65335dc..4494c84d4d0590 100644
--- a/files/zh-cn/web/svg/element/foreignobject/index.md
+++ b/files/zh-cn/web/svg/element/foreignobject/index.md
@@ -10,17 +10,23 @@ slug: Web/SVG/Element/foreignObject
## 示例
```css hidden
-html,body,svg { height:100% }
+html,
+body,
+svg {
+ height: 100%;
+}
```
```html
- 你不是 香蕉!
+ 你
+ 不是
+ 香蕉!
```
diff --git a/files/zh-cn/web/svg/linking/index.md b/files/zh-cn/web/svg/linking/index.md
index f4433eba3460db..f4817d6580d0d9 100644
--- a/files/zh-cn/web/svg/linking/index.md
+++ b/files/zh-cn/web/svg/linking/index.md
@@ -13,7 +13,7 @@ page1.html:
This is a SVG button:
-
+
```
diff --git a/files/zh-cn/web/svg/svg_animation_with_smil/index.md b/files/zh-cn/web/svg/svg_animation_with_smil/index.md
index 289fcb1f17fed7..1dbb0f1a32d821 100644
--- a/files/zh-cn/web/svg/svg_animation_with_smil/index.md
+++ b/files/zh-cn/web/svg/svg_animation_with_smil/index.md
@@ -37,8 +37,11 @@ Firefox 4 利用 [Synchronized Multimedia Integration Language](https://www.w3.o
+ attributeName="cx"
+ from="0"
+ to="500"
+ dur="5s"
+ repeatCount="indefinite" />
```
@@ -53,16 +56,22 @@ Firefox 4 利用 [Synchronized Multimedia Integration Language](https://www.w3.o
SVG SMIL Animate with transform
-
+
+ attributeName="transform"
+ begin="0s"
+ dur="20s"
+ type="rotate"
+ from="0 60 60"
+ to="360 100 60"
+ repeatCount="indefinite" />
```
@@ -82,9 +91,7 @@ Firefox 4 利用 [Synchronized Multimedia Integration Language](https://www.w3.o
SVG SMIL Animate with Path
-
+
```
@@ -101,10 +108,19 @@ Firefox 4 利用 [Synchronized Multimedia Integration Language](https://www.w3.o
SVG SMIL Animate with Path
-
+
+ path="M 250,80 H 50 Q 30,80 30,50 Q 30,20 50,20 H 250 Q 280,20,280,50 Q 280,80,250,80Z"
+ dur="3s"
+ repeatCount="indefinite"
+ rotate="auto" />
```
diff --git a/files/zh-cn/web/svg/tutorial/clipping_and_masking/index.md b/files/zh-cn/web/svg/tutorial/clipping_and_masking/index.md
index af3fe0b9357f5b..8657ff4e220041 100644
--- a/files/zh-cn/web/svg/tutorial/clipping_and_masking/index.md
+++ b/files/zh-cn/web/svg/tutorial/clipping_and_masking/index.md
@@ -18,7 +18,10 @@ slug: Web/SVG/Tutorial/Clipping_and_masking
我们在一个圆形的基础上创建上面提到的半圆形:
```html
-
+
@@ -42,14 +45,17 @@ slug: Web/SVG/Tutorial/Clipping_and_masking
遮罩的效果最令人印象深刻的是表现为一个渐变。如果你想要让一个元素淡出,你可以利用遮罩效果实现这一点。
```html
-
+
-
+
@@ -73,9 +79,21 @@ slug: Web/SVG/Tutorial/Clipping_and_masking
上面的矩形将绘制为半透明。填充和描边还有两个属性是`fill-opacity`和`stroke-opacity`,分别用来控制填充和描边的不透明度。需要注意的是描边将绘制在填充的上面。因此,如果你在一个元素上设置了描边透明度,但它同时设有填充,则描边的一半应用填充色,另一半将应用背景色。
```html
-
+
-
+
```
diff --git a/files/zh-cn/web/svg/tutorial/fills_and_strokes/index.md b/files/zh-cn/web/svg/tutorial/fills_and_strokes/index.md
index b9eec9062ea758..bbaf3e62ac2d08 100644
--- a/files/zh-cn/web/svg/tutorial/fills_and_strokes/index.md
+++ b/files/zh-cn/web/svg/tutorial/fills_and_strokes/index.md
@@ -121,10 +121,10 @@ CSS 可以利用 style 属性插入到元素的行间:
如上把样式放到一块你可以更轻松地调整一大组元素的样式,同样你也可以使用**hover**这样的伪类来创建翻转之类的效果:
```css
- #MyRect:hover {
- stroke: black;
- fill: blue;
- }
+#MyRect:hover {
+ stroke: black;
+ fill: blue;
+}
```
你最好读一下 CSS 教程以便掌握它,一些可以在 HTML 里使用的 CSS,在 svg 里可能无法正常工作,比如`before`和`after`伪类。所以这里需要一点经验。
diff --git a/files/zh-cn/web/svg/tutorial/filter_effects/index.md b/files/zh-cn/web/svg/tutorial/filter_effects/index.md
index 03f246db27a9f9..1c2142faa17c23 100644
--- a/files/zh-cn/web/svg/tutorial/filter_effects/index.md
+++ b/files/zh-cn/web/svg/tutorial/filter_effects/index.md
@@ -16,45 +16,70 @@ slug: Web/SVG/Tutorial/Filter_effects
滤镜通过 {{SVGElement('filter')}} 元素进行定义,并且置于 `` 区块中。在 `filter` 标签中提供一系列*图元*(_primitives_),以及在前一个基本变换操作上建立的另一个操作(比如添加模糊后又添加明亮效果)。如果要应用所创建的滤镜效果,只需要为 SVG 图形元素设置 {{SVGAttr('filter')}} 属性即可。
```html
-
+
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
- SVG
-
+
+
+
+ SVG
+
```
@@ -64,9 +89,7 @@ slug: Web/SVG/Tutorial/Filter_effects
### 步骤 1
```html
-
+
```
设置 {{SVGElement('feGaussianBlur')}} 中的 `in` 属性为 `"SourceAlpha"` 值,即原图像的 alpha 通道,并设置了模糊度为 4 以及把 `result` 保存在了一个名为 "blur" 的临时缓冲区中。
@@ -74,9 +97,7 @@ slug: Web/SVG/Tutorial/Filter_effects
### 步骤 2
```html
-
+
```
{{SVGElement('feOffset')}} 设置 `in` 的值为 "blur",即我们前面保存 `result` 的那个临时缓冲区。然后设置相对坐标,向右偏移 4,向下偏移 4。最后把结果 `result` 保存到名为 "offsetBlur" 的缓冲区中。步骤 1、2 其实是创建图形阴影的两个图元。
@@ -84,11 +105,14 @@ slug: Web/SVG/Tutorial/Filter_effects
### 步骤 3
```html
-
-
+
+
```
@@ -97,9 +121,7 @@ slug: Web/SVG/Tutorial/Filter_effects
### 步骤 4
```html
-
+
```
第一个 {{SVGElement('feComposite')}} 元素设置输入源为 "specOut",第二个输入源(`in2`)为 "SourceAlpha",将 "specOut" 的结果效果遮盖掉,以致于最后的结果不会大于 "SourceAlpha"(源图像),最后覆盖输出结果 `result` 为 "specOut"。
diff --git a/files/zh-cn/web/svg/tutorial/getting_started/index.md b/files/zh-cn/web/svg/tutorial/getting_started/index.md
index 9a242bebe14a18..3c2c5adfb3cd25 100644
--- a/files/zh-cn/web/svg/tutorial/getting_started/index.md
+++ b/files/zh-cn/web/svg/tutorial/getting_started/index.md
@@ -34,9 +34,9 @@ slug: Web/SVG/Tutorial/Getting_Started
1. 从 {{SVGElement("svg")}} 根元素开始:
- - 应舍弃来自 (X)HTML 的 doctype 声明,因为基于 DTD 的 SVG 验证导致的问题比它能解决的问题更多。
- - SVG 2 之前 `version` 属性和 `baseProfile` 属性用来供其他类型的验证识别 SVG 的版本。SVG 2 已弃用 `version` 和 `baseProfile` 这两个属性。
- - 作为 XML 的一种方言,SVG 必须正确的绑定命名空间(在 xmlns 属性中绑定)。请阅读[命名空间速成](/zh-CN/docs/Web/SVG/Namespaces_Crash_Course)页面获取更多信息。
+ - 应舍弃来自 (X)HTML 的 doctype 声明,因为基于 DTD 的 SVG 验证导致的问题比它能解决的问题更多。
+ - SVG 2 之前 `version` 属性和 `baseProfile` 属性用来供其他类型的验证识别 SVG 的版本。SVG 2 已弃用 `version` 和 `baseProfile` 这两个属性。
+ - 作为 XML 的一种方言,SVG 必须正确的绑定命名空间(在 xmlns 属性中绑定)。请阅读[命名空间速成](/zh-CN/docs/Web/SVG/Namespaces_Crash_Course)页面获取更多信息。
2. 绘制一个完全覆盖图像区域的矩形 {{SVGElement("rect")}},把背景颜色设为红色。
3. 一个半径 80px 的绿色圆圈 {{SVGElement("circle")}} 绘制在红色矩形的正中央(向右偏移 150px,向下偏移 100px)。
diff --git a/files/zh-cn/web/svg/tutorial/gradients/index.md b/files/zh-cn/web/svg/tutorial/gradients/index.md
index fc2115b4edfa68..07b4df020fb1d9 100644
--- a/files/zh-cn/web/svg/tutorial/gradients/index.md
+++ b/files/zh-cn/web/svg/tutorial/gradients/index.md
@@ -20,27 +20,35 @@ slug: Web/SVG/Tutorial/Gradients
```html
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
```
@@ -49,7 +57,7 @@ slug: Web/SVG/Tutorial/Gradients
以上是一个应用了线性渐变的``元素的示例。线性渐变内部有几个{{SVGElement('stop')}} 结点,这些结点通过指定位置的 offset(偏移)属性和 stop-color(颜色中值)属性来说明在渐变的特定位置上应该是什么颜色;可以直接指定这两个属性值,也可以通过 CSS 来指定他们的值,该例子中混合使用了这两种方法。例如:该示例中指明了渐变开始颜色为红色,到中间位置时变成半透明的黑色,最后变成蓝色。虽然你可以根据需求按照自己的喜好插入很多中间颜色,但是偏移量应该始终从 0% 开始(或者 0 也可以,百分号可以扔掉),到 100%(或 1)结束。如果`stop`设置的位置有重合,将使用 XML 树中较晚设置的值。而且,类似于填充和描边,你也可以指定属性`stop-opacity`来设置某个位置的半透明度(同样,对于 FF3 你也可以设置 rgba 值)。
```html
-
+
```
使用渐变时,我们需要在一个对象的属性`fill`或属性`stroke`中引用它,这跟你在 CSS 中使用`url`引用元素的方法一样。在本例中,url 只是一个渐变的引用,我们已经给这个渐变一个 ID——“Gradient”。要想附加它,将属性`fill`设置为`url(#Gradient)`即可。现在对象就变成多色的了,也可以用同样的方式处理`stroke`。
@@ -57,19 +65,25 @@ slug: Web/SVG/Tutorial/Gradients
`` 元素还需要一些其他的属性值,它们指定了渐变的大小和出现范围。渐变的方向可以通过两个点来控制,它们分别是属性 x1、x2、y1 和 y2,这些属性定义了渐变路线走向。渐变色默认是水平方向的,但是通过修改这些属性,就可以旋转该方向。下例中的 Gradient2 创建了一个垂直渐变。
```html
-
+
```
> **备注:** 你也可以在渐变上使用`xlink:href 属性。如果`使用了该属性时,一个渐变的属性和颜色中值(stop)可以被另一个渐变包含引用。在下例中,你就不需要在 Grandient2 中重新创建全部的颜色中值(stop)。
>
> ```html
>
->
->
->
+>
+>
+>
>
-> xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#Gradient1"/>
+> id="Gradient2"
+> x1="0"
+> x2="0"
+> y1="0"
+> y2="1"
+> xmlns:xlink="http://www.w3.org/1999/xlink"
+> xlink:href="#Gradient1" />
> ```
>
> 尽管通常你可能在文档的顶部就定义了 Gradient1,但我在结点上直接包含了 xlink 的命名空间,关于这点的更多信息我们会在[讨论图片](/zh-CN/Web/SVG/Tutorial/Other_content_in_SVG)的时候详解。
@@ -84,19 +98,32 @@ slug: Web/SVG/Tutorial/Gradients
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
+
+
```
@@ -111,25 +138,40 @@ slug: Web/SVG/Tutorial/Gradients
```html
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
- (fx,fy)
- (cx,cy)
-
+
+
+
+
+
+
+ (fx,fy)
+
+
+ (cx,cy)
+
```
@@ -146,34 +188,75 @@ slug: Web/SVG/Tutorial/Gradients
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- Pad
- Repeat
- Reflect
-
+
+
+
+
+
+ Pad
+
+
+ Repeat
+
+
+ Reflect
+
```
diff --git a/files/zh-cn/web/svg/tutorial/patterns/index.md b/files/zh-cn/web/svg/tutorial/patterns/index.md
index 2cf4f5d32c390b..e8deda164b5b95 100644
--- a/files/zh-cn/web/svg/tutorial/patterns/index.md
+++ b/files/zh-cn/web/svg/tutorial/patterns/index.md
@@ -16,23 +16,33 @@ slug: Web/SVG/Tutorial/Patterns
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
```
diff --git a/files/zh-cn/web/svg/tutorial/svg_and_css/index.md b/files/zh-cn/web/svg/tutorial/svg_and_css/index.md
index bf7b0829ff5d28..aeafeae53f2910 100644
--- a/files/zh-cn/web/svg/tutorial/svg_and_css/index.md
+++ b/files/zh-cn/web/svg/tutorial/svg_and_css/index.md
@@ -16,119 +16,133 @@ slug: Web/SVG/Tutorial/SVG_and_CSS
建立一个 SVG 文件 `doc8.svg`。复制下面所有内容:
```html
-
-
-
+
+
SVG demonstration
Mozilla CSS Getting Started - SVG demonstration
-
-
-
+
+
+
SVG demonstration
- Move your mouse pointer over the flower.
+
+ Move your mouse pointer over the flower.
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -136,93 +150,93 @@ slug: Web/SVG/Tutorial/SVG_and_CSS
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@@ -287,7 +301,7 @@ svg {
/* outer petals */
#outer-petals {
- opacity: .75;
+ opacity: 0.75;
--segment-fill-fill: azure;
--segment-fill-stroke: lightsteelblue;
--segment-fill-stroke-width: 1;
From dfba8618f2a5785c42b44d6d6195d6413224df0f Mon Sep 17 00:00:00 2001
From: "Queen Vinyl Da.i'gyu-Kazotetsu"
Date: Fri, 28 Jul 2023 04:55:21 -0700
Subject: [PATCH 05/13] zh-cn: Format /web/api using Prettier (part 2) (#14675)
Co-authored-by: allo
---
.../api/canvasgradient/addcolorstop/index.md | 19 +--
.../api/canvaspattern/settransform/index.md | 20 +--
.../api/canvasrenderingcontext2d/arc/index.md | 28 ++--
.../canvasrenderingcontext2d/arcto/index.md | 23 +--
.../beginpath/index.md | 8 +-
.../beziercurveto/index.md | 15 +-
.../canvasrenderingcontext2d/canvas/index.md | 2 +-
.../clearrect/index.md | 8 +-
.../canvasrenderingcontext2d/clip/index.md | 8 +-
.../closepath/index.md | 12 +-
.../createpattern/index.md | 3 +-
.../direction/index.md | 24 ++--
.../drawfocusifneeded/index.md | 26 ++--
.../drawimage/index.md | 24 ++--
.../canvasrenderingcontext2d/ellipse/index.md | 4 +-
.../fillrect/index.md | 10 +-
.../fillstyle/index.md | 16 ++-
.../filltext/index.md | 2 +-
.../canvasrenderingcontext2d/filter/index.md | 10 +-
.../gettransform/index.md | 11 +-
.../globalalpha/index.md | 22 +--
.../imagesmoothingenabled/index.md | 19 +--
.../ispointinpath/index.md | 6 +-
.../ispointinstroke/index.md | 6 +-
.../canvasrenderingcontext2d/linecap/index.md | 16 +--
.../linedashoffset/index.md | 10 +-
.../linewidth/index.md | 4 +-
.../miterlimit/index.md | 3 +-
.../putimagedata/index.md | 27 ++--
.../quadraticcurveto/index.md | 16 +--
.../resettransform/index.md | 6 +-
.../canvasrenderingcontext2d/rotate/index.md | 12 +-
.../canvasrenderingcontext2d/scale/index.md | 16 +--
.../setlinedash/index.md | 19 +--
.../shadowcolor/index.md | 6 +-
.../canvasrenderingcontext2d/stroke/index.md | 4 +-
.../strokerect/index.md | 16 +--
.../textalign/index.md | 18 +--
.../textbaseline/index.md | 19 ++-
.../translate/index.md | 8 +-
.../using_channel_messaging/index.md | 22 +--
.../channelmergernode/index.md | 4 +-
files/zh-cn/web/api/cleartimeout/index.md | 22 ++-
.../zh-cn/web/api/client/postmessage/index.md | 41 +++---
files/zh-cn/web/api/clients/claim/index.md | 2 +-
files/zh-cn/web/api/clients/get/index.md | 4 +-
files/zh-cn/web/api/clients/index.md | 54 +++----
files/zh-cn/web/api/clients/matchall/index.md | 8 +-
.../zh-cn/web/api/clients/openwindow/index.md | 8 +-
files/zh-cn/web/api/clipboard/index.md | 2 +-
files/zh-cn/web/api/clipboard/read/index.md | 6 +-
.../zh-cn/web/api/clipboard/readtext/index.md | 5 +-
files/zh-cn/web/api/clipboard/write/index.md | 13 +-
.../web/api/clipboard/writetext/index.md | 13 +-
files/zh-cn/web/api/clipboard_api/index.md | 7 +-
files/zh-cn/web/api/clipboarditem/index.md | 13 +-
.../web/api/compression_streams_api/index.md | 2 +-
.../compressionstream/index.md | 2 +-
.../zh-cn/web/api/compressionstream/index.md | 2 +-
files/zh-cn/web/api/console/assert/index.md | 14 +-
files/zh-cn/web/api/console/index.md | 7 +-
files/zh-cn/web/api/console/log/index.md | 2 +-
files/zh-cn/web/api/console/table/index.md | 6 +-
files/zh-cn/web/api/console_api/index.md | 4 +-
.../index.md | 6 +-
.../countqueuingstrategy/index.md | 27 ++--
.../highwatermark/index.md | 2 +-
.../web/api/countqueuingstrategy/index.md | 25 ++--
.../api/countqueuingstrategy/size/index.md | 27 ++--
.../zh-cn/web/api/createimagebitmap/index.md | 16 +--
.../web/api/crossoriginisolated/index.md | 2 +-
.../web/api/crypto/getrandomvalues/index.md | 2 +-
files/zh-cn/web/api/crypto_property/index.md | 4 +-
files/zh-cn/web/api/cryptokey/index.md | 4 +
.../zh-cn/web/api/css/escape_static/index.md | 12 +-
.../api/css/factory_functions_static/index.md | 10 +-
.../web/api/css/supports_static/index.md | 10 +-
.../web/api/css_custom_highlight_api/index.md | 28 ++--
.../web/api/css_font_loading_api/index.md | 8 +-
.../index.md | 136 +++++++++---------
files/zh-cn/web/api/cssrule/csstext/index.md | 4 +-
.../getpropertycssvalue/index.md | 2 +-
.../getpropertypriority/index.md | 2 +-
.../getpropertyvalue/index.md | 2 +-
.../web/api/cssstyledeclaration/index.md | 2 +-
.../web/api/cssstyledeclaration/item/index.md | 2 +-
.../api/cssstyledeclaration/length/index.md | 4 +-
.../removeproperty/index.md | 2 +-
.../cssstyledeclaration/setproperty/index.md | 2 +-
files/zh-cn/web/api/cssstylesheet/index.md | 17 +--
.../web/api/cssstylesheet/insertrule/index.md | 51 ++++---
files/zh-cn/web/api/cssvalue/index.md | 10 +-
.../api/customelementregistry/define/index.md | 110 +++++++-------
.../api/customelementregistry/get/index.md | 17 ++-
.../web/api/customelementregistry/index.md | 20 ++-
.../customelementregistry/upgrade/index.md | 2 +-
.../whendefined/index.md | 12 +-
.../web/api/customevent/customevent/index.md | 57 +++++---
.../zh-cn/web/api/customevent/detail/index.md | 8 +-
.../web/api/datatransfer/cleardata/index.md | 70 ++++-----
100 files changed, 794 insertions(+), 710 deletions(-)
diff --git a/files/zh-cn/web/api/canvasgradient/addcolorstop/index.md b/files/zh-cn/web/api/canvasgradient/addcolorstop/index.md
index 70a6b4c0757380..1d957d70e2da0b 100644
--- a/files/zh-cn/web/api/canvasgradient/addcolorstop/index.md
+++ b/files/zh-cn/web/api/canvasgradient/addcolorstop/index.md
@@ -29,7 +29,7 @@ void gradient.addColorStop(offset, color);
#### HTML
```html
-
+
```
#### JavaScript
@@ -38,11 +38,11 @@ void gradient.addColorStop(offset, color);
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
-var gradient = ctx.createLinearGradient(0,0,200,0);
-gradient.addColorStop(0,"green");
-gradient.addColorStop(1,"white");
+var gradient = ctx.createLinearGradient(0, 0, 200, 0);
+gradient.addColorStop(0, "green");
+gradient.addColorStop(1, "white");
ctx.fillStyle = gradient;
-ctx.fillRect(10,10,200,100);
+ctx.fillRect(10, 10, 200, 100);
```
编辑以下代码可看到画布变化:
@@ -58,7 +58,8 @@ var gradient = ctx.createLinearGradient(0,0,200,0);
gradient.addColorStop(0,"green");
gradient.addColorStop(1,"white");
ctx.fillStyle = gradient;
-ctx.fillRect(10,10,200,100);
+ctx.fillRect(10,10,200,100);
```
```js hidden
@@ -74,14 +75,14 @@ function drawCanvas() {
eval(textarea.value);
}
-reset.addEventListener("click", function() {
+reset.addEventListener("click", function () {
textarea.value = code;
drawCanvas();
});
-edit.addEventListener("click", function() {
+edit.addEventListener("click", function () {
textarea.focus();
-})
+});
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
diff --git a/files/zh-cn/web/api/canvaspattern/settransform/index.md b/files/zh-cn/web/api/canvaspattern/settransform/index.md
index 01f07ed271ef05..bd8e8d3be192eb 100644
--- a/files/zh-cn/web/api/canvaspattern/settransform/index.md
+++ b/files/zh-cn/web/api/canvaspattern/settransform/index.md
@@ -27,8 +27,7 @@ setTransform(matrix)
#### HTML
```html
-
-
+
```
#### JavaScript
@@ -41,13 +40,13 @@ var svg1 = document.getElementById("svg1");
var matrix = svg1.createSVGMatrix();
var img = new Image();
-img.src = 'canvas_createpattern.png';
+img.src = "canvas_createpattern.png";
-img.onload = function() {
- var pattern = ctx.createPattern(img, 'repeat');
+img.onload = function () {
+ var pattern = ctx.createPattern(img, "repeat");
pattern.setTransform(matrix.rotate(-45).scale(1.5));
ctx.fillStyle = pattern;
- ctx.fillRect(0,0,400,400);
+ ctx.fillRect(0, 0, 400, 400);
};
```
@@ -68,7 +67,8 @@ img.onload = function() {
pattern.setTransform(matrix.rotate(-45).scale(1.5));
ctx.fillStyle = pattern;
ctx.fillRect(0,0,400,400);
-};
+};
```
```js hidden
@@ -87,14 +87,14 @@ function drawCanvas() {
eval(textarea.value);
}
-reset.addEventListener("click", function() {
+reset.addEventListener("click", function () {
textarea.value = code;
drawCanvas();
});
-edit.addEventListener("click", function() {
+edit.addEventListener("click", function () {
textarea.focus();
-})
+});
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/arc/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/arc/index.md
index 5adea27eb3c9c3..7ddd2789876071 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/arc/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/arc/index.md
@@ -43,8 +43,8 @@ void ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise);
#### JavaScript
```js
-const canvas = document.querySelector('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.querySelector("canvas");
+const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.arc(100, 75, 50, 0, 2 * Math.PI);
@@ -64,23 +64,23 @@ ctx.stroke();
```
```js
-var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
+var canvas = document.getElementById("canvas");
+var ctx = canvas.getContext("2d");
// Draw shapes
-for (i=0;i<4;i++){
- for(j=0;j<3;j++){
+for (i = 0; i < 4; i++) {
+ for (j = 0; j < 3; j++) {
ctx.beginPath();
- var x = 25+j*50; // x coordinate
- var y = 25+i*50; // y coordinate
- var radius = 20; // Arc radius
- var startAngle = 0; // Starting point on circle
- var endAngle = Math.PI+(Math.PI*j)/2; // End point on circle
- var clockwise = i%2==0 ? false : true; // clockwise or anticlockwise
+ var x = 25 + j * 50; // x coordinate
+ var y = 25 + i * 50; // y coordinate
+ var radius = 20; // Arc radius
+ var startAngle = 0; // Starting point on circle
+ var endAngle = Math.PI + (Math.PI * j) / 2; // End point on circle
+ var clockwise = i % 2 == 0 ? false : true; // clockwise or anticlockwise
- ctx.arc(x,y,radius,startAngle,endAngle, clockwise);
+ ctx.arc(x, y, radius, startAngle, endAngle, clockwise);
- if (i>1){
+ if (i > 1) {
ctx.fill();
} else {
ctx.stroke();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/arcto/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/arcto/index.md
index 405b539be3f55d..c37cb920236636 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/arcto/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/arcto/index.md
@@ -44,29 +44,29 @@ void ctx.arcTo(x1, y1, x2, y2, radius);
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
-ctx.setLineDash([])
+ctx.setLineDash([]);
ctx.beginPath();
ctx.moveTo(150, 20);
-ctx.arcTo(150,100,50,20,30);
+ctx.arcTo(150, 100, 50, 20, 30);
ctx.stroke();
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
// base point
ctx.fillRect(150, 20, 10, 10);
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
// control point one
ctx.fillRect(150, 100, 10, 10);
// control point two
ctx.fillRect(50, 20, 10, 10);
//
-ctx.setLineDash([5,5])
+ctx.setLineDash([5, 5]);
ctx.moveTo(150, 20);
-ctx.lineTo(150,100);
+ctx.lineTo(150, 100);
ctx.lineTo(50, 20);
ctx.stroke();
ctx.beginPath();
-ctx.arc(120,38,30,0,2*Math.PI);
+ctx.arc(120, 38, 30, 0, 2 * Math.PI);
ctx.stroke();
```
@@ -106,7 +106,8 @@ ctx.lineTo(50, 20);
ctx.stroke();
ctx.beginPath();
ctx.arc(120,38,30,0,2*Math.PI);
-ctx.stroke();
+ctx.stroke();
```
```js hidden
@@ -122,14 +123,14 @@ function drawCanvas() {
eval(textarea.value);
}
-reset.addEventListener("click", function() {
+reset.addEventListener("click", function () {
textarea.value = code;
drawCanvas();
});
-edit.addEventListener("click", function() {
+edit.addEventListener("click", function () {
textarea.focus();
-})
+});
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/beginpath/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/beginpath/index.md
index 35f3b9f26c277f..e9102db6f6c1d0 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/beginpath/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/beginpath/index.md
@@ -28,19 +28,19 @@ void ctx.beginPath();
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// First path
ctx.beginPath();
-ctx.strokeStyle = 'blue';
+ctx.strokeStyle = "blue";
ctx.moveTo(20, 20);
ctx.lineTo(200, 20);
ctx.stroke();
// Second path
ctx.beginPath();
-ctx.strokeStyle = 'green';
+ctx.strokeStyle = "green";
ctx.moveTo(20, 20);
ctx.lineTo(120, 120);
ctx.stroke();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/beziercurveto/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/beziercurveto/index.md
index 72c41a602fc8df..03c0cb03745a9d 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/beziercurveto/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/beziercurveto/index.md
@@ -47,17 +47,17 @@ var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.beginPath();
-ctx.moveTo(50,20);
+ctx.moveTo(50, 20);
ctx.bezierCurveTo(230, 30, 150, 60, 50, 100);
ctx.stroke();
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
// start point
ctx.fillRect(50, 20, 10, 10);
// end point
ctx.fillRect(50, 100, 10, 10);
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
// control point one
ctx.fillRect(230, 30, 10, 10);
// control point two
@@ -79,7 +79,8 @@ ctx.fillRect(150, 70, 10, 10);
+ctx.stroke();
```
```js hidden
@@ -95,14 +96,14 @@ function drawCanvas() {
eval(textarea.value);
}
-reset.addEventListener("click", function() {
+reset.addEventListener("click", function () {
textarea.value = code;
drawCanvas();
});
-edit.addEventListener("click", function() {
+edit.addEventListener("click", function () {
textarea.focus();
-})
+});
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/canvas/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/canvas/index.md
index 91eab1a8b353ab..0864cbaa109a5d 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/canvas/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/canvas/index.md
@@ -26,7 +26,7 @@ ctx.canvas;
```js
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
-ctx.canvas // HTMLCanvasElement
+ctx.canvas; // HTMLCanvasElement
```
## 规范描述
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/clearrect/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/clearrect/index.md
index 1e258b0f09f2d5..4112c73825e960 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/clearrect/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/clearrect/index.md
@@ -35,8 +35,8 @@ void ctx.clearRect(x, y, width, height);
这段代码清除整个画布。这段代码通常在动画的每一帧开始被执行。清除的范围涵覆盖了整个 {{HtmlElement("canvas")}} 元素。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
```
@@ -60,12 +60,12 @@ var ctx = canvas.getContext("2d");
// 绘制黄色背景
ctx.beginPath();
-ctx.fillStyle = '#ff6';
+ctx.fillStyle = "#ff6";
ctx.fillRect(0, 0, canvas.width, canvas.height);
// 绘制蓝色三角形
ctx.beginPath();
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
ctx.moveTo(20, 20);
ctx.lineTo(180, 20);
ctx.lineTo(130, 130);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/clip/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/clip/index.md
index c1725512c08932..87f679de6be9ac 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/clip/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/clip/index.md
@@ -47,8 +47,8 @@ void ctx.clip(path, fillRule);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Create circular clipping region
ctx.beginPath();
@@ -56,9 +56,9 @@ ctx.arc(100, 75, 50, 0, Math.PI * 2);
ctx.clip();
// Draw stuff that gets clipped
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
ctx.fillRect(0, 0, canvas.width, canvas.height);
-ctx.fillStyle = 'orange';
+ctx.fillStyle = "orange";
ctx.fillRect(0, 0, 100, 100);
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/closepath/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/closepath/index.md
index 5bbda5f9a4e120..3de7c56c46bb41 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/closepath/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/closepath/index.md
@@ -28,14 +28,14 @@ void ctx.closePath();
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.beginPath();
-ctx.moveTo(20, 140); // Move pen to bottom-left corner
-ctx.lineTo(120, 10); // Line to top corner
-ctx.lineTo(220, 140); // Line to bottom-right corner
-ctx.closePath(); // Line to bottom-left corner
+ctx.moveTo(20, 140); // Move pen to bottom-left corner
+ctx.lineTo(120, 10); // Line to top corner
+ctx.lineTo(220, 140); // Line to bottom-right corner
+ctx.closePath(); // Line to bottom-left corner
ctx.stroke();
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/createpattern/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/createpattern/index.md
index c1092ea332d5c1..55847c2918df8f 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/createpattern/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/createpattern/index.md
@@ -63,7 +63,8 @@ const ctx = canvas.getContext("2d");
const img = new Image();
img.src = "canvas_createpattern.png";
-img.onload = () => { // Only use the image after it's loaded
+img.onload = () => {
+ // Only use the image after it's loaded
const pattern = ctx.createPattern(img, "repeat");
ctx.fillStyle = pattern;
ctx.fillRect(0, 0, 300, 300);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/direction/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/direction/index.md
index 4130fb613c498a..8bb374ae15523e 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/direction/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/direction/index.md
@@ -41,13 +41,13 @@ ctx.direction = "ltr" || "rtl" || "inherit";
#### JavaScript
```js
-var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
+var canvas = document.getElementById("canvas");
+var ctx = canvas.getContext("2d");
-ctx.font = '48px serif';
-ctx.fillText('Hi!', 150, 50);
-ctx.direction = 'rtl';
-ctx.fillText('Hi!', 150, 130);
+ctx.font = "48px serif";
+ctx.fillText("Hi!", 150, 50);
+ctx.direction = "rtl";
+ctx.fillText("Hi!", 150, 130);
```
```html hidden
@@ -55,13 +55,13 @@ ctx.fillText('Hi!', 150, 130);
```
```js hidden
-var canvas = document.getElementById('canvas');
-var ctx = canvas.getContext('2d');
+var canvas = document.getElementById("canvas");
+var ctx = canvas.getContext("2d");
-ctx.font = '48px serif';
-ctx.fillText('Hi!', 150, 50);
-ctx.direction = 'rtl';
-ctx.fillText('Hi!', 150, 130);
+ctx.font = "48px serif";
+ctx.fillText("Hi!", 150, 50);
+ctx.direction = "rtl";
+ctx.fillText("Hi!", 150, 130);
```
#### 结果
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/drawfocusifneeded/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/drawfocusifneeded/index.md
index 1eaa0f924aa620..0cdee1b82ec2d8 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/drawfocusifneeded/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/drawfocusifneeded/index.md
@@ -39,14 +39,14 @@ void ctx.drawFocusIfNeeded(path, element);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-const button1 = document.getElementById('button1');
-const button2 = document.getElementById('button2');
-
-document.addEventListener('focus', redraw, true);
-document.addEventListener('blur', redraw, true);
-canvas.addEventListener('click', handleClick, false);
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+const button1 = document.getElementById("button1");
+const button2 = document.getElementById("button2");
+
+document.addEventListener("focus", redraw, true);
+document.addEventListener("blur", redraw, true);
+canvas.addEventListener("click", handleClick, false);
redraw();
function redraw() {
@@ -79,14 +79,14 @@ function drawButton(el, x, y) {
const height = 40;
// Button background
- ctx.fillStyle = active ? 'pink' : 'lightgray';
+ ctx.fillStyle = active ? "pink" : "lightgray";
ctx.fillRect(x, y, width, height);
// Button text
- ctx.font = '15px sans-serif';
- ctx.textAlign = 'center';
- ctx.textBaseline = 'middle';
- ctx.fillStyle = active ? 'blue' : 'black';
+ ctx.font = "15px sans-serif";
+ ctx.textAlign = "center";
+ ctx.textBaseline = "middle";
+ ctx.fillStyle = active ? "blue" : "black";
ctx.fillText(el.textContent, x + width / 2, y + height / 2);
// Define clickable area
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/drawimage/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/drawimage/index.md
index 4e043226641cca..4116a4a1bd5fe8 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/drawimage/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/drawimage/index.md
@@ -10,9 +10,9 @@ Canvas 2D API 中的 **`CanvasRenderingContext2D.drawImage()`** 方法提供了
## 语法
```js
-drawImage(image, dx, dy)
-drawImage(image, dx, dy, dWidth, dHeight)
-drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
+drawImage(image, dx, dy);
+drawImage(image, dx, dy, dWidth, dHeight);
+drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
```
![drawImage](canvas_drawimage.jpg)
@@ -61,9 +61,7 @@ drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
```html
-
+
```
@@ -72,11 +70,11 @@ drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
原图像从坐标 (33,71) 处截取一个宽度为 104 高度为 124 的图像。并将其绘制到画布的 (21, 20) 坐标处,并将其缩放为宽 87、高 104 的图像。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-const image = document.getElementById('source');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+const image = document.getElementById("source");
-image.addEventListener('load', (e) => {
+image.addEventListener("load", (e) => {
ctx.drawImage(image, 33, 71, 104, 124, 21, 20, 87, 104);
});
```
@@ -100,14 +98,14 @@ image.addEventListener('load', (e) => {
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
const image = new Image(60, 45); // Using optional size for image
image.onload = drawImageActualSize; // Draw when image has loaded
// Load an image of intrinsic size 300x227 in CSS pixels
-image.src = 'rhino.jpg';
+image.src = "rhino.jpg";
function drawImageActualSize() {
// Use the intrinsic size of image in CSS pixels for the canvas element
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/ellipse/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/ellipse/index.md
index e98f26b9ed4111..35fe92d5a19605 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/ellipse/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/ellipse/index.md
@@ -47,8 +47,8 @@ void ctx.ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlo
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Draw the ellipse
ctx.beginPath();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/fillrect/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/fillrect/index.md
index 77f4b8b43b2e07..f2eda6154ffe41 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/fillrect/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/fillrect/index.md
@@ -45,9 +45,9 @@ void ctx.fillRect(x, y, width, height);
下面绘制的矩形左上顶点在 (20, 10),宽高分别是 150 和 100 像素。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-ctx.fillStyle = 'green';
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+ctx.fillStyle = "green";
ctx.fillRect(20, 10, 150, 100);
```
@@ -60,8 +60,8 @@ ctx.fillRect(20, 10, 150, 100);
下面这个代码片段使用本方法填充了整个画布。这样做通常的目的是在开始绘制其他内容前设置一个背景。为了达到这样的效果,需要让填充的范围和画布的范围相同,需要访问{{HtmlElement("canvas")}}元素的`width` 和 `height` 属性。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.fillRect(0, 0, canvas.width, canvas.height);
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/fillstyle/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/fillstyle/index.md
index 557c9fa09af897..dfd6e3fae2be8d 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/fillstyle/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/fillstyle/index.md
@@ -61,12 +61,16 @@ ctx.fillRect(10, 10, 100, 100);
```
```js
-var ctx = document.getElementById('canvas').getContext('2d');
-for (var i=0;i<6;i++){
- for (var j=0;j<6;j++){
- ctx.fillStyle = 'rgb(' + Math.floor(255-42.5*i) + ',' +
- Math.floor(255-42.5*j) + ',0)';
- ctx.fillRect(j*25,i*25,25,25);
+var ctx = document.getElementById("canvas").getContext("2d");
+for (var i = 0; i < 6; i++) {
+ for (var j = 0; j < 6; j++) {
+ ctx.fillStyle =
+ "rgb(" +
+ Math.floor(255 - 42.5 * i) +
+ "," +
+ Math.floor(255 - 42.5 * j) +
+ ",0)";
+ ctx.fillRect(j * 25, i * 25, 25, 25);
}
}
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/filltext/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/filltext/index.md
index a4478ec416141f..07bb2b04433485 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/filltext/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/filltext/index.md
@@ -5,7 +5,7 @@ slug: Web/API/CanvasRenderingContext2D/fillText
{{APIRef}}
-**`CanvasRenderingContext2D.fillText()`** 是 Canvas 2D API 在 *(x, y)* 位置填充文本的方法。如果选项的第四个参数提供了最大宽度,文本会进行缩放以适应最大宽度。
+**`CanvasRenderingContext2D.fillText()`** 是 Canvas 2D API 在 _(x, y)_ 位置填充文本的方法。如果选项的第四个参数提供了最大宽度,文本会进行缩放以适应最大宽度。
参见 {{domxref("CanvasRenderingContext2D.strokeText()")}} 方法对文本进行描边。
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/filter/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/filter/index.md
index f349813dbcbdc8..7cdf8784c2ebe6 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/filter/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/filter/index.md
@@ -66,12 +66,12 @@ filter 属性接受{{domxref("DOMString")}}字符串,可以包含一个或多
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
-ctx.filter = 'blur(4px)';
-ctx.font = '48px serif';
-ctx.fillText('Hello world', 50, 100);
+ctx.filter = "blur(4px)";
+ctx.font = "48px serif";
+ctx.fillText("Hello world", 50, 100);
```
#### 结果
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/gettransform/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/gettransform/index.md
index d07c745785dcaf..53a29dd8dc9454 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/gettransform/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/gettransform/index.md
@@ -34,8 +34,7 @@ let storedTransform = ctx.getTransform();
#### HTML
```html
-
-
+
```
#### CSS
@@ -49,11 +48,11 @@ canvas {
#### JavaScript
```js
-const canvases = document.querySelectorAll('canvas');
-const ctx1 = canvases[0].getContext('2d');
-const ctx2 = canvases[1].getContext('2d');
+const canvases = document.querySelectorAll("canvas");
+const ctx1 = canvases[0].getContext("2d");
+const ctx2 = canvases[1].getContext("2d");
-ctx1.setTransform(1, .2, .8, 1, 0, 0);
+ctx1.setTransform(1, 0.2, 0.8, 1, 0, 0);
ctx1.fillRect(25, 25, 50, 50);
let storedTransform = ctx1.getTransform();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/globalalpha/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/globalalpha/index.md
index c5499b6fb4571a..03a018323f13de 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/globalalpha/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/globalalpha/index.md
@@ -33,15 +33,15 @@ ctx.globalAlpha = value;
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.globalAlpha = 0.5;
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
ctx.fillRect(10, 10, 100, 100);
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
ctx.fillRect(50, 50, 100, 100);
```
@@ -58,19 +58,19 @@ ctx.fillRect(50, 50, 100, 100);
```
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Draw background
-ctx.fillStyle = '#FD0';
+ctx.fillStyle = "#FD0";
ctx.fillRect(0, 0, 75, 75);
-ctx.fillStyle = '#6C0';
+ctx.fillStyle = "#6C0";
ctx.fillRect(75, 0, 75, 75);
-ctx.fillStyle = '#09F';
+ctx.fillStyle = "#09F";
ctx.fillRect(0, 75, 75, 75);
-ctx.fillStyle = '#F30';
+ctx.fillStyle = "#F30";
ctx.fillRect(75, 75, 75, 75);
-ctx.fillStyle = '#FFF';
+ctx.fillStyle = "#FFF";
// Set transparency value
ctx.globalAlpha = 0.2;
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/imagesmoothingenabled/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/imagesmoothingenabled/index.md
index d2de0b95b814e8..40a9ecd5e669d2 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/imagesmoothingenabled/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/imagesmoothingenabled/index.md
@@ -37,26 +37,27 @@ ctx.imageSmoothingEnabled = value;
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
+const canvas = document.getElementById("canvas");
-const ctx = canvas.getContext('2d');
-ctx.font = '16px sans-serif';
-ctx.textAlign = 'center';
+const ctx = canvas.getContext("2d");
+ctx.font = "16px sans-serif";
+ctx.textAlign = "center";
const img = new Image();
-img.src = 'https://interactive-examples.mdn.mozilla.net/media/examples/star.png';
+img.src =
+ "https://interactive-examples.mdn.mozilla.net/media/examples/star.png";
img.onload = () => {
const w = img.width,
- h = img.height;
+ h = img.height;
- ctx.fillText('Source', w * .5, 20);
+ ctx.fillText("Source", w * 0.5, 20);
ctx.drawImage(img, 0, 24, w, h);
- ctx.fillText('Smoothing = TRUE', w * 2.5, 20);
+ ctx.fillText("Smoothing = TRUE", w * 2.5, 20);
ctx.imageSmoothingEnabled = true;
ctx.drawImage(img, w, 24, w * 3, h * 3);
- ctx.fillText('Smoothing = FALSE', w * 5.5, 20);
+ ctx.fillText("Smoothing = FALSE", w * 5.5, 20);
ctx.imageSmoothingEnabled = false;
ctx.drawImage(img, w * 4, 24, w * 3, h * 3);
};
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinpath/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinpath/index.md
index 4b77bd66290091..dbc68370f999ac 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinpath/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinpath/index.md
@@ -56,9 +56,9 @@ isPointInPath(path, x, y, fillRule)
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-const result = document.getElementById('result');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+const result = document.getElementById("result");
ctx.rect(10, 10, 100, 100);
ctx.fill();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinstroke/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinstroke/index.md
index 0bf955f38a6f8d..67429c4eca731c 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinstroke/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/ispointinstroke/index.md
@@ -44,9 +44,9 @@ boolean ctx.isPointInStroke(path, x, y);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-const result = document.getElementById('result');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+const result = document.getElementById("result");
ctx.rect(10, 10, 100, 100);
ctx.stroke();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/linecap/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/linecap/index.md
index 0042c5bf7e2405..e1451fad60b252 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/linecap/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/linecap/index.md
@@ -41,13 +41,13 @@ ctx.lineCap = "square";
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineWidth = 15;
-ctx.lineCap = 'round';
+ctx.lineCap = "round";
ctx.lineTo(100, 100);
ctx.stroke();
```
@@ -67,11 +67,11 @@ ctx.stroke();
```
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Draw guides
-ctx.strokeStyle = '#09f';
+ctx.strokeStyle = "#09f";
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(140, 10);
@@ -80,8 +80,8 @@ ctx.lineTo(140, 140);
ctx.stroke();
// Draw lines
-ctx.strokeStyle = 'black';
-['butt', 'round', 'square'].forEach((lineCap, i) => {
+ctx.strokeStyle = "black";
+["butt", "round", "square"].forEach((lineCap, i) => {
ctx.lineWidth = 15;
ctx.lineCap = lineCap;
ctx.beginPath();
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/linedashoffset/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/linedashoffset/index.md
index e989c979e7f946..3fa4d331c613a2 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/linedashoffset/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/linedashoffset/index.md
@@ -31,8 +31,8 @@ ctx.lineDashOffset = value;
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.setLineDash([4, 16]);
@@ -44,7 +44,7 @@ ctx.stroke();
// Dashed line with offset of 4
ctx.beginPath();
-ctx.strokeStyle = 'red';
+ctx.strokeStyle = "red";
ctx.lineDashOffset = 4;
ctx.moveTo(0, 100);
ctx.lineTo(300, 100);
@@ -71,10 +71,10 @@ var ctx = canvas.getContext("2d");
var offset = 0;
function draw() {
- ctx.clearRect(0,0, canvas.width, canvas.height);
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.setLineDash([4, 2]);
ctx.lineDashOffset = -offset;
- ctx.strokeRect(10,10, 100, 100);
+ ctx.strokeRect(10, 10, 100, 100);
}
function march() {
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/linewidth/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/linewidth/index.md
index 33e0760096620a..61b4a3069e0310 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/linewidth/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/linewidth/index.md
@@ -35,8 +35,8 @@ ctx.lineWidth = value;
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.lineWidth = 15;
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/miterlimit/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/miterlimit/index.md
index 205da75349f1ca..7178c2aae04d08 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/miterlimit/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/miterlimit/index.md
@@ -45,7 +45,8 @@ ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineWidth = 15;
ctx.lineTo(100, 100);
-ctx.stroke();
+ctx.stroke();
```
```js hidden
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md
index c8f45a17d48efd..b4c8a4693930c5 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/putimagedata/index.md
@@ -55,25 +55,34 @@ void ctx.putImageData(imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-
-function putImageData(ctx, imageData, dx, dy,
- dirtyX, dirtyY, dirtyWidth, dirtyHeight) {
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+
+function putImageData(
+ ctx,
+ imageData,
+ dx,
+ dy,
+ dirtyX,
+ dirtyY,
+ dirtyWidth,
+ dirtyHeight,
+) {
const data = imageData.data;
const height = imageData.height;
const width = imageData.width;
dirtyX = dirtyX || 0;
dirtyY = dirtyY || 0;
- dirtyWidth = dirtyWidth !== undefined? dirtyWidth: width;
- dirtyHeight = dirtyHeight !== undefined? dirtyHeight: height;
+ dirtyWidth = dirtyWidth !== undefined ? dirtyWidth : width;
+ dirtyHeight = dirtyHeight !== undefined ? dirtyHeight : height;
const limitBottom = dirtyY + dirtyHeight;
const limitRight = dirtyX + dirtyWidth;
for (let y = dirtyY; y < limitBottom; y++) {
for (let x = dirtyX; x < limitRight; x++) {
const pos = y * width + x;
- ctx.fillStyle =
- `rgba(${data[pos*4+0]}, ${data[pos*4+1]}, ${data[pos*4+2]}, ${data[pos*4+3]/255})`;
+ ctx.fillStyle = `rgba(${data[pos * 4 + 0]}, ${data[pos * 4 + 1]}, ${
+ data[pos * 4 + 2]
+ }, ${data[pos * 4 + 3] / 255})`;
ctx.fillRect(x + dx, y + dy, 1, 1);
}
}
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/quadraticcurveto/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/quadraticcurveto/index.md
index a5651fcba98dc1..4281e62440f0d5 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/quadraticcurveto/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/quadraticcurveto/index.md
@@ -39,8 +39,8 @@ void ctx.quadraticCurveTo(cpx, cpy, x, y);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Quadratic Bézier curve
ctx.beginPath();
@@ -49,14 +49,14 @@ ctx.quadraticCurveTo(230, 30, 50, 100);
ctx.stroke();
// Start and end points
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
ctx.beginPath();
-ctx.arc(50, 20, 5, 0, 2 * Math.PI); // Start point
-ctx.arc(50, 100, 5, 0, 2 * Math.PI); // End point
+ctx.arc(50, 20, 5, 0, 2 * Math.PI); // Start point
+ctx.arc(50, 100, 5, 0, 2 * Math.PI); // End point
ctx.fill();
// Control point
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
ctx.beginPath();
ctx.arc(230, 30, 5, 0, 2 * Math.PI);
ctx.fill();
@@ -81,8 +81,8 @@ ctx.fill();
曲线从`moveTo()`指定的点开始:(20, 110)。控制点位于 (230, 150)。曲线在 (250, 20) 处结束。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 110);
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/resettransform/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/resettransform/index.md
index 97191f300c033a..a1b9622fa94dcf 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/resettransform/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/resettransform/index.md
@@ -28,11 +28,11 @@ void ctx.resetTransform();
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Draw a rotated rectangle
-ctx.rotate(45 * Math.PI / 180);
+ctx.rotate((45 * Math.PI) / 180);
ctx.fillRect(60, 0, 100, 30);
// Reset transformation matrix to the identity matrix
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/rotate/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/rotate/index.md
index 6f4e8b5b75b1fe..d05a17d997b60d 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/rotate/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/rotate/index.md
@@ -37,21 +37,21 @@ void ctx.rotate(angle);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Point of transform origin
ctx.arc(0, 0, 5, 0, 2 * Math.PI);
-ctx.fillStyle = 'blue';
+ctx.fillStyle = "blue";
ctx.fill();
// Non-rotated rectangle
-ctx.fillStyle = 'gray';
+ctx.fillStyle = "gray";
ctx.fillRect(100, 0, 80, 20);
// Rotated rectangle
-ctx.rotate(45 * Math.PI / 180);
-ctx.fillStyle = 'red';
+ctx.rotate((45 * Math.PI) / 180);
+ctx.fillStyle = "red";
ctx.fillRect(100, 0, 80, 20);
// Reset transformation matrix to the identity matrix
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/scale/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/scale/index.md
index a94aeafa31fea2..ecf542d9fced52 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/scale/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/scale/index.md
@@ -41,19 +41,19 @@ The rectangle has a specified width of 8 and a height of 20. The transformation
Notice that its position on the canvas also changes. Since its specified corner is (10, 10), its rendered corner becomes (90, 30).
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Scaled rectangle
ctx.scale(9, 3);
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
ctx.fillRect(10, 10, 8, 20);
// Reset current transformation matrix to the identity matrix
ctx.setTransform(1, 0, 0, 1, 0, 0);
// Non-scaled rectangle
-ctx.fillStyle = 'gray';
+ctx.fillStyle = "gray";
ctx.fillRect(10, 10, 8, 20);
```
@@ -78,12 +78,12 @@ Note that the call to {{domxref("CanvasRenderingContext2D.fillText()", "fillText
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.scale(-1, 1);
-ctx.font = '48px serif';
-ctx.fillText('Hello world!', -280, 90);
+ctx.font = "48px serif";
+ctx.fillText("Hello world!", -280, 90);
ctx.setTransform(1, 0, 0, 1, 0, 0);
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/setlinedash/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/setlinedash/index.md
index bb629eab204a96..72cdbf50da9c79 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/setlinedash/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/setlinedash/index.md
@@ -39,8 +39,8 @@ setLineDash(segments);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Dashed line
ctx.beginPath();
@@ -70,7 +70,8 @@ ctx.setLineDash([5, 15]);
ctx.beginPath();
ctx.moveTo(0,100);
ctx.lineTo(400, 100);
-ctx.stroke();
+ctx.stroke();
```
```js hidden
@@ -86,14 +87,14 @@ function drawCanvas() {
eval(textarea.value);
}
-reset.addEventListener("click", function() {
+reset.addEventListener("click", function () {
textarea.value = code;
drawCanvas();
});
-edit.addEventListener("click", function() {
+edit.addEventListener("click", function () {
textarea.focus();
-})
+});
textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
@@ -125,8 +126,8 @@ function drawDashedLine(pattern) {
y += 20;
}
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
let y = 15;
drawDashedLine([]);
@@ -135,7 +136,7 @@ drawDashedLine([10, 10]);
drawDashedLine([20, 5]);
drawDashedLine([15, 3, 3, 3]);
drawDashedLine([20, 3, 3, 3, 3, 3, 3, 3]);
-drawDashedLine([12, 3, 3]); // Equals [12, 3, 3, 12, 3, 3]
+drawDashedLine([12, 3, 3]); // Equals [12, 3, 3, 12, 3, 3]
```
#### Result
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/shadowcolor/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/shadowcolor/index.md
index 46c58c30b2a2d2..b984ebb1eeffe4 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/shadowcolor/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/shadowcolor/index.md
@@ -31,11 +31,11 @@ ctx.shadowColor = color;
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Shadow
-ctx.shadowColor = 'red';
+ctx.shadowColor = "red";
ctx.shadowOffsetX = 10;
ctx.shadowOffsetY = 10;
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/stroke/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/stroke/index.md
index 86063df603c7fc..f62a3ef5d77293 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/stroke/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/stroke/index.md
@@ -34,8 +34,8 @@ void ctx.stroke(path);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
ctx.rect(10, 10, 150, 100);
ctx.stroke();
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/strokerect/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/strokerect/index.md
index 58e0c6c081c9d8..dc530da8009377 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/strokerect/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/strokerect/index.md
@@ -45,9 +45,9 @@ void ctx.strokeRect(x, y, width, height);
矩形的左上角是(20,10)。它的宽度为 160,高度为 100。
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-ctx.strokeStyle = 'green';
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+ctx.strokeStyle = "green";
ctx.strokeRect(20, 10, 160, 100);
```
@@ -68,13 +68,13 @@ ctx.strokeRect(20, 10, 160, 100);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-ctx.shadowColor = '#d53';
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+ctx.shadowColor = "#d53";
ctx.shadowBlur = 20;
-ctx.lineJoin = 'bevel';
+ctx.lineJoin = "bevel";
ctx.lineWidth = 15;
-ctx.strokeStyle = '#38f';
+ctx.strokeStyle = "#38f";
ctx.strokeRect(30, 30, 160, 90);
```
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/textalign/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/textalign/index.md
index fa5346589b22d3..93ae9f990d2f44 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/textalign/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/textalign/index.md
@@ -49,9 +49,9 @@ ctx.textAlign = "left" || "right" || "center" || "start" || "end";
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
+const canvas = document.getElementById("canvas");
canvas.width = 350;
-const ctx = canvas.getContext('2d');
+const ctx = canvas.getContext("2d");
const x = canvas.width / 2;
ctx.beginPath();
@@ -59,16 +59,16 @@ ctx.moveTo(x, 0);
ctx.lineTo(x, canvas.height);
ctx.stroke();
-ctx.font = '30px serif';
+ctx.font = "30px serif";
-ctx.textAlign = 'left';
-ctx.fillText('left-aligned', x, 40);
+ctx.textAlign = "left";
+ctx.fillText("left-aligned", x, 40);
-ctx.textAlign = 'center';
-ctx.fillText('center-aligned', x, 85);
+ctx.textAlign = "center";
+ctx.fillText("center-aligned", x, 85);
-ctx.textAlign = 'right';
-ctx.fillText('right-aligned', x, 130);
+ctx.textAlign = "right";
+ctx.fillText("right-aligned", x, 130);
```
#### 结果
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/textbaseline/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/textbaseline/index.md
index cc7ba60c81bd26..cdec2659e46dad 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/textbaseline/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/textbaseline/index.md
@@ -49,12 +49,19 @@ ctx.textBaseline = "top" || "hanging" || "middle" || "alphabetic" || "ideographi
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
-
-const baselines = ['top', 'hanging', 'middle', 'alphabetic', 'ideographic', 'bottom'];
-ctx.font = '36px serif';
-ctx.strokeStyle = 'red';
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
+
+const baselines = [
+ "top",
+ "hanging",
+ "middle",
+ "alphabetic",
+ "ideographic",
+ "bottom",
+];
+ctx.font = "36px serif";
+ctx.strokeStyle = "red";
baselines.forEach((baseline, index) => {
ctx.textBaseline = baseline;
diff --git a/files/zh-cn/web/api/canvasrenderingcontext2d/translate/index.md b/files/zh-cn/web/api/canvasrenderingcontext2d/translate/index.md
index 420549562a6bb9..2983eec4a7807a 100644
--- a/files/zh-cn/web/api/canvasrenderingcontext2d/translate/index.md
+++ b/files/zh-cn/web/api/canvasrenderingcontext2d/translate/index.md
@@ -39,19 +39,19 @@ void ctx.translate(x, y);
#### JavaScript
```js
-const canvas = document.getElementById('canvas');
-const ctx = canvas.getContext('2d');
+const canvas = document.getElementById("canvas");
+const ctx = canvas.getContext("2d");
// Moved square
ctx.translate(110, 30);
-ctx.fillStyle = 'red';
+ctx.fillStyle = "red";
ctx.fillRect(0, 0, 80, 80);
// Reset current transformation matrix to the identity matrix
ctx.setTransform(1, 0, 0, 1, 0, 0);
// Unmoved square
-ctx.fillStyle = 'gray';
+ctx.fillStyle = "gray";
ctx.fillRect(0, 0, 80, 80);
```
diff --git a/files/zh-cn/web/api/channel_messaging_api/using_channel_messaging/index.md b/files/zh-cn/web/api/channel_messaging_api/using_channel_messaging/index.md
index 92baa8a9c231d4..5cac2ad10f634d 100644
--- a/files/zh-cn/web/api/channel_messaging_api/using_channel_messaging/index.md
+++ b/files/zh-cn/web/api/channel_messaging_api/using_channel_messaging/index.md
@@ -34,10 +34,10 @@ Channel messaging 在这样的场景中特别有用:假如你有一个社交
在例子的主页面,我们有一个简单的表单,内含一个文本输入框,用来输入要发送到 {{htmlelement("iframe")}} 的消息。我们还有一个段落,我们在稍后将会用它来显示 {{htmlelement("iframe")}} 回传回来的确认消息。
```js
-var input = document.getElementById('message-input');
-var output = document.getElementById('message-output');
-var button = document.querySelector('button');
-var iframe = document.querySelector('iframe');
+var input = document.getElementById("message-input");
+var output = document.getElementById("message-output");
+var button = document.querySelector("button");
+var iframe = document.querySelector("iframe");
var channel = new MessageChannel();
var port1 = channel.port1;
@@ -47,13 +47,13 @@ iframe.addEventListener("load", onLoad);
function onLoad() {
// 监听按钮点击
- button.addEventListener('click', onClick);
+ button.addEventListener("click", onClick);
// 在 port1 监听消息
port1.onmessage = onMessage;
// 把 port2 传给 iframe
- iframe.contentWindow.postMessage('init', '*', [channel.port2]);
+ iframe.contentWindow.postMessage("init", "*", [channel.port2]);
}
// 当按钮点击时,在 port1 上发送一个消息
@@ -65,7 +65,7 @@ function onClick(e) {
// 处理 port1 收到的消息
function onMessage(e) {
output.innerHTML = e.data;
- input.value = '';
+ input.value = "";
}
```
@@ -86,11 +86,11 @@ function onMessage(e) {
在 IFrame 里,我们有下面的 JavaScript:
```js
-var list = document.querySelector('ul');
+var list = document.querySelector("ul");
var port2;
// 监听初始的 port 传递消息
-window.addEventListener('message', initPort);
+window.addEventListener("message", initPort);
// 设置传过来的 port
function initPort(e) {
@@ -100,7 +100,7 @@ function initPort(e) {
// 处理 port2 收到的消息
function onMessage(e) {
- var listItem = document.createElement('li');
+ var listItem = document.createElement("li");
listItem.textContent = e.data;
list.appendChild(listItem);
port2.postMessage('Message received by IFrame: "' + e.data + '"');
@@ -121,7 +121,7 @@ function onMessage(e) {
// 处理 port1 上收到的消息
function onMessage(e) {
output.innerHTML = e.data;
- input.value = '';
+ input.value = "";
}
```
diff --git a/files/zh-cn/web/api/channelmergernode/channelmergernode/index.md b/files/zh-cn/web/api/channelmergernode/channelmergernode/index.md
index c74eebe5ed97f4..40225385dcc793 100644
--- a/files/zh-cn/web/api/channelmergernode/channelmergernode/index.md
+++ b/files/zh-cn/web/api/channelmergernode/channelmergernode/index.md
@@ -35,8 +35,8 @@ _从字典_ _{{domxref("AudioNodeOptions")}} 继承。_
var ac = new AudioContext();
var options = {
- numberOfInputs : 2
-}
+ numberOfInputs: 2,
+};
var myMerger = new ChannelMergerNode(ac, options);
```
diff --git a/files/zh-cn/web/api/cleartimeout/index.md b/files/zh-cn/web/api/cleartimeout/index.md
index 3b11e3a57d8277..d76f69286f4620 100644
--- a/files/zh-cn/web/api/cleartimeout/index.md
+++ b/files/zh-cn/web/api/cleartimeout/index.md
@@ -26,25 +26,33 @@ scope.clearTimeout(timeoutID)
```js
var alarm = {
- remind: function(aMessage) {
+ remind: function (aMessage) {
alert(aMessage);
delete this.timeoutID;
},
- setup: function() {
+ setup: function () {
this.cancel();
var self = this;
- this.timeoutID = window.setTimeout(function(msg) {self.remind(msg);}, 1000, "Wake up!");
+ this.timeoutID = window.setTimeout(
+ function (msg) {
+ self.remind(msg);
+ },
+ 1000,
+ "Wake up!",
+ );
},
- cancel: function() {
- if(typeof this.timeoutID == "number") {
+ cancel: function () {
+ if (typeof this.timeoutID == "number") {
window.clearTimeout(this.timeoutID);
delete this.timeoutID;
}
- }
+ },
+};
+window.onclick = function () {
+ alarm.setup();
};
-window.onclick = function() { alarm.setup() };
```
## 注意
diff --git a/files/zh-cn/web/api/client/postmessage/index.md b/files/zh-cn/web/api/client/postmessage/index.md
index 8c0b260c76ee67..977a228525f21b 100644
--- a/files/zh-cn/web/api/client/postmessage/index.md
+++ b/files/zh-cn/web/api/client/postmessage/index.md
@@ -29,32 +29,33 @@ Void.
从 service worker 向 client 发送消息:
```js
-addEventListener('fetch', event => {
- event.waitUntil(async function() {
- // Exit early if we don't have access to the client.
- // Eg, if it's cross-origin.
- if (!event.clientId) return;
-
- // Get the client.
- const client = await clients.get(event.clientId);
- // Exit early if we don't get the client.
- // Eg, if it closed.
- if (!client) return;
-
- // Send a message to the client.
- client.postMessage({
- msg: "Hey I just got a fetch from you!",
- url: event.request.url
- });
-
- }());
+addEventListener("fetch", (event) => {
+ event.waitUntil(
+ (async function () {
+ // Exit early if we don't have access to the client.
+ // Eg, if it's cross-origin.
+ if (!event.clientId) return;
+
+ // Get the client.
+ const client = await clients.get(event.clientId);
+ // Exit early if we don't get the client.
+ // Eg, if it closed.
+ if (!client) return;
+
+ // Send a message to the client.
+ client.postMessage({
+ msg: "Hey I just got a fetch from you!",
+ url: event.request.url,
+ });
+ })(),
+ );
});
```
接收 message:
```js
-navigator.serviceWorker.addEventListener('message', event => {
+navigator.serviceWorker.addEventListener("message", (event) => {
console.log(event.data.msg, event.data.url);
});
```
diff --git a/files/zh-cn/web/api/clients/claim/index.md b/files/zh-cn/web/api/clients/claim/index.md
index 7f6f48fe19a3f9..2340bbc9e12650 100644
--- a/files/zh-cn/web/api/clients/claim/index.md
+++ b/files/zh-cn/web/api/clients/claim/index.md
@@ -28,7 +28,7 @@ A {{jsxref("Promise")}} for `void`.
The following example uses `claim()` inside service worker's "`activate`" event listener so that clients loaded in the same scope do not need to be reloaded before their fetches will go through this service worker.
```js
-self.addEventListener('activate', event => {
+self.addEventListener("activate", (event) => {
event.waitUntil(clients.claim());
});
```
diff --git a/files/zh-cn/web/api/clients/get/index.md b/files/zh-cn/web/api/clients/get/index.md
index 19135090ddc946..66913eb6fb5072 100644
--- a/files/zh-cn/web/api/clients/get/index.md
+++ b/files/zh-cn/web/api/clients/get/index.md
@@ -10,7 +10,7 @@ slug: Web/API/Clients/get
## 语法
```js
-self.clients.get(id).then(function(client) {
+self.clients.get(id).then(function (client) {
// do something with your returned client
});
```
@@ -27,7 +27,7 @@ self.clients.get(id).then(function(client) {
## 示例
```js
-self.clients.get(options).then(function(client) {
+self.clients.get(options).then(function (client) {
self.clients.openWindow(client.url);
});
```
diff --git a/files/zh-cn/web/api/clients/index.md b/files/zh-cn/web/api/clients/index.md
index aaba90ab4312ca..5d202e24f3f2a2 100644
--- a/files/zh-cn/web/api/clients/index.md
+++ b/files/zh-cn/web/api/clients/index.md
@@ -23,35 +23,37 @@ slug: Web/API/Clients
下面示例显示一个已有的聊天窗口,或者当用户点击通知时创建新的窗口。
```js
-addEventListener('notificationclick', event => {
- event.waitUntil(async function() {
- const allClients = await clients.matchAll({
- includeUncontrolled: true
- });
-
- let chatClient;
-
- // Let's see if we already have a chat window open:
- for (const client of allClients) {
- const url = new URL(client.url);
-
- if (url.pathname == '/chat/') {
- // Excellent, let's use it!
- client.focus();
- chatClient = client;
- break;
+addEventListener("notificationclick", (event) => {
+ event.waitUntil(
+ (async function () {
+ const allClients = await clients.matchAll({
+ includeUncontrolled: true,
+ });
+
+ let chatClient;
+
+ // Let's see if we already have a chat window open:
+ for (const client of allClients) {
+ const url = new URL(client.url);
+
+ if (url.pathname == "/chat/") {
+ // Excellent, let's use it!
+ client.focus();
+ chatClient = client;
+ break;
+ }
}
- }
- // If we didn't find an existing chat window,
- // open a new one:
- if (!chatClient) {
- chatClient = await clients.openWindow('/chat/');
- }
+ // If we didn't find an existing chat window,
+ // open a new one:
+ if (!chatClient) {
+ chatClient = await clients.openWindow("/chat/");
+ }
- // Message the client:
- chatClient.postMessage("New chat messages!");
- }());
+ // Message the client:
+ chatClient.postMessage("New chat messages!");
+ })(),
+ );
});
```
diff --git a/files/zh-cn/web/api/clients/matchall/index.md b/files/zh-cn/web/api/clients/matchall/index.md
index df0f5f56a2e062..6b89827593154a 100644
--- a/files/zh-cn/web/api/clients/matchall/index.md
+++ b/files/zh-cn/web/api/clients/matchall/index.md
@@ -10,7 +10,7 @@ slug: Web/API/Clients/matchAll
## 语法
```js
-ServiceWorkerClients.matchAll(options).then(function(clients) {
+ServiceWorkerClients.matchAll(options).then(function (clients) {
// do something with your clients list
});
```
@@ -31,9 +31,9 @@ resolve 为一个 {{domxref("Client")}} 对象数组的 [`Promise`](/zh-CN/docs/
## 示例
```js
-clients.matchAll(options).then(function(clientList) {
- for (var i = 0 ; i < clients.length ; i++) {
- if (clientList[i].url === 'index.html') {
+clients.matchAll(options).then(function (clientList) {
+ for (var i = 0; i < clients.length; i++) {
+ if (clientList[i].url === "index.html") {
clients.openWindow(clientList[i]);
// or do something else involving the matching client
}
diff --git a/files/zh-cn/web/api/clients/openwindow/index.md b/files/zh-cn/web/api/clients/openwindow/index.md
index 92064e56ec04b9..ae694b2f214e2f 100644
--- a/files/zh-cn/web/api/clients/openwindow/index.md
+++ b/files/zh-cn/web/api/clients/openwindow/index.md
@@ -14,7 +14,7 @@ slug: Web/API/Clients/openWindow
## 语法
```js
-ServiceWorkerClients.openWindow(url).then(function(WindowClient) {
+ServiceWorkerClients.openWindow(url).then(function (WindowClient) {
// do something with your WindowClient
});
```
@@ -33,9 +33,9 @@ ServiceWorkerClients.openWindow(url).then(function(WindowClient) {
```js
// When the user clicks a notification focus the window if it exists or open
// a new one otherwise.
-onotificationclick = function(event) {
+onotificationclick = function (event) {
var found = false;
- clients.matchAll().then(function(clientsArr) {
+ clients.matchAll().then(function (clientsArr) {
for (i = 0; i < clientsArr.length; i++) {
if (clientsArr[i].url === event.data.url) {
// We already have a window to use, focus it.
@@ -46,7 +46,7 @@ onotificationclick = function(event) {
}
if (!found) {
// Create a new window.
- clients.openWindow(event.data.url).then(function(windowClient) {
+ clients.openWindow(event.data.url).then(function (windowClient) {
// do something with the windowClient.
});
}
diff --git a/files/zh-cn/web/api/clipboard/index.md b/files/zh-cn/web/api/clipboard/index.md
index 33277883036746..a7ab2b349ccd2c 100644
--- a/files/zh-cn/web/api/clipboard/index.md
+++ b/files/zh-cn/web/api/clipboard/index.md
@@ -23,7 +23,7 @@ slug: Web/API/Clipboard
## 方法
-*`Clipboard` 继承自 {{domxref("EventTarget")}} 接口,因此拥有它的方法。*
+_`Clipboard` 继承自 {{domxref("EventTarget")}} 接口,因此拥有它的方法。_
- {{domxref("Clipboard.read()","read()")}}
- : 从剪贴板读取数据(比如图片),返回一个 {{jsxref("Promise")}} 对象。在检索到数据后,promise 将兑现一个 {{domxref("ClipboardItem")}} 对象的数组来提供剪切板数据。
diff --git a/files/zh-cn/web/api/clipboard/read/index.md b/files/zh-cn/web/api/clipboard/read/index.md
index 9bc7bc42b97f1f..9e33ef113b98e7 100644
--- a/files/zh-cn/web/api/clipboard/read/index.md
+++ b/files/zh-cn/web/api/clipboard/read/index.md
@@ -33,13 +33,13 @@ After using {{domxref("Permissions.query", "navigator.permissions.query()")}} to
// First, ask the Permissions API if we have some kind of access to
// the "clipboard-read" feature.
-navigator.permissions.query({name: "clipboard-read"}).then(result => {
+navigator.permissions.query({ name: "clipboard-read" }).then((result) => {
// If permission to read the clipboard is granted or if the user will
// be prompted to allow it, we proceed.
if (result.state == "granted" || result.state == "prompt") {
- navigator.clipboard.read().then(data => {
- for (let i=0; i {
+ for (let i = 0; i < data.items.length; i++) {
if (data.items[i].type != "text/plain") {
alert("Clipboard contains non-text data. Unable to access it.");
} else {
diff --git a/files/zh-cn/web/api/clipboard/readtext/index.md b/files/zh-cn/web/api/clipboard/readtext/index.md
index 701c672f224ca2..dda2be6e248057 100644
--- a/files/zh-cn/web/api/clipboard/readtext/index.md
+++ b/files/zh-cn/web/api/clipboard/readtext/index.md
@@ -28,8 +28,9 @@ A {{jsxref("Promise")}} that resolves with a {{domxref("DOMString")}} containing
此示例检索剪贴板的文本内容,并将返回的文本插入元素的内容中。
```js
-navigator.clipboard.readText().then(
- clipText => document.getElementById("outbox").innerText = clipText);
+navigator.clipboard
+ .readText()
+ .then((clipText) => (document.getElementById("outbox").innerText = clipText));
```
## 规范
diff --git a/files/zh-cn/web/api/clipboard/write/index.md b/files/zh-cn/web/api/clipboard/write/index.md
index 78ca3a5f4ea81a..3bc68cddb43f93 100644
--- a/files/zh-cn/web/api/clipboard/write/index.md
+++ b/files/zh-cn/web/api/clipboard/write/index.md
@@ -35,11 +35,14 @@ function setClipboard(text) {
let data = new DataTransfer();
data.items.add("text/plain", text);
- navigator.clipboard.write(data).then(function() {
- /* success */
- }, function() {
- /* failure */
- });
+ navigator.clipboard.write(data).then(
+ function () {
+ /* success */
+ },
+ function () {
+ /* failure */
+ },
+ );
}
```
diff --git a/files/zh-cn/web/api/clipboard/writetext/index.md b/files/zh-cn/web/api/clipboard/writetext/index.md
index b93ce9cb058ad2..95b9b9bf9a9eb3 100644
--- a/files/zh-cn/web/api/clipboard/writetext/index.md
+++ b/files/zh-cn/web/api/clipboard/writetext/index.md
@@ -29,11 +29,14 @@ var promise = navigator.clipboard.writeText(newClipText)
此示例将剪贴板的内容设置为字符串“\”。
```js
-navigator.clipboard.writeText("").then(function() {
- /* clipboard successfully set */
-}, function() {
- /* clipboard write failed */
-});
+navigator.clipboard.writeText("").then(
+ function () {
+ /* clipboard successfully set */
+ },
+ function () {
+ /* clipboard write failed */
+ },
+);
```
## 规范
diff --git a/files/zh-cn/web/api/clipboard_api/index.md b/files/zh-cn/web/api/clipboard_api/index.md
index 3eb6ce0fdd2347..be729c2e97d6b8 100644
--- a/files/zh-cn/web/api/clipboard_api/index.md
+++ b/files/zh-cn/web/api/clipboard_api/index.md
@@ -14,8 +14,11 @@ slug: Web/API/Clipboard_API
除了在实例化中创建一个 `Clipboard` 对象,你还可以使用全局的 {{domxref("Navigator.clipboard")}} 来访问系统剪贴板。
```js
-navigator.clipboard.readText().then(
- clipText => document.querySelector(".editor").innerText += clipText);
+navigator.clipboard
+ .readText()
+ .then(
+ (clipText) => (document.querySelector(".editor").innerText += clipText),
+ );
```
上述代码提取了剪贴板的文本并将其附在 class 为 `editor` 的第一个元素后面。因为当剪贴板中不是文本时, {{domxref("Clipboard.readText", "readText()")}} (and {{domxref("Clipboard.read", "read()")}}, for that matter) 会返回一个空字符串,所以这段代码是安全的。
diff --git a/files/zh-cn/web/api/clipboarditem/index.md b/files/zh-cn/web/api/clipboarditem/index.md
index 230ba714d86139..ee13098c4d47a3 100644
--- a/files/zh-cn/web/api/clipboarditem/index.md
+++ b/files/zh-cn/web/api/clipboarditem/index.md
@@ -43,17 +43,17 @@ Here we're writing a new {{domxref("ClipboardItem.ClipboardItem()")}} to the {{d
```js
async function writeClipImg() {
try {
- const imgURL = '/myimage.png';
+ const imgURL = "/myimage.png";
const data = await fetch(imgURL);
const blob = await data.blob();
await navigator.clipboard.write([
new ClipboardItem({
- [blob.type]: blob
- })
+ [blob.type]: blob,
+ }),
]);
- console.log('Fetched image copied.');
- } catch(err) {
+ console.log("Fetched image copied.");
+ } catch (err) {
console.error(err.name, err.message);
}
}
@@ -69,14 +69,11 @@ async function getClipboardContents() {
const clipboardItems = await navigator.clipboard.read();
for (const clipboardItem of clipboardItems) {
-
for (const type of clipboardItem.types) {
const blob = await clipboardItem.getType(type);
// we can now use blob here
}
-
}
-
} catch (err) {
console.error(err.name, err.message);
}
diff --git a/files/zh-cn/web/api/compression_streams_api/index.md b/files/zh-cn/web/api/compression_streams_api/index.md
index 3b55b1fa62cac8..5657ee261a2fd5 100644
--- a/files/zh-cn/web/api/compression_streams_api/index.md
+++ b/files/zh-cn/web/api/compression_streams_api/index.md
@@ -22,7 +22,7 @@ slug: Web/API/Compression_Streams_API
```js
const compressedReadableStream = inputReadableStream.pipeThrough(
- new CompressionStream("gzip")
+ new CompressionStream("gzip"),
);
```
diff --git a/files/zh-cn/web/api/compressionstream/compressionstream/index.md b/files/zh-cn/web/api/compressionstream/compressionstream/index.md
index c295169fde6134..2ec1a5a0abdb1b 100644
--- a/files/zh-cn/web/api/compressionstream/compressionstream/index.md
+++ b/files/zh-cn/web/api/compressionstream/compressionstream/index.md
@@ -34,7 +34,7 @@ new CompressionStream(format)
```js
const compressedReadableStream = inputReadableStream.pipeThrough(
- new CompressionStream("gzip")
+ new CompressionStream("gzip"),
);
```
diff --git a/files/zh-cn/web/api/compressionstream/index.md b/files/zh-cn/web/api/compressionstream/index.md
index 2f0f0521aa02f1..0e135ef1f17ea1 100644
--- a/files/zh-cn/web/api/compressionstream/index.md
+++ b/files/zh-cn/web/api/compressionstream/index.md
@@ -25,7 +25,7 @@ slug: Web/API/CompressionStream
```js
const compressedReadableStream = inputReadableStream.pipeThrough(
- new CompressionStream("gzip")
+ new CompressionStream("gzip"),
);
```
diff --git a/files/zh-cn/web/api/console/assert/index.md b/files/zh-cn/web/api/console/assert/index.md
index 2074a22463f07b..aef5c0a50227e8 100644
--- a/files/zh-cn/web/api/console/assert/index.md
+++ b/files/zh-cn/web/api/console/assert/index.md
@@ -34,12 +34,12 @@ console.assert(assertion, msg [, subst1, ..., substN]); // c-like message format
下面的代码示例演示了 JavaScript 对象的使用:
```js
-const errorMsg = 'the # is not even';
+const errorMsg = "the # is not even";
for (let number = 2; number <= 5; number += 1) {
- console.log('the # is ' + number);
- console.assert(number % 2 === 0, {number: number, errorMsg: errorMsg});
- // 或者使用 ES2015 对象简写:
- // console.assert(number % 2 === 0, {number, errorMsg});
+ console.log("the # is " + number);
+ console.assert(number % 2 === 0, { number: number, errorMsg: errorMsg });
+ // 或者使用 ES2015 对象简写:
+ // console.assert(number % 2 === 0, {number, errorMsg});
}
// 输出:
// the # is 2
@@ -53,14 +53,14 @@ for (let number = 2; number <= 5; number += 1) {
请注意,你可以在大多数浏览器中使用 console.log 进行格式化输出
```js
-console.log('the word is %s try number %d', 'foo', 123);
+console.log("the word is %s try number %d", "foo", 123);
// 输出:the word is foo try number 123
```
`但是 console.assert` 在不同浏览器中可能获得不同的效果:
```js
-console.assert(false, 'the word is %s', 'foo');
+console.assert(false, "the word is %s", "foo");
// correct output in Node (e.g. v8.10.0) and some browsers
// (e.g. Firefox v60.0.2):
// Assertion failed: the word is foo
diff --git a/files/zh-cn/web/api/console/index.md b/files/zh-cn/web/api/console/index.md
index b048aa6558f69f..a1d761035e7278 100644
--- a/files/zh-cn/web/api/console/index.md
+++ b/files/zh-cn/web/api/console/index.md
@@ -10,7 +10,7 @@ slug: Web/API/console
`Console` 对象可以从任何全局对象中访问到,如 浏览器作用域上的 {{domxref("Window")}},以及通过属性控制台作为 workers 中的特定变体的 {{domxref("WorkerGlobalScope")}}。可以通过 {{domxref("Window.console")}} 引用,也可以简单的通过 `console` 引用。例:
```js
-console.log("Failed to open the specified link")
+console.log("Failed to open the specified link");
```
本页面记录了 `Console` 对象上的[方法](#方法)并给出了几个 [Usage](#usage) (用例)。
@@ -143,7 +143,10 @@ for (var i=0; i<5; i++) {
可以使用 `%c` 为打印内容定义样式:
```js
-console.log("This is %cMy stylish message", "color: yellow; font-style: italic; background-color: blue;padding: 2px");
+console.log(
+ "This is %cMy stylish message",
+ "color: yellow; font-style: italic; background-color: blue;padding: 2px",
+);
```
指令前的文本不会受到影响,但指令后的文本将会使用参数中声明的 CSS 样式。![](css-styling.png)
diff --git a/files/zh-cn/web/api/console/log/index.md b/files/zh-cn/web/api/console/log/index.md
index 769e696482dc77..b14dd46ac23657 100644
--- a/files/zh-cn/web/api/console/log/index.md
+++ b/files/zh-cn/web/api/console/log/index.md
@@ -5,7 +5,7 @@ slug: Web/API/console/log
{{APIRef("Console API")}}
- **`console.log()`** 方法向 Web 控制台输出一条信息。这条信息可能是单个字符串(包括可选的替代字符串),也可能是一个或多个对象。
+**`console.log()`** 方法向 Web 控制台输出一条信息。这条信息可能是单个字符串(包括可选的替代字符串),也可能是一个或多个对象。
{{AvailableInWorkers}}
diff --git a/files/zh-cn/web/api/console/table/index.md b/files/zh-cn/web/api/console/table/index.md
index 7ce0c825826b70..cef454ea915019 100644
--- a/files/zh-cn/web/api/console/table/index.md
+++ b/files/zh-cn/web/api/console/table/index.md
@@ -49,7 +49,11 @@ console.table(me);
```js
// 二元数组的打印
-var people = [["John", "Smith"], ["Jane", "Doe"], ["Emily", "Jones"]]
+var people = [
+ ["John", "Smith"],
+ ["Jane", "Doe"],
+ ["Emily", "Jones"],
+];
console.table(people);
```
diff --git a/files/zh-cn/web/api/console_api/index.md b/files/zh-cn/web/api/console_api/index.md
index 3956c782c0ccf4..6a58bf346e3482 100644
--- a/files/zh-cn/web/api/console_api/index.md
+++ b/files/zh-cn/web/api/console_api/index.md
@@ -26,10 +26,10 @@ Console API 最初是一个专有的 API,不同的浏览器以自己的实现
## 示例
```js
-let myString = 'Hello world';
+let myString = "Hello world";
// Output "Hello world" to the console
-console.log(myString)
+console.log(myString);
```
到[Console reference page](/zh-CN/docs/Web/API/Console#Usage)查看更多示例
diff --git a/files/zh-cn/web/api/contentvisibilityautostatechangeevent/index.md b/files/zh-cn/web/api/contentvisibilityautostatechangeevent/index.md
index 5299eb03fb0fa0..7a0cecc590ef24 100644
--- a/files/zh-cn/web/api/contentvisibilityautostatechangeevent/index.md
+++ b/files/zh-cn/web/api/contentvisibilityautostatechangeevent/index.md
@@ -20,7 +20,7 @@ slug: Web/API/ContentVisibilityAutoStateChangeEvent
## 实例属性
-*从其父接口 {{DOMxRef("Event")}} 继承属性。*
+_从其父接口 {{DOMxRef("Event")}} 继承属性。_
- {{domxref("ContentVisibilityAutoStateChangeEvent.skipped", "skipped")}} {{ReadOnlyInline}}
- : 如果用户代理正在跳过元素的渲染则返回 `true`,否则返回 `false`。
@@ -28,9 +28,9 @@ slug: Web/API/ContentVisibilityAutoStateChangeEvent
## 示例
```js
-const canvasElem = document.querySelector('canvas');
+const canvasElem = document.querySelector("canvas");
-canvasElem.addEventListener('contentvisibilityautostatechange', stateChanged);
+canvasElem.addEventListener("contentvisibilityautostatechange", stateChanged);
canvasElem.style.contentVisibility = "auto";
function stateChanged(event) {
diff --git a/files/zh-cn/web/api/countqueuingstrategy/countqueuingstrategy/index.md b/files/zh-cn/web/api/countqueuingstrategy/countqueuingstrategy/index.md
index 8322374d5df7c6..5c53adec806e1e 100644
--- a/files/zh-cn/web/api/countqueuingstrategy/countqueuingstrategy/index.md
+++ b/files/zh-cn/web/api/countqueuingstrategy/countqueuingstrategy/index.md
@@ -9,7 +9,7 @@ slug: Web/API/CountQueuingStrategy/CountQueuingStrategy
## 语法
-```js
+```js-nolint
new CountQueuingStrategy(highWaterMark)
```
@@ -31,18 +31,21 @@ new CountQueuingStrategy(highWaterMark)
```js
const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
-const writableStream = new WritableStream({
- // Implement the sink
- write(chunk) {
- // …
- },
- close() {
- // …
+const writableStream = new WritableStream(
+ {
+ // Implement the sink
+ write(chunk) {
+ // …
+ },
+ close() {
+ // …
+ },
+ abort(err) {
+ console.log("Sink error:", err);
+ },
},
- abort(err) {
- console.log("Sink error:", err);
- }
-}, queuingStrategy);
+ queuingStrategy,
+);
const size = queuingStrategy.size();
```
diff --git a/files/zh-cn/web/api/countqueuingstrategy/highwatermark/index.md b/files/zh-cn/web/api/countqueuingstrategy/highwatermark/index.md
index e19047864ca2fe..12b764a631adfa 100644
--- a/files/zh-cn/web/api/countqueuingstrategy/highwatermark/index.md
+++ b/files/zh-cn/web/api/countqueuingstrategy/highwatermark/index.md
@@ -28,7 +28,7 @@ const readableStream = new ReadableStream(
console.log("stream error:", err);
},
},
- queuingStrategy
+ queuingStrategy,
);
const size = queuingStrategy.size(chunk);
diff --git a/files/zh-cn/web/api/countqueuingstrategy/index.md b/files/zh-cn/web/api/countqueuingstrategy/index.md
index 6fdd2339c4d086..4e8d51bca011d1 100644
--- a/files/zh-cn/web/api/countqueuingstrategy/index.md
+++ b/files/zh-cn/web/api/countqueuingstrategy/index.md
@@ -27,18 +27,21 @@ slug: Web/API/CountQueuingStrategy
```js
const queueingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
-const writableStream = new WritableStream({
- // Implement the sink
- write(chunk) {
- // …
+const writableStream = new WritableStream(
+ {
+ // Implement the sink
+ write(chunk) {
+ // …
+ },
+ close() {
+ // …
+ },
+ abort(err) {
+ console.log("Sink error:", err);
+ },
},
- close() {
- // …
- },
- abort(err) {
- console.log("Sink error:", err);
- }
-}, queueingStrategy);
+ queueingStrategy,
+);
const size = queueingStrategy.size();
```
diff --git a/files/zh-cn/web/api/countqueuingstrategy/size/index.md b/files/zh-cn/web/api/countqueuingstrategy/size/index.md
index 818f98ff56e885..61a9086a8336aa 100644
--- a/files/zh-cn/web/api/countqueuingstrategy/size/index.md
+++ b/files/zh-cn/web/api/countqueuingstrategy/size/index.md
@@ -9,7 +9,7 @@ slug: Web/API/CountQueuingStrategy/size
## 语法
-```js
+```js-nolint
size()
```
@@ -26,18 +26,21 @@ size()
```js
const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });
-const writableStream = new WritableStream({
- // Implement the sink
- write(chunk) {
- // …
- },
- close() {
- // …
+const writableStream = new WritableStream(
+ {
+ // Implement the sink
+ write(chunk) {
+ // …
+ },
+ close() {
+ // …
+ },
+ abort(err) {
+ console.log("Sink error:", err);
+ },
},
- abort(err) {
- console.log("Sink error:", err);
- }
-}, queuingStrategy);
+ queuingStrategy,
+);
const size = queuingStrategy.size();
```
diff --git a/files/zh-cn/web/api/createimagebitmap/index.md b/files/zh-cn/web/api/createimagebitmap/index.md
index f1f8f455cc781c..397b7ed02c46f3 100644
--- a/files/zh-cn/web/api/createimagebitmap/index.md
+++ b/files/zh-cn/web/api/createimagebitmap/index.md
@@ -44,21 +44,21 @@ createImageBitmap(image, sx, sy, sw, sh[, options]).then(function(response) { ..
## Example
```js
-var canvas = document.getElementById('myCanvas'),
-ctx = canvas.getContext('2d'),
-image = new Image();
+var canvas = document.getElementById("myCanvas"),
+ ctx = canvas.getContext("2d"),
+ image = new Image();
-image.onload = function() {
+image.onload = function () {
Promise.all([
createImageBitmap(this, 0, 0, 32, 32),
- createImageBitmap(this, 32, 0, 32, 32)
- ]).then(function(sprites) {
+ createImageBitmap(this, 32, 0, 32, 32),
+ ]).then(function (sprites) {
ctx.drawImage(sprites[0], 0, 0);
ctx.drawImage(sprites[1], 32, 32);
});
-}
+};
-image.src = 'sprites.png';
+image.src = "sprites.png";
```
## Specifications
diff --git a/files/zh-cn/web/api/crossoriginisolated/index.md b/files/zh-cn/web/api/crossoriginisolated/index.md
index a707f61b18b505..4d33121291f379 100644
--- a/files/zh-cn/web/api/crossoriginisolated/index.md
+++ b/files/zh-cn/web/api/crossoriginisolated/index.md
@@ -22,7 +22,7 @@ var myCrossOriginIsolated = self.crossOriginIsolated; // 或直接 crossOriginIs
## 示例
```js
-if(crossOriginIsolated) {
+if (crossOriginIsolated) {
// post SharedArrayBuffer
} else {
// Do something else
diff --git a/files/zh-cn/web/api/crypto/getrandomvalues/index.md b/files/zh-cn/web/api/crypto/getrandomvalues/index.md
index a057cf8b5a69f8..60b09aea8fb252 100644
--- a/files/zh-cn/web/api/crypto/getrandomvalues/index.md
+++ b/files/zh-cn/web/api/crypto/getrandomvalues/index.md
@@ -35,7 +35,7 @@ window.crypto.getRandomValues(array);
console.log("Your lucky numbers:");
for (var i = 0; i < array.length; i++) {
- console.log(array[i]);
+ console.log(array[i]);
}
```
diff --git a/files/zh-cn/web/api/crypto_property/index.md b/files/zh-cn/web/api/crypto_property/index.md
index daeb0683590c89..6961a8db1b778a 100644
--- a/files/zh-cn/web/api/crypto_property/index.md
+++ b/files/zh-cn/web/api/crypto_property/index.md
@@ -35,9 +35,7 @@ globalThis.genRandomNumbers = () => {
```html
随机数为:
-
- 生成 10 个随机数
-
+生成 10 个随机数
```
### 结果
diff --git a/files/zh-cn/web/api/cryptokey/index.md b/files/zh-cn/web/api/cryptokey/index.md
index c8893273a49078..c77a8dce12e1c1 100644
--- a/files/zh-cn/web/api/cryptokey/index.md
+++ b/files/zh-cn/web/api/cryptokey/index.md
@@ -12,6 +12,7 @@ slug: Web/API/CryptoKey
## 实例属性
- `CryptoKey.type`
+
- : 返回一个表示密钥类型的字符串,可使用以下值:
- `"secret"`:为密钥(secret key),用于{{Glossary("Symmetric-key cryptography", "对称加密算法")}}。
@@ -19,12 +20,14 @@ slug: Web/API/CryptoKey
- `"public"`:为{{Glossary("Public-key cryptography", "非对称加密算法")}}的 [`CryptoKeyPair`](/zh-CN/docs/Web/API/CryptoKeyPair) 的公钥(public key)部分。
- `CryptoKey.extractable`
+
- : 一个布尔值,表示原始信息是否能使用 [`SubtleCrypto.exportKey()`](/zh-CN/docs/Web/API/SubtleCrypto/exportKey) 或 [`SubtleCrypto.wrapKey()`](/zh-CN/docs/Web/API/SubtleCrypto/wrapKey) 导出。
- `true`:密钥可以导出。
- `false`:密钥不能导出。使用 [`exportKey()`](/zh-CN/docs/Web/API/SubtleCrypto/exportKey) 或 [`wrapKey()`](/zh-CN/docs/Web/API/SubtleCrypto/wrapKey) 方法来导出此密钥将会抛出异常。
- `CryptoKey.algorithm`
+
- : 一个描述可使用此密钥的算法及任何关联的额外参数的对象。
- [`AesKeyGenParams`](/zh-CN/docs/Web/API/AesKeyGenParams) 如果算法是任意高级加密标准(AES)的变体。
@@ -33,6 +36,7 @@ slug: Web/API/CryptoKey
- [`HmacKeyGenParams`](/zh-CN/docs/Web/API/HmacKeyGenParams) 如果算法是任意密钥散列消息认证码(HMAC)的变体。
- `CryptoKey.usages`
+
- : 一个字符串的{{jsxref("Array", "数组", "", 1)}},指明密钥的用途。数组元素可能的值有:
- `"encrypt"`:密钥可用于{{domxref("SubtleCrypto.encrypt()", "加密", "", 1)}}消息。
diff --git a/files/zh-cn/web/api/css/escape_static/index.md b/files/zh-cn/web/api/css/escape_static/index.md
index 3ee66eb42db2d9..c600bfe15173bc 100644
--- a/files/zh-cn/web/api/css/escape_static/index.md
+++ b/files/zh-cn/web/api/css/escape_static/index.md
@@ -24,11 +24,11 @@ escapedStr = CSS.escape(str);
### 基本结果
```js
-CSS.escape(".foo#bar") // "\.foo\#bar"
-CSS.escape("()[]{}") // "\(\)\[\]\\{\\}"
-CSS.escape('--a') // "--a"
-CSS.escape(0) // "\30 ", Unicode 代码点“0”是 30
-CSS.escape('\0') // "\ufffd", Unicode 替换字符
+CSS.escape(".foo#bar"); // "\.foo\#bar"
+CSS.escape("()[]{}"); // "\(\)\[\]\\{\\}"
+CSS.escape("--a"); // "--a"
+CSS.escape(0); // "\30 ", Unicode 代码点“0”是 30
+CSS.escape("\0"); // "\ufffd", Unicode 替换字符
```
### 在上下文使用
@@ -36,7 +36,7 @@ CSS.escape('\0') // "\ufffd", Unicode 替换字符
要转义一个字符串作为选择器使用, `escape()`方法可以用于:
```js
-var element = document.querySelector('#' + CSS.escape(id) + ' > img');
+var element = document.querySelector("#" + CSS.escape(id) + " > img");
```
`escape()`方法也可以用于转义字符串,它也转义了不严格需要转义的字符:
diff --git a/files/zh-cn/web/api/css/factory_functions_static/index.md b/files/zh-cn/web/api/css/factory_functions_static/index.md
index 71cfd02a300370..968c628c38c9af 100644
--- a/files/zh-cn/web/api/css/factory_functions_static/index.md
+++ b/files/zh-cn/web/api/css/factory_functions_static/index.md
@@ -64,16 +64,16 @@ CSS.fr(number);
```js
let height = CSS.vmax(50);
-console.log( height ); // CSSUnitValue {value: 50, unit: "vmax"}
-console.log( height.value ) // 50
-console.log( height.unit ) // vmax
+console.log(height); // CSSUnitValue {value: 50, unit: "vmax"}
+console.log(height.value); // 50
+console.log(height.unit); // vmax
```
在这个例子中,我们给元素设定 margin 属性值,使用 `CSS.px()` 函数:
```js
-myElement.attributeStyleMap.set('margin', CSS.px(40));
-let currentMargin = myElement.attributeStyleMap.get('margin');
+myElement.attributeStyleMap.set("margin", CSS.px(40));
+let currentMargin = myElement.attributeStyleMap.get("margin");
console.log(currentMargin.value, currentMargin.unit); // 40, 'px'
```
diff --git a/files/zh-cn/web/api/css/supports_static/index.md b/files/zh-cn/web/api/css/supports_static/index.md
index 335f05c2815d0b..1fbda172fffcb3 100644
--- a/files/zh-cn/web/api/css/supports_static/index.md
+++ b/files/zh-cn/web/api/css/supports_static/index.md
@@ -34,11 +34,13 @@ boolValue = CSS.supports(supportCondition);
```js
result = CSS.supports("text-decoration-style", "blink");
result = CSS.supports("display", "flex");
-result = CSS.supports('--foo', 'red');
-result = CSS.supports('(--foo: red)');
+result = CSS.supports("--foo", "red");
+result = CSS.supports("(--foo: red)");
result = CSS.supports("( transform-origin: 5% 5% )");
-result = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or " +
- "( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )" );
+result = CSS.supports(
+ "( transform-style: preserve ) or ( -moz-transform-style: preserve ) or " +
+ "( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )",
+);
//result is true or false
```
diff --git a/files/zh-cn/web/api/css_custom_highlight_api/index.md b/files/zh-cn/web/api/css_custom_highlight_api/index.md
index 3ca8c9fb92a5e5..7288189969c6b1 100644
--- a/files/zh-cn/web/api/css_custom_highlight_api/index.md
+++ b/files/zh-cn/web/api/css_custom_highlight_api/index.md
@@ -109,25 +109,25 @@ CSS.highlights.clear();
下面的 HTML 代码片段定义了一个搜索框和有几段文字的文章:
```html
-Search within text
+Search within text
Maxime debitis hic, delectus perspiciatis laborum molestiae labore,
- deleniti, quam consequatur iure veniam alias voluptas nisi quo.
- Dolorem eaque alias, quo vel quas repudiandae architecto deserunt
- quidem, sapiente laudantium nulla.
+ deleniti, quam consequatur iure veniam alias voluptas nisi quo. Dolorem
+ eaque alias, quo vel quas repudiandae architecto deserunt quidem, sapiente
+ laudantium nulla.
- Maiores odit molestias, necessitatibus doloremque dolor illum
- reprehenderit provident nostrum laboriosam iste, tempore perferendis!
- Ab porro neque esse voluptas libero necessitatibus fugiat, ex, minus
- atque deserunt veniam molestiae tempora? Vitae.
+ Maiores odit molestias, necessitatibus doloremque dolor illum reprehenderit
+ provident nostrum laboriosam iste, tempore perferendis! Ab porro neque esse
+ voluptas libero necessitatibus fugiat, ex, minus atque deserunt veniam
+ molestiae tempora? Vitae.
- Dolorum facilis voluptate eaque eius similique ducimus dignissimos
- assumenda quos architecto. Doloremque deleniti non exercitationem
- rerum quam alias harum, nisi obcaecati corporis temporibus vero sapiente
- voluptatum est quibusdam id ipsa.
+ Dolorum facilis voluptate eaque eius similique ducimus dignissimos assumenda
+ quos architecto. Doloremque deleniti non exercitationem rerum quam alias
+ harum, nisi obcaecati corporis temporibus vero sapiente voluptatum est
+ quibusdam id ipsa.
```
@@ -159,7 +159,7 @@ query.addEventListener("input", () => {
return;
}
- // Clear the HighlightRegistry to remove the
+ // Clear the HighlightRegistry to remove the
// previous search results.
CSS.highlights.clear();
@@ -185,7 +185,7 @@ query.addEventListener("input", () => {
startPos = index + str.length;
}
- // Create a range object for each instance of
+ // Create a range object for each instance of
// str we found in the text node.
return indices.map((index) => {
const range = new Range();
diff --git a/files/zh-cn/web/api/css_font_loading_api/index.md b/files/zh-cn/web/api/css_font_loading_api/index.md
index 3b570877da3c51..6f8ffd5ffe8e9b 100644
--- a/files/zh-cn/web/api/css_font_loading_api/index.md
+++ b/files/zh-cn/web/api/css_font_loading_api/index.md
@@ -120,7 +120,7 @@ canvas.height = 75;
```js
const bitterFontFace = new FontFace(
"FontFamily Bitter",
- "url(https://fonts.gstatic.com/s/bitter/v7/HEpP8tJXlWaYHimsnXgfCOvvDin1pK8aKteLpeZ5c0A.woff2)"
+ "url(https://fonts.gstatic.com/s/bitter/v7/HEpP8tJXlWaYHimsnXgfCOvvDin1pK8aKteLpeZ5c0A.woff2)",
);
document.fonts.add(bitterFontFace);
log.textContent += `Bitter font: ${bitterFontFace.status}\n`; // > Bitter font: unloaded
@@ -139,7 +139,7 @@ bitterFontFace.load().then(
},
(err) => {
console.error(err);
- }
+ },
);
```
@@ -176,7 +176,7 @@ const ctx = canvas.getContext("2d");
const oxygenFontFace = new FontFace(
"FontFamily Oxygen",
- "url(https://fonts.gstatic.com/s/oxygen/v5/qBSyz106i5ud7wkBU-FrPevvDin1pK8aKteLpeZ5c0A.woff2)"
+ "url(https://fonts.gstatic.com/s/oxygen/v5/qBSyz106i5ud7wkBU-FrPevvDin1pK8aKteLpeZ5c0A.woff2)",
);
document.fonts.add(oxygenFontFace);
log.textContent += `Oxygen status: ${oxygenFontFace.status}\n`;
@@ -194,7 +194,7 @@ document.fonts.load("36px FontFamily Oxygen").then(
},
(err) => {
console.error(err);
- }
+ },
);
```
diff --git a/files/zh-cn/web/api/css_object_model/using_dynamic_styling_information/index.md b/files/zh-cn/web/api/css_object_model/using_dynamic_styling_information/index.md
index 2fea78af708464..adc45e24fddd7f 100644
--- a/files/zh-cn/web/api/css_object_model/using_dynamic_styling_information/index.md
+++ b/files/zh-cn/web/api/css_object_model/using_dynamic_styling_information/index.md
@@ -17,21 +17,22 @@ CSS 对象模型(CSSOM),是 DOM 的一部分,通过暴露一些接口,
```html
-
-Modifying a stylesheet rule with CSSOM
-
-
-
-
-The stylesheet declaration for the body's background color is modified via JavaScript.
-
+
+ Modifying a stylesheet rule with CSSOM
+
+
+
+
+ The stylesheet declaration for the body's background color is modified via
+ JavaScript.
+
```
@@ -51,39 +52,36 @@ The stylesheet declaration for the body's background color is modified via JavaS
```html
-
-simple style example
-
-
-
-
-
-
-
-
-
-
- Click here to change background color.
-
-
-
-Reset background color
-
-
+
+ simple style example
+
+
+
+
+
+
+
+
+
+ Click here to change background color.
+
+
+
+ Reset background color
+
```
@@ -98,26 +96,26 @@ function resetStyle(elemId) {
比这两个属性更重要的是使用 `style` 对象来给某个元素设置单独的样式属性。
```html
-
+
-
- style Property Example
-
-
-
-
-
- Thunder
- Click here to change text color
- Reset text color
-
+
+ style Property Example
+
+
+
+
+
+ Thunder
+ Click here to change text color
+ Reset text color
+
```
@@ -130,8 +128,8 @@ style 的 media 和 type 给不给出都可以。
注意,你也可以通过获得元素的引用,然后使用它的 [`setAttribute`](/zh-CN/DOM/element.setAttribute) 方法,指定 CSS 属性和值,来改变该元素的样式。
```js
-var el = document.getElementById('some-element');
-el.setAttribute('style', 'background-color:darkblue;');
+var el = document.getElementById("some-element");
+el.setAttribute("style", "background-color:darkblue;");
```
但请注意,`setAttribute` 会移除该元素样式对象中已经定义的其他样式属性。如果上面的 `some-element` 有一个行内样式属性:`style="font-size: 18px"`,其值将会因为使用了 `setAttribute` 方法而被移除。
diff --git a/files/zh-cn/web/api/cssrule/csstext/index.md b/files/zh-cn/web/api/cssrule/csstext/index.md
index a5a3cbc516a27c..1e2d20f41842f5 100644
--- a/files/zh-cn/web/api/cssrule/csstext/index.md
+++ b/files/zh-cn/web/api/cssrule/csstext/index.md
@@ -17,7 +17,9 @@ string = cssRule.cssText
```html
@@ -423,36 +438,41 @@ form.onsubmit = function(e) {
-
-
- Your browser doesn't support HTML5 video. Here is a link to the video instead.
+
+
+
+ Your browser doesn't support HTML5 video. Here is a
+ link to the video instead.
+
@@ -361,17 +373,17 @@ div {
さあちょっとした JavaScript です — ここでは [onsubmit](/ja/docs/Web/API/GlobalEventHandlers/onsubmit) イベントハンドラー(フォームがサブミットされるとサブミットイベントが発火します)の中で、テキストフィールドが空かどうかテストするだけのとても簡単なチェックを実装します。もし空なら、イベントオブジェクトの [`preventDefault()`](/ja/docs/Web/API/Event/preventDefault) 関数— これでフォームの送信を抑制します — を呼び、それからフォームの下にあるパラグラフに、何が問題なのかユーザーに伝えるためのエラーメッセージを表示します:
```js
-const form = document.querySelector('form');
-const fname = document.getElementById('fname');
-const lname = document.getElementById('lname');
-const para = document.querySelector('p');
+const form = document.querySelector("form");
+const fname = document.getElementById("fname");
+const lname = document.getElementById("lname");
+const para = document.querySelector("p");
-form.onsubmit = function(e) {
- if (fname.value === '' || lname.value === '') {
+form.onsubmit = function (e) {
+ if (fname.value === "" || lname.value === "") {
e.preventDefault();
- para.textContent = 'You need to fill in both names!';
+ para.textContent = "You need to fill in both names!";
}
-}
+};
```
言うまでもなく弱っちいフォームの検証です — 例えばフォームに空白や数字が入っていても止められません — が、例としては十分です。結果はこうなります。
@@ -385,21 +397,25 @@ form.onsubmit = function(e) {
ここで最後に説明していくのは、滅多には遭遇しませんが、理解できていないととても苦痛になるかもしれない事柄です。ある一つの要素で同じイベントに紐付く二つのハンドラが活性化された時に何が起きるのかを説明するのが、イベントのバブリングとキャプチャリングという二種類のメカニズムです。わかりやすくするために次の例を見てください — [show-video-box.html](http://mdn.github.io/learning-area/javascript/building-blocks/events/show-video-box.html) 例を新しいタブで開いてください ([ソースコード](https://github.com/mdn/learning-area/blob/master/javascript/building-blocks/events/show-video-box.html) もまた別のタブに)。ライブでも下で見られます:
```html hidden
-
+