@doubao-dev/plugin-app-dev 0.0.0-stage → 0.0.40-canary-dea0ddc73-20261026073950

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +10 -2
  2. package/dist/147.js +9 -0
  3. package/dist/assets.d.ts +5 -0
  4. package/dist/assets.js +4 -0
  5. package/dist/index.d.ts +43 -0
  6. package/dist/index.js +1378 -0
  7. package/dist/plugin.d.ts +102 -0
  8. package/dist/plugin.js +4995 -0
  9. package/dist/preview.js +16 -0
  10. package/dist/rslib-runtime.js +33 -0
  11. package/dist/skills/doubao-plugin-app/SKILL.md +21 -0
  12. package/dist/skills/doubao-plugin-app/references/app-development.md +85 -0
  13. package/dist/skills/doubao-plugin-app/references/frontend/components/container-overlay.md +131 -0
  14. package/dist/skills/doubao-plugin-app/references/frontend/components/form-controls.md +146 -0
  15. package/dist/skills/doubao-plugin-app/references/frontend/components/interactive-controls.md +120 -0
  16. package/dist/skills/doubao-plugin-app/references/frontend/components/map-canvas.md +107 -0
  17. package/dist/skills/doubao-plugin-app/references/frontend/components/overview.md +43 -0
  18. package/dist/skills/doubao-plugin-app/references/frontend/components/scroll-list.md +149 -0
  19. package/dist/skills/doubao-plugin-app/references/frontend/components/text-media.md +209 -0
  20. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/01-/345/237/272/347/241/200.md +1389 -0
  21. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/02-/347/263/273/347/273/237.md +1376 -0
  22. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/03-/350/207/252/345/256/232/344/271/211/351/200/232/344/277/241.md +127 -0
  23. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/04-/345/256/232/344/275/215.md +784 -0
  24. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/05-/345/255/230/345/202/250.md +1176 -0
  25. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/06-/350/267/257/347/224/261.md +839 -0
  26. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/07-/347/225/214/351/235/242.md +376 -0
  27. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/08-/344/272/244/344/272/222.md +1319 -0
  28. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/09-/350/276/223/345/205/245.md +192 -0
  29. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/10-/347/275/221/347/273/234.md +900 -0
  30. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/11-/345/252/222/344/275/223.md +1496 -0
  31. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/12-/344/270/232/345/212/241/350/203/275/345/212/233.md +1281 -0
  32. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/13-/347/231/273/345/275/225.md +511 -0
  33. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/14-/346/224/257/344/273/230.md +943 -0
  34. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/15-/346/225/260/346/215/256/345/210/206/346/236/220.md +124 -0
  35. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/16-/350/223/235/347/211/231.md +3364 -0
  36. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/17-wi-fi.md +1028 -0
  37. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/18-/345/212/240/351/200/237/345/272/246/350/256/241.md +354 -0
  38. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/19-ibeacon.md +508 -0
  39. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/20-/347/275/227/347/233/230.md +320 -0
  40. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/21-/350/256/276/345/244/207/346/226/271/345/220/221.md +351 -0
  41. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/22-/351/231/200/350/236/272/344/273/252.md +354 -0
  42. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/23-/345/252/222/344/275/223-/350/256/276/345/244/207-/347/275/221/347/273/234.md +264 -0
  43. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/24-/347/237/255/344/277/241.md +155 -0
  44. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/25-/346/227/240/351/232/234/347/242/215.md +144 -0
  45. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/26-/345/237/272/347/241/200/344/277/241/346/201/257.md +238 -0
  46. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/27-/347/224/265/346/261/240.md +235 -0
  47. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/28-/345/211/252/350/264/264/346/235/277.md +303 -0
  48. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/29-/345/212/240/345/257/206.md +126 -0
  49. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/30-/346/227/245/345/216/206.md +417 -0
  50. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/31-/347/224/265/350/257/235.md +144 -0
  51. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/32-/346/211/253/347/240/201.md +236 -0
  52. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/33-/345/261/217/345/271/225.md +747 -0
  53. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/34-/351/234/207/345/212/250.md +277 -0
  54. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/35-/346/226/207/344/273/266/347/263/273/347/273/237.md +431 -0
  55. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/common-errors.md +69 -0
  56. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/groups.md +43 -0
  57. package/dist/skills/doubao-plugin-app/references/frontend/doubao-agentic-service-api/quick-reference.md +436 -0
  58. package/dist/skills/doubao-plugin-app/references/frontend/examples/common-patterns.md +590 -0
  59. package/dist/skills/doubao-plugin-app/references/frontend/examples/doubao-agentic-service-api-recipes.md +209 -0
  60. package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-basics.md +368 -0
  61. package/dist/skills/doubao-plugin-app/references/frontend/examples/page-widget-recipes.md +65 -0
  62. package/dist/skills/doubao-plugin-app/references/frontend/framework/core.md +283 -0
  63. package/dist/skills/doubao-plugin-app/references/frontend/guides/auth.md +277 -0
  64. package/dist/skills/doubao-plugin-app/references/frontend/guides/best-practices.md +574 -0
  65. package/dist/skills/doubao-plugin-app/references/frontend/guides/client-tools-and-events.md +209 -0
  66. package/dist/skills/doubao-plugin-app/references/frontend/guides/component-development.md +832 -0
  67. package/dist/skills/doubao-plugin-app/references/frontend/guides/debugger-mcp.md +537 -0
  68. package/dist/skills/doubao-plugin-app/references/frontend/guides/expired-widget.md +101 -0
  69. package/dist/skills/doubao-plugin-app/references/frontend/guides/performance-optimization.md +417 -0
  70. package/dist/skills/doubao-plugin-app/references/frontend/guides/troubleshooting.md +278 -0
  71. package/dist/skills/doubao-plugin-app/references/frontend/lynx/best-practices.md +720 -0
  72. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/pseudo-classes.md +149 -0
  73. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/selectors.md +224 -0
  74. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/supported-properties.md +269 -0
  75. package/dist/skills/doubao-plugin-app/references/frontend/lynx/css/values-and-units.md +314 -0
  76. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/flex-layout.md +334 -0
  77. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/grid-layout.md +408 -0
  78. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/linear-layout.md +355 -0
  79. package/dist/skills/doubao-plugin-app/references/frontend/lynx/layout/relative-layout.md +189 -0
  80. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/css-differences.md +737 -0
  81. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/migration-guide.md +669 -0
  82. package/dist/skills/doubao-plugin-app/references/frontend/lynx/lynx-vs-web/unsupported-features.md +290 -0
  83. package/dist/skills/doubao-plugin-app/references/frontend/lynx/overview.md +60 -0
  84. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/animation.md +243 -0
  85. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/responsive.md +194 -0
  86. package/dist/skills/doubao-plugin-app/references/frontend/lynx/patterns/theming.md +143 -0
  87. package/dist/skills/doubao-plugin-app/references/frontend/lynx/quick-reference.md +229 -0
  88. package/dist/skills/doubao-plugin-app/references/frontend/rules/dos-and-donts.md +479 -0
  89. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/design-boundary.md +46 -0
  90. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/overview.md +118 -0
  91. package/dist/skills/doubao-plugin-app/references/frontend/widget-templates/props.md +301 -0
  92. package/dist/skills/doubao-plugin-app/references/mcp-and-cards.md +38 -0
  93. package/dist/templates/README.md.template +11 -0
  94. package/dist/templates/com.doubao/app/manifest.yaml +41 -0
  95. package/dist/templates/com.doubao/app/package.json.template +13 -0
  96. package/dist/templates/com.doubao/app/src/app.config.ts.template +5 -0
  97. package/dist/templates/com.doubao/app/src/app.ts.template +3 -0
  98. package/dist/templates/com.doubao/app/src/pages/home/index.css +14 -0
  99. package/dist/templates/com.doubao/app/src/pages/home/index.tsx.template +14 -0
  100. package/dist/templates/com.doubao/app/src/widgets/example/index.tsx.template +29 -0
  101. package/dist/templates/com.doubao/app/tsconfig.json +19 -0
  102. package/dist/templates/mcp.json +9 -0
  103. package/dist/templates/plugin.json.template +29 -0
  104. package/dist/templates/skills/example/SKILL.md.template +14 -0
  105. package/dist/upload.d.ts +44 -0
  106. package/dist/upload.js +38 -0
  107. package/package.json +60 -3
@@ -0,0 +1,408 @@
1
+ # Grid 布局
2
+
3
+ Lynx 支持 CSS Grid 的子集,适用于二维布局。
4
+
5
+ ## 支持的特性
6
+
7
+ ```css
8
+ .container {
9
+ display: grid;
10
+
11
+ /* 定义列 */
12
+ grid-template-columns: 200px 1fr 2fr;
13
+ grid-template-columns: repeat(3, 1fr);
14
+ grid-template-columns: 100px repeat(2, 1fr);
15
+
16
+ /* 定义行 */
17
+ grid-template-rows: 100px auto;
18
+
19
+ /* 间距 */
20
+ gap: 10px;
21
+ row-gap: 10px;
22
+ column-gap: 10px;
23
+
24
+ /* 自动排列 */
25
+ grid-auto-flow: row | column | dense | row dense | column dense;
26
+ }
27
+ ```
28
+
29
+ ## 常见布局
30
+
31
+ ### 三列等宽
32
+
33
+ ```css
34
+ .grid-3 {
35
+ display: grid;
36
+ grid-template-columns: repeat(3, 1fr);
37
+ gap: 16px;
38
+ }
39
+ ```
40
+
41
+ ```jsx
42
+ <view className="grid-3">
43
+ <text className="item">1</text>
44
+ <text className="item">2</text>
45
+ <text className="item">3</text>
46
+ <text className="item">4</text>
47
+ <text className="item">5</text>
48
+ <text className="item">6</text>
49
+ </view>
50
+ ```
51
+
52
+ ### 侧边栏 + 主内容
53
+
54
+ ```css
55
+ .layout {
56
+ display: grid;
57
+ grid-template-columns: 200px 1fr;
58
+ gap: 20px;
59
+ }
60
+ ```
61
+
62
+ ```jsx
63
+ <view className="layout">
64
+ <view className="sidebar">
65
+ <text>Sidebar</text>
66
+ </view>
67
+ <view className="main">
68
+ <text>Main Content</text>
69
+ </view>
70
+ </view>
71
+ ```
72
+
73
+ ### 固定头部和底部
74
+
75
+ ```css
76
+ .page {
77
+ display: grid;
78
+ grid-template-rows: 60px 1fr 60px;
79
+ height: 100vh;
80
+ }
81
+
82
+ .header {
83
+ /* 第一行 */
84
+ }
85
+
86
+ .content {
87
+ /* 中间 */
88
+ }
89
+
90
+ .footer {
91
+ /* 底部 */
92
+ }
93
+ ```
94
+
95
+ ### 网格项定位
96
+
97
+ ```css
98
+ .grid {
99
+ display: grid;
100
+ grid-template-columns: repeat(4, 1fr);
101
+ gap: 10px;
102
+ }
103
+
104
+ /* 大图跨越 2x2 */
105
+ .grid-item-large {
106
+ grid-column: span 2;
107
+ grid-row: span 2;
108
+ }
109
+
110
+ /* 横图跨越 2 列 */
111
+ .grid-item-wide {
112
+ grid-column: span 2;
113
+ }
114
+ ```
115
+
116
+ ```jsx
117
+ <view className="grid">
118
+ <text className="grid-item-large">Large</text>
119
+ <text>Small 1</text>
120
+ <text>Small 2</text>
121
+ <text className="grid-item-wide">Wide</text>
122
+ </view>
123
+ ```
124
+
125
+ ## 属性值参考
126
+
127
+ ### grid-template-columns / grid-template-rows
128
+
129
+ 定义网格的列和行轨道。
130
+
131
+ ```css
132
+ .container {
133
+ /* 固定大小 */
134
+ grid-template-columns: 100px 200px 100px;
135
+
136
+ /* 比例分配 */
137
+ grid-template-columns: 1fr 2fr 1fr;
138
+
139
+ /* 重复模式 */
140
+ grid-template-columns: repeat(3, 1fr);
141
+ grid-template-columns: repeat(2, 100px 1fr);
142
+
143
+ /* 混合使用 */
144
+ grid-template-columns: 200px 1fr 1fr;
145
+ }
146
+ ```
147
+
148
+ ### grid-auto-columns / grid-auto-rows
149
+
150
+ 定义隐式创建的网格轨道大小。
151
+
152
+ ```css
153
+ .container {
154
+ grid-auto-columns: 100px;
155
+ grid-auto-rows: minmax(50px, auto);
156
+ }
157
+ ```
158
+
159
+ ### grid-auto-flow
160
+
161
+ 控制自动布局算法。
162
+
163
+ | 值 | 说明 |
164
+ | -------------- | -------------------------- |
165
+ | `row` | 按行填充(默认) |
166
+ | `column` | 按列填充 |
167
+ | `dense` | 紧凑填充(尽可能填充空洞) |
168
+ | `row dense` | 按行紧凑填充 |
169
+ | `column dense` | 按列紧凑填充 |
170
+
171
+ ```css
172
+ .container {
173
+ grid-auto-flow: dense; /* 填充网格中的所有空洞 */
174
+ }
175
+ ```
176
+
177
+ ### grid-column-start / grid-column-end
178
+
179
+ 定义网格项的列起始和结束位置。
180
+
181
+ ```css
182
+ .item {
183
+ grid-column-start: 1; /* 从第1列开始 */
184
+ grid-column-end: 3; /* 到第3列结束(跨越2列) */
185
+ }
186
+
187
+ /* 简写 */
188
+ .item {
189
+ grid-column: 1 / 3;
190
+ }
191
+ ```
192
+
193
+ ### grid-row-start / grid-row-end
194
+
195
+ 定义网格项的行起始和结束位置。
196
+
197
+ ```css
198
+ .item {
199
+ grid-row-start: 1;
200
+ grid-row-end: 3; /* 跨越2行 */
201
+ }
202
+
203
+ /* 简写 */
204
+ .item {
205
+ grid-row: 1 / 3;
206
+ }
207
+ ```
208
+
209
+ ### grid-column-span / grid-row-span
210
+
211
+ 定义网格项跨越的列数或行数(Lynx 特有语法)。
212
+
213
+ ```css
214
+ .item {
215
+ grid-column-span: 2; /* 跨越2列 */
216
+ grid-row-span: 2; /* 跨越2行 */
217
+ }
218
+ ```
219
+
220
+ > **注意**: Lynx **不支持** `grid-column: span 2` 简写语法。请使用 `grid-column-start: span 2` 或 `grid-column-span: 2`。
221
+
222
+ ### justify-items
223
+
224
+ 定义网格项在单元格内的水平对齐方式(容器属性)。
225
+
226
+ | 值 | 说明 |
227
+ | --------- | ---------------- |
228
+ | `stretch` | 拉伸填满(默认) |
229
+ | `start` | 左对齐 |
230
+ | `center` | 居中对齐 |
231
+ | `end` | 右对齐 |
232
+
233
+ ```css
234
+ .container {
235
+ justify-items: center; /* 所有网格项水平居中 */
236
+ }
237
+ ```
238
+
239
+ ### justify-self
240
+
241
+ 定义单个网格项在单元格内的水平对齐方式。
242
+
243
+ | 值 | 说明 |
244
+ | --------- | -------------------- |
245
+ | `auto` | 继承自父元素(默认) |
246
+ | `stretch` | 拉伸填满 |
247
+ | `start` | 左对齐 |
248
+ | `center` | 居中对齐 |
249
+ | `end` | 右对齐 |
250
+
251
+ ```css
252
+ .special-item {
253
+ justify-self: end; /* 此项目右对齐 */
254
+ }
255
+ ```
256
+
257
+ ### align-items
258
+
259
+ 定义网格项在单元格内的垂直对齐方式(容器属性)。
260
+
261
+ | 值 | 说明 |
262
+ | ------------ | ---------------------- |
263
+ | `stretch` | 拉伸填满(默认) |
264
+ | `flex-start` | 顶部对齐 |
265
+ | `center` | 垂直居中对齐 |
266
+ | `flex-end` | 底部对齐 |
267
+ | `baseline` | 基线对齐 |
268
+
269
+ ```css
270
+ .container {
271
+ align-items: center; /* 所有网格项垂直居中 */
272
+ }
273
+ ```
274
+
275
+ > **注意**: Lynx 使用 Flexbox 的 align 值(`flex-start`/`flex-end`)而非 Web Grid 的 `start`/`end`。
276
+
277
+ ### align-self
278
+
279
+ 定义单个网格项在单元格内的垂直对齐方式。
280
+
281
+ | 值 | 说明 |
282
+ | ------------ | ---------------------- |
283
+ | `auto` | 继承自父元素(默认) |
284
+ | `stretch` | 拉伸填满 |
285
+ | `flex-start` | 顶部对齐 |
286
+ | `center` | 垂直居中对齐 |
287
+ | `flex-end` | 底部对齐 |
288
+ | `baseline` | 基线对齐 |
289
+
290
+ ```css
291
+ .special-item {
292
+ align-self: center; /* 此项目垂直居中 */
293
+ }
294
+ ```
295
+
296
+ ### gap / row-gap / column-gap
297
+
298
+ 定义网格轨道之间的间距。
299
+
300
+ ```css
301
+ .container {
302
+ gap: 16px; /* 行列间距都是16px */
303
+ row-gap: 8px; /* 行间距8px */
304
+ column-gap: 12px; /* 列间距12px */
305
+ }
306
+ ```
307
+
308
+ ## 限制
309
+
310
+ 以下特性**不支持**:
311
+
312
+ - ❌ 命名网格线: `grid-template-columns: [start] 1fr [end]`
313
+ - ❌ grid-column 简写: `grid-column: 1 / 3` 或 `grid-column: span 2`
314
+ - ❌ grid-row 简写: `grid-row: 1 / 3` 或 `grid-row: span 2`
315
+ - ❌ grid-area 简写: `grid-area: 1 / 1 / 2 / 3`
316
+ - ❌ subgrid
317
+
318
+ ⚠️ **部分支持**:
319
+
320
+ - `minmax()`: 支持基本用法,但复杂场景下行为可能与 Web 不同
321
+ ```css
322
+ /* ✅ 基本支持 */
323
+ grid-template-columns: minmax(100px, 1fr) 2fr;
324
+ grid-auto-rows: minmax(50px, auto);
325
+
326
+ /* ⚠️ 谨慎使用 - 可能与 Web 行为不一致 */
327
+ grid-template-columns: minmax(min-content, max-content) 1fr;
328
+ ```
329
+
330
+ ## 从 Table 布局迁移
331
+
332
+ Lynx **完全不支持** `display: table*` 及相关属性(`border-spacing`、`border-collapse`、`table-layout` 等)。Grid 布局是 Table 的最佳替代方案。
333
+
334
+ ### 简单表格 → Grid
335
+
336
+ **Web:**
337
+ ```html
338
+ <table>
339
+ <tr><td>A</td><td>B</td><td>C</td></tr>
340
+ <tr><td>D</td><td>E</td><td>F</td></tr>
341
+ </table>
342
+ ```
343
+ ```css
344
+ table { border-spacing: 2px; }
345
+ td { border: 1px solid; width: 50px; height: 30px; }
346
+ ```
347
+
348
+ **Lynx:**
349
+ ```jsx
350
+ <view className="grid-table">
351
+ <view className="cell"><text>A</text></view>
352
+ <view className="cell"><text>B</text></view>
353
+ <view className="cell"><text>C</text></view>
354
+ <view className="cell"><text>D</text></view>
355
+ <view className="cell"><text>E</text></view>
356
+ <view className="cell"><text>F</text></view>
357
+ </view>
358
+ ```
359
+ ```css
360
+ .grid-table {
361
+ display: grid;
362
+ grid-template-columns: repeat(3, 50px);
363
+ gap: 2px; /* 替代 border-spacing */
364
+ }
365
+ .cell {
366
+ border: 1px solid;
367
+ height: 30px;
368
+ }
369
+ ```
370
+
371
+ ### 关键映射
372
+
373
+ | Table 特性 | Grid 替代 |
374
+ |-----------|----------|
375
+ | `<table>` | `display: grid` 容器 |
376
+ | `<tr>` | 自动换行(由 `grid-template-columns` 控制) |
377
+ | `<td>` | 子 `<view>` 元素 |
378
+ | `border-spacing` | `gap` |
379
+ | `border-collapse` | 移除子元素 border,改用容器 gap + 背景色模拟 |
380
+ | 固定列宽 | `grid-template-columns: repeat(N, width)` |
381
+
382
+ ### 何时不能迁移
383
+
384
+ 如果 Web 中的核心语义**依赖 table 特性本身**(如 `display: table-cell` 的垂直对齐行为、table 的自动列宽分配算法),则该布局无法在 Lynx 中准确还原。
385
+
386
+ ## 响应式网格
387
+
388
+ ```css
389
+ /* 注意:Lynx 不支持 @media,请使用视口单位或 JavaScript 动态调整 */
390
+
391
+ /* 移动端/默认:1列 */
392
+ .grid {
393
+ display: grid;
394
+ grid-template-columns: 1fr;
395
+ gap: 16px;
396
+ }
397
+
398
+ /* 响应式:使用 flex-wrap 或 JavaScript 动态调整列数 */
399
+ .responsive-grid {
400
+ display: flex;
401
+ flex-wrap: wrap;
402
+ gap: 16px;
403
+ }
404
+
405
+ .responsive-grid > .item {
406
+ flex: 1 1 40vw; /* 根据视口宽度自动调整 */
407
+ }
408
+ ```