@@ -1169,69 +1169,66 @@ SVG Elements {#unbox-svg}
1169
1169
---------------------------
1170
1170
1171
1171
: An <{svg}> element that has CSS box layout
1172
- (this includes all <{svg}> whose parent is an HTML element,
1173
- as well as document root elements)
1172
+ (this includes all <{svg}> whose parent is an HTML element,
1173
+ as well as document root elements)
1174
1174
::
1175
1175
''display: contents'' behaves as ''display: none'' .
1176
1176
1177
1177
: All other SVG [=container elements=] that are also [=renderable elements=]
1178
- : SVG [=text content child elements=]
1179
- : <{use}>
1178
+ : SVG [=text content child elements=]
1179
+ : <{use}>
1180
1180
::
1181
1181
''display: contents'' strips the element from the formatting tree,
1182
1182
and hoists its contents up to display in its place.
1183
- These contents include the shadow-DOM content for <{use}> .
1183
+ These contents include the shadow-DOM content for <{use}> .
1184
1184
1185
1185
: any other SVG elements
1186
1186
::
1187
1187
''display: contents'' behaves as ''display: none'' .
1188
-
1189
- When an element is stripped from the formatting tree,
1190
- then any SVG attributes on that element
1191
- that control the layout and formatting of its child content
1192
- (or shadow DOM content)
1193
- are ignored when rendering the contents.
1194
- However, SVG [=presentation attributes=]
1195
- continue to affect CSS property inheritance,
1196
- the same as CSS styles set in any other way.
1197
-
1198
- Issue(w3c/csswg-drafts#2502):
1199
- Is this description clear enough to identify
1200
- the SVG attributes affected by ''display: contents'' ?
1201
-
1202
-
1203
- <div class="note">
1204
-
1205
- The intention here is that
1206
- the ''display: none'' behavior applies
1207
- whenever the "rendering context" inside the element
1208
- is different than the context outside of it.
1209
- If the element's child elements would not be valid children
1210
- of the element's parent,
1211
- you cannot simply hoist them up the formatting tree.
1212
-
1213
- For example, text content and text formatting elements in SVG
1214
- require a <{text}> element context;
1215
- if you remove a <{text}> ,
1216
- its child text content and elements are no longer valid.
1217
- For that reason, ''display: contents'' on <{text}>
1218
- prevents the entire text element from being rendered.
1219
- In contrast, any content inside a <{tspan}> or <{textPath}>
1220
- is also valid content inside the parent text formatting context,
1221
- so the hoisting behavior applies for these elements.
1222
-
1223
- Similarly, if hoisting would convert the children from
1224
- [=non-rendered elements=]
1225
- (e.g., a shape inside a <{pattern}> or <{symbol}> )
1226
- to [=rendered elements=]
1227
- (e.g., a shape that is a direct child of the <{svg}> ),
1228
- that is an invalid change of rendering context.
1229
- Never-rendered container elements therefore cannot be "un-boxed"
1230
- by ''display: contents'' .
1231
- (Also, authors cannot override the 'display' property on these elements:
1232
- it is forced to ''none'' by an ''!important'' user agent style rule.)
1233
-
1234
- </div>
1188
+
1189
+ When an element is stripped from the formatting tree,
1190
+ then any SVG attributes on that element
1191
+ that control the layout and formatting of its child content
1192
+ (or shadow DOM content)
1193
+ are ignored when rendering the contents.
1194
+ However, SVG [=presentation attributes=]
1195
+ continue to affect CSS property inheritance,
1196
+ the same as CSS styles set in any other way.
1197
+
1198
+ Issue(w3c/csswg-drafts#2502):
1199
+ Is this description clear enough to identify
1200
+ the SVG attributes affected by ''display: contents'' ?
1201
+
1202
+ <div class="note">
1203
+ The intention here is that
1204
+ the ''display: none'' behavior applies
1205
+ whenever the "rendering context" inside the element
1206
+ is different than the context outside of it.
1207
+ If the element's child elements would not be valid children
1208
+ of the element's parent,
1209
+ you cannot simply hoist them up the formatting tree.
1210
+
1211
+ For example, text content and text formatting elements in SVG
1212
+ require a <{text}> element context;
1213
+ if you remove a <{text}> ,
1214
+ its child text content and elements are no longer valid.
1215
+ For that reason, ''display: contents'' on <{text}>
1216
+ prevents the entire text element from being rendered.
1217
+ In contrast, any content inside a <{tspan}> or <{textPath}>
1218
+ is also valid content inside the parent text formatting context,
1219
+ so the hoisting behavior applies for these elements.
1220
+
1221
+ Similarly, if hoisting would convert the children from
1222
+ [=non-rendered elements=]
1223
+ (e.g., a shape inside a <{pattern}> or <{symbol}> )
1224
+ to [=rendered elements=]
1225
+ (e.g., a shape that is a direct child of the <{svg}> ),
1226
+ that is an invalid change of rendering context.
1227
+ Never-rendered container elements therefore cannot be "un-boxed"
1228
+ by ''display: contents'' .
1229
+ (Also, authors cannot override the 'display' property on these elements:
1230
+ it is forced to ''none'' by an ''!important'' user agent style rule.)
1231
+ </div>
1235
1232
1236
1233
1237
1234
MathML Elements {#unbox-mathml}
0 commit comments