i18n
This commit is contained in:
parent
c7ccbbe38c
commit
40338166e4
|
|
@ -7,7 +7,7 @@
|
||||||
"locale": "en-US",
|
"locale": "en-US",
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"24e0ef76",
|
"24e0ef76",
|
||||||
"d8dd99d0",
|
"a5e33e98",
|
||||||
"4f0541a4",
|
"4f0541a4",
|
||||||
"3aa3e4a9",
|
"3aa3e4a9",
|
||||||
"210bb734",
|
"210bb734",
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
"targets": {
|
"targets": {
|
||||||
"zh-CN": [
|
"zh-CN": [
|
||||||
"24e0ef76",
|
"24e0ef76",
|
||||||
"d8dd99d0",
|
"a5e33e98",
|
||||||
"4f0541a4",
|
"4f0541a4",
|
||||||
"3aa3e4a9",
|
"3aa3e4a9",
|
||||||
"210bb734",
|
"210bb734",
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ title: 描述块格式化上下文 (BFC) 及其工作原理。
|
||||||
|
|
||||||
块格式化上下文 (BFC) 是网页视觉 CSS 渲染的一部分,其中会布局块级盒子。浮动、绝对定位的元素、`inline-blocks`、`table-cells`、`table-caption` 以及 `overflow` 值不为 `visible` 的元素(除非该值已传播到视口)会建立新的块格式化上下文。
|
块格式化上下文 (BFC) 是网页视觉 CSS 渲染的一部分,其中会布局块级盒子。浮动、绝对定位的元素、`inline-blocks`、`table-cells`、`table-caption` 以及 `overflow` 值不为 `visible` 的元素(除非该值已传播到视口)会建立新的块格式化上下文。
|
||||||
|
|
||||||
了解如何建立块格式化上下文非常重要,因为如果不这样做,包含框将无法[包含浮动子元素](https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context#Make_float_content_and_alongside_content_the_same_height)。这类似于折叠外边距,但更隐蔽,因为您会发现整个盒子以奇怪的方式折叠。
|
了解如何建立块格式化上下文非常重要,因为如果不这样做,包含框将不会[包含浮动子元素](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_display/Block_formatting_context#Make_float_content_and_alongside_content_the_same_height)。这类似于折叠边距,但更隐蔽,因为您会发现整个框以奇怪的方式折叠。
|
||||||
|
|
||||||
BFC 是满足以下至少一个条件的 HTML 盒子:
|
BFC 是满足以下至少一个条件的 HTML 盒子:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
"484452a7",
|
"484452a7",
|
||||||
"69b0449b",
|
"69b0449b",
|
||||||
"e2e457bf",
|
"e2e457bf",
|
||||||
"590313ad"
|
"78d41d72"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
"484452a7",
|
"484452a7",
|
||||||
"69b0449b",
|
"69b0449b",
|
||||||
"e2e457bf",
|
"e2e457bf",
|
||||||
"590313ad"
|
"78d41d72"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,4 +10,4 @@ CSS 中的 `z-index` 属性控制重叠元素的垂直堆叠顺序。`z-index`
|
||||||
|
|
||||||
每个堆叠上下文都是自包含的 - 在元素的content堆叠后,整个元素被认为在父堆叠上下文的堆叠顺序中。少数 CSS 属性会触发新的堆叠上下文,例如 `opacity` 小于 1、不是 `none` 的 `filter` 以及不是 `none` 的 `transform`。
|
每个堆叠上下文都是自包含的 - 在元素的content堆叠后,整个元素被认为在父堆叠上下文的堆叠顺序中。少数 CSS 属性会触发新的堆叠上下文,例如 `opacity` 小于 1、不是 `none` 的 `filter` 以及不是 `none` 的 `transform`。
|
||||||
|
|
||||||
***注意**:确切地说,什么使一个元素能够创建堆叠上下文列在这个长长的 [规则](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context#The_stacking_context) 集中。*
|
***注意***:确切地说,什么元素有资格创建堆叠上下文,列在[规则](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_positioned_layout/Stacking_context#The_stacking_context)的这一长串中。
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,14 @@
|
||||||
"locale": "en-US",
|
"locale": "en-US",
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"6d0b1708",
|
"6d0b1708",
|
||||||
"3962b7fd",
|
"933f50c6",
|
||||||
"52953744"
|
"52953744"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
"zh-CN": [
|
"zh-CN": [
|
||||||
"6d0b1708",
|
"6d0b1708",
|
||||||
"3962b7fd",
|
"933f50c6",
|
||||||
"52953744"
|
"52953744"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@ title: 编写高效 CSS 时需要注意哪些“陷阱”?
|
||||||
|
|
||||||
首先,了解浏览器从最右侧(关键选择器)到左侧匹配选择器。 浏览器根据关键选择器过滤 DOM 中的元素,并遍历其父元素以确定匹配项。 选择器链的长度越短,浏览器确定该元素是否与选择器匹配的速度就越快。 因此,避免使用标签和通用选择器作为关键选择器。 它们匹配大量元素,浏览器将不得不做更多的工作来确定父元素是否匹配。
|
首先,了解浏览器从最右侧(关键选择器)到左侧匹配选择器。 浏览器根据关键选择器过滤 DOM 中的元素,并遍历其父元素以确定匹配项。 选择器链的长度越短,浏览器确定该元素是否与选择器匹配的速度就越快。 因此,避免使用标签和通用选择器作为关键选择器。 它们匹配大量元素,浏览器将不得不做更多的工作来确定父元素是否匹配。
|
||||||
|
|
||||||
[BEM (Block Element Modifier)](https://bem.info/) 方法建议所有内容都使用单个类,并且在需要层次结构时,将其也融入到类的名称中,这自然使选择器高效且易于覆盖。
|
[BEM (Block Element Modifier)](https://en.bem.info/) 方法建议所有内容都使用单个类,并且在需要层级结构时,将其也融入到类的名称中,这自然使选择器高效且易于覆盖。
|
||||||
|
|
||||||
注意哪些 CSS 属性会[触发](https://csstriggers.com/)回流、重绘和合成。 尽可能避免编写更改布局(触发回流)的样式。
|
注意哪些 CSS 属性会[触发](https://csstriggers.com/)回流、重绘和合成。 尽可能避免编写更改布局(触发回流)的样式。
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
"e25efb62",
|
"e25efb62",
|
||||||
"c858c20a",
|
"c858c20a",
|
||||||
"a11dd609",
|
"a11dd609",
|
||||||
"c7cbc2dc"
|
"55504b24"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
"e25efb62",
|
"e25efb62",
|
||||||
"c858c20a",
|
"c858c20a",
|
||||||
"a11dd609",
|
"a11dd609",
|
||||||
"c7cbc2dc"
|
"55504b24"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,5 +13,5 @@ title: 使用 CSS 预处理器的优缺点是什么?
|
||||||
|
|
||||||
## 缺点
|
## 缺点
|
||||||
|
|
||||||
* 需要用于预处理的工具。重新编译时间可能很慢。
|
* 需要预处理工具。重新编译时间可能较慢。
|
||||||
* 没有编写当前和潜在可用的 CSS。例如,通过将 [postcss-loader](https://github.com/postcss/postcss-loader) 与 [webpack](https://webpack.js.org/) 结合使用,您可以编写潜在的未来兼容的 CSS,允许您使用 CSS 变量而不是 Sass 变量。因此,您正在学习新的语法,如果/当它们标准化时,可能会有所回报。
|
* 没有编写当前和潜在可用的 CSS。例如,通过使用类似 [postcss-loader](https://github.com/webpack-contrib/postcss-loader) 与 [webpack](https://webpack.js.org/),您可以编写潜在的未来兼容 CSS,允许您使用 CSS 变量而不是 Sass 变量。因此,您正在学习新的语法,如果/当它们标准化时,可能会有所回报。
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
"eecd3ae",
|
"eecd3ae",
|
||||||
"6ea9ce95",
|
"6ea9ce95",
|
||||||
"ded85000",
|
"ded85000",
|
||||||
"c85f64a5",
|
"30023876",
|
||||||
"443b8932",
|
"443b8932",
|
||||||
"5a4df967"
|
"5a4df967"
|
||||||
]
|
]
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
"eecd3ae",
|
"eecd3ae",
|
||||||
"6ea9ce95",
|
"6ea9ce95",
|
||||||
"ded85000",
|
"ded85000",
|
||||||
"c85f64a5",
|
"30023876",
|
||||||
"443b8932",
|
"443b8932",
|
||||||
"5a4df967"
|
"5a4df967"
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ title: 什么是渐进式渲染?
|
||||||
|
|
||||||
页面上的图片不会一次性全部加载。只有当用户滚动到显示图片的页面部分或附近时,才会加载图片。
|
页面上的图片不会一次性全部加载。只有当用户滚动到显示图片的页面部分或附近时,才会加载图片。
|
||||||
|
|
||||||
* `<img loading="lazy">` 是一种现代方式,指示浏览器推迟加载屏幕外的图像,直到用户滚动到它们附近。
|
* `<img loading="lazy">` 是一种现代方式,指示浏览器推迟加载屏幕外的图像,直到用户滚动到它们附近。
|
||||||
* 使用 JavaScript 监视滚动位置,并在图像即将出现在屏幕上时加载图像(通过将图像的坐标与滚动位置进行比较)。
|
* 使用 JavaScript 监视滚动位置,并在图像即将出现在屏幕上时加载图像(通过将图像的坐标与滚动位置进行比较)。
|
||||||
|
|
||||||
## 优先显示可见内容(或首屏渲染)
|
## 优先显示可见内容(或首屏渲染)
|
||||||
|
|
||||||
|
|
@ -19,10 +19,10 @@ title: 什么是渐进式渲染?
|
||||||
|
|
||||||
## 异步 HTML 片段
|
## 异步 HTML 片段
|
||||||
|
|
||||||
在后端构建页面时,将 HTML 的部分内容刷新到浏览器。有关该技术的更多详细信息,请参见 [此处](http://www.ebaytechblog.com/2014/12/08/async-fragments-rediscovering-progressive-html-rendering-with-marko/)。
|
在后端构建页面时,将 HTML 的部分内容刷新到浏览器。有关该技术的更多详细信息,请参阅[此处](https://innovation.ebayinc.com/stories/async-fragments-rediscovering-progressive-html-rendering-with-marko/)。
|
||||||
|
|
||||||
## 其他现代技术
|
## 其他现代技术
|
||||||
|
|
||||||
* [渐进式水合](https://www.patterns.dev/posts/progressive-hydration/)
|
* [渐进式水合](https://www.patterns.dev/posts/progressive-hydration/)
|
||||||
* [流式服务器端渲染](https://www.patterns.dev/posts/server-side-rendering/)
|
* [流式服务器端渲染](https://www.patterns.dev/posts/server-side-rendering/)
|
||||||
* [选择性水合](https://www.patterns.dev/posts/react-selective-hydration/)
|
* [选择性水合](https://www.patterns.dev/posts/react-selective-hydration/)
|
||||||
|
|
|
||||||
|
|
@ -45,13 +45,13 @@
|
||||||
"1ddef267",
|
"1ddef267",
|
||||||
"4ad4768c",
|
"4ad4768c",
|
||||||
"d285b3fe",
|
"d285b3fe",
|
||||||
"541779b3",
|
"4465ef87",
|
||||||
"72a425a0",
|
"72a425a0",
|
||||||
"fd1895ea",
|
"fd1895ea",
|
||||||
"a487747f",
|
"a487747f",
|
||||||
"db3e31c0",
|
"db3e31c0",
|
||||||
"ee461b59",
|
"ee461b59",
|
||||||
"c1cb66d8",
|
"f1ccb409",
|
||||||
"2a7816d0",
|
"2a7816d0",
|
||||||
"806201d0",
|
"806201d0",
|
||||||
"9eb452c9"
|
"9eb452c9"
|
||||||
|
|
@ -97,13 +97,13 @@
|
||||||
"1ddef267",
|
"1ddef267",
|
||||||
"4ad4768c",
|
"4ad4768c",
|
||||||
"d285b3fe",
|
"d285b3fe",
|
||||||
"541779b3",
|
"4465ef87",
|
||||||
"72a425a0",
|
"72a425a0",
|
||||||
"fd1895ea",
|
"fd1895ea",
|
||||||
"a487747f",
|
"a487747f",
|
||||||
"db3e31c0",
|
"db3e31c0",
|
||||||
"ee461b59",
|
"ee461b59",
|
||||||
"c1cb66d8",
|
"f1ccb409",
|
||||||
"2a7816d0",
|
"2a7816d0",
|
||||||
"806201d0",
|
"806201d0",
|
||||||
"9eb452c9"
|
"9eb452c9"
|
||||||
|
|
|
||||||
|
|
@ -97,12 +97,12 @@ React 应用程序经常从 HTTP API 获取数据,并且已经构建了库来
|
||||||
|
|
||||||
React 应用程序通常需要单元测试、集成测试和端到端测试。
|
React 应用程序通常需要单元测试、集成测试和端到端测试。
|
||||||
|
|
||||||
* [Jest](https://jestjs.io): 一个流行的用于单元和集成测试的测试框架
|
* [Jest](https://jestjs.io): 一个流行的单元和集成测试测试框架
|
||||||
* [Vitest](https://vitest.dev): 一个使用 Vite 打包和配置的测试框架
|
* [Vitest](https://vitest.dev): 一个使用 Vite 打包和配置的测试框架
|
||||||
* [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/): 一个以用户为中心的测试库,模拟真实的用户交互
|
* [React Testing Library](https://testing-library.com/docs/react-testing-library/intro/): 一个以用户为中心的测试库,模拟真实的用户交互
|
||||||
* [Storybook](https://storybook.js.org): 用于开发和测试独立 UI 组件的工具
|
* [Storybook](https://storybook.js.org): 用于开发和测试独立 UI 组件的工具
|
||||||
* [Cypress](https://www.cypress.io): 一个流行的用于网站的端到端 (E2E) 测试工具
|
* [Cypress](https://www.cypress.io): 一个流行的网站端到端 (E2E) 测试工具
|
||||||
* [React DevTools](https://react.dev/tools): 用于调试 React 组件的官方浏览器扩展
|
* [React Developer Tools](https://react.dev/learn/react-developer-tools): 用于调试 React 组件的官方浏览器扩展
|
||||||
|
|
||||||
### 打包器
|
### 打包器
|
||||||
|
|
||||||
|
|
@ -118,7 +118,7 @@ React 应用程序通常需要单元测试、集成测试和端到端测试。
|
||||||
|
|
||||||
* [Motion](https://motion.dev/): 一个流行的、功能强大的动画库,具有声明式 API。 以前是 Framer Motion
|
* [Motion](https://motion.dev/): 一个流行的、功能强大的动画库,具有声明式 API。 以前是 Framer Motion
|
||||||
* [React Spring](https://react-spring.dev): 提供流畅的、基于物理的动画
|
* [React Spring](https://react-spring.dev): 提供流畅的、基于物理的动画
|
||||||
* [GSAP (GreenSock)](https://greensock.com/gsap/): 与 React 兼容的高性能 JavaScript 动画库
|
* [GSAP](https://gsap.com/): 一个与 React 兼容的高性能 JavaScript 动画库
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue