-
z-index仅对非static定位元素生效,且受父级堆叠上下文限制;每个堆叠上下文独立排序,子元素z-index无法突破父级边界;调试需检查position属性、意外创建的堆叠上下文及参照物是否同层。
-
<noframes>标签在HTML5中已被完全移除,仅存在于HTML4.01FramesetDTD中,用于为不支持框架的旧浏览器提供降级内容;现代开发应使用语义化布局、<noscript>、SSR及响应式设计替代。
-
popovertargetaction是button或input[type="button"]上控制popover显隐的原生属性,取值为show、hide或toggle,需配合目标元素的popover属性生效;仅Chromium114+和Safari17.4+支持,Firefox截至2026年4月仍不支持。
-
老项目改响应式应聚焦关键断点、松绑固定宽度、组件级响应、class隔离新行为;优先适配375px/768px/1024px三断点,用max-width/rem/响应式图片/弹性布局/工具类渐进优化。
-
本文详解如何利用CSS选择器精准控制元素悬停时的图标切换效果,重点纠正相邻兄弟选择器误用问题,提供可直接运行的代码方案与最佳实践。
-
fixed元素相对于视口定位且脱离文档流,滚动时保持位置不变;需设置top/right/bottom/left偏移值才可见,但受transform/perspective/filter等属性影响而退化为相对父容器定位,并在移动端存在软键盘、滚动闪烁等兼容性问题。
-
:not(:first-child)更可靠,因其只对非首子元素生效,避免首项溢出、适配任意容器、不依赖JS、兼容SSR,且不受父容器display类型限制。
-
直接写filter:blur(var(--blur))失效是因为--blur必须定义为带单位的值(如4px),若为无单位数字或带引号字符串则静默失效;所有滤镜需在同一filter声明中空格分隔,变量更新须用dataset+requestAnimationFrame批量设置,避免覆盖与竞态。
-
CSS动画需同时满足animation-name、匹配的@keyframes及animation-duration非0才触发;单位选s或ms依场景而定;duration影响节奏感知,需协同timing-function调整;JS动态修改需确保动画已挂载。
-
遮罩层z-index不必绝对高于弹层,但需确保遮罩盖住背景、弹层盖住遮罩;推荐遮罩z-index:1000、弹层z-index:1001+;注意父容器z-index和position影响、移动端fixed定位更可靠、rgba()背景优于opacity。
-
pre标签换行空格不显示的根本原因是HTML默认压缩空白符,且动态注入或转义会破坏原始格式;需用textContent注入、显式设置white-space、避免模板转义,并统一缩进方式。
-
弹性盒子子元素对齐不生效,主因是父容器未启用Flex布局或混淆主轴/交叉轴——align-items仅控制交叉轴对齐,水平居中需用justify-content;还需排查align-self覆盖、margin干扰及父容器高度缺失等问题。
-
掌握CSS浮动布局需合理设置浮动方向、清除浮动及间距控制。1.卡片设左浮动与固定宽度,通过padding和box-sizing控制间距;2.父容器用overflow:hidden或伪元素清除浮动,防止塌陷;3.结合媒体查询实现响应式断点适配。虽现代布局多用Flex或Grid,但float在兼容旧项目中仍具价值。
-
Grid表单布局核心是用grid-template-areas按语义区域规划结构,每个表单项(label+input)须包裹于同一父容器并设唯一grid-area名,配合display:grid、合理列宽与断点单列切换,确保逻辑分组与响应式一致性。
-
placeholder属性需直接写在<input>或<textarea>标签内,如<inputplaceholder="请输入邮箱">,仅作临时提示,不提交、不替代label、不支持换行与变量,且须注意可访问性与样式兼容性。