CSS 伪类效果测试场 - 实时查看 :is() :where() :has()
编写带有伪类的选择器,实时高亮匹配的HTML元素,探索现代CSS选择器的能力。
UD5工具箱
交互式体验「父元素根据子元素动态样式」——现代 CSS 的里程碑特性
.card:has(img) {
border-color: gold;
box-shadow: 0 4px 16px rgba(245,158,11,0.2);
}
.task-item:has(input:checked) {
background: #ecfdf5;
border-left: 3px solid #10b981;
}
.form-field:has(.error-badge) {
border-color: #ef4444;
background: #fef2f2;
}
.card:has(:focus-within) {
box-shadow: 0 8px 28px rgba(99,102,241,0.2);
transform: translateY(-3px);
}
.field:has(input:placeholder-shown) {
opacity: 0.55;
border-style: dashed;
}
.content-block:has(a) {
border-left-color: #8b5cf6;
background: #faf9ff;
}
#custom-sandbox 作用域内,安全无忧div:has(p) 会选择所有包含 <p> 标签的 <div>。传统CSS只能向下选择(父→子),而 :has() 实现了"向上查询"的能力,因此被称为"父选择器"。实际上它更强大——可以选择包含任意后代、或满足特定条件的兄弟元素之前的元素。@supports selector(:has(*)) 进行特性检测并提供降级方案。移动端iOS Safari 15.4+和Android Chrome均完全支持。section:has(article:has(img)) 会选择包含带有图片的文章的section。也可以链式使用:.form:has(input:invalid):has(.error-msg)。但需要注意性能——深层嵌套会增加浏览器重评估的计算成本,建议嵌套深度不超过2-3层。:has(*) 中使用通配符匹配大量元素;② 尽量限定作用域,如 .container:has(.specific-class) 而非 body:has(...);③ 减少深层嵌套;④ 利用 :has(> 直接子元素) 比后代选择器更高效;⑤ 避免在动画帧中频繁触发 :has() 重新评估。浏览器引擎已针对 :has() 进行了大量优化,实际影响通常可忽略。closest(),并在DOM变化时重新执行;③ :has() 可以结合其他选择器实现复杂组合,CSS的可维护性更高;④ :has() 可被CSS过渡/动画使用;⑤ JS方案在极致性能优化场景下可提供更精细的控制。推荐优先使用 :has(),仅在需要复杂逻辑时使用JS。:hover, :focus, :checked, :valid, :invalid, :empty, :nth-child(), :focus-within, :placeholder-shown 等;组合器——后代空格、直接子元素 >、相邻兄弟 +、后续兄弟 ~;属性选择器——[attr], [attr=value] 等。几乎支持所有简单选择器的组合。@supports selector(:has(*)) { /* 支持时的样式 */ } 或 @supports not selector(:has(*)) { /* 降级方案 */ }。在JavaScript中:CSS.supports('selector(:has(*))') 返回布尔值。建议始终提供降级样式,确保在不支持:has()的旧浏览器中体验不受严重影响。编写带有伪类的选择器,实时高亮匹配的HTML元素,探索现代CSS选择器的能力。
通过勾选元素关系(子孙、兄弟)、属性、伪类等条件,自动生成精确的CSS选择器字符串。
为内容区域生成灰色闪烁的骨架屏占位代码,包含卡片、标题等组件样式。
提取 HTML 中所有内联 style,智能合并相同样式生成 class,并替换为类名以减小体积。
提取HTML中内联style属性或嵌入式style标签,转变为独立CSS规则,辅助样式重构。
创建一个 Proxy,定义各种陷阱函数,操作对象时实时显示被拦截的属性和行为。
勾选或调整所需的重置元素(盒模型、边距等),生成自定义CSS Reset片段,确保跨浏览器一致性。
定义多个 CSS 自定义属性,通过滑块或颜色选择器实时修改并查看页面整体风格变化。
输入 HTML 或网址,提取所有标题标签,生成文档大纲树,检测跳跃和缺失。
模拟显示各个HTML元素在典型浏览器中的默认CSS属性表,辅助CSS Reset决策。
粘贴带参数的URL,以表格形式列出所有Query参数与值。
并列播放所有CSS内置缓动函数(ease, linear等)的动画效果,方便对比选择。
解析 JSON 字符串或粘贴对象字面量,检测是否存在循环引用并指出路径,辅助调试。
应用 contain 的各种值(layout, paint, size),直观对比开启前后渲染和布局的变化。
粘贴JSON对象,生成可折叠的树形视图,点击节点复制其键值路径,方便调试。
搜索CSS属性和选择器,展示在主流浏览器的支持版本和全局使用率百分比。
粘贴结构化数据代码,模拟Google结构化数据测试,检查错误与丰富结果。
粘贴HTML并编写XPath表达式,高亮显示匹配的节点并提取文本。
可视化配置<dialog>元素外观与行为,生成现代化、无障碍友好的模态框代码。
搜索CSS属性,显示其在主流浏览器的支持范围和前缀需求,快速避免踩坑。
选择触发位置、箭头方向与样式,生成轻量悬停提示框代码。
动画展示 Kruskal 算法选择边和合并集合的过程,高亮生成树边。
输入 gRPC 服务地址和方法,构造 JSON 请求体,观察转为二进制帧并接收响应解码。
选择编程语言和关注领域(安全、性能、可读性),生成定制化的代码审查核对表。
将 JSON 数组或对象渲染为可交互的 HTML 表格,支持嵌套展开、列排序和搜索。
将URL查询字符串转换为键值对对象,编辑并重新生成编码后的查询参数,支持多层嵌套。
在线正则表达式测试工具,支持JavaScript正则匹配、替换、提取等操作,即时显示匹配结果和高亮。
实时预览并生成符合隐私法规的Cookie同意横幅HTML/CSS/JS代码,一键嵌入网站。
粘贴HTML和基本CSS,分析渲染后视觉顺序与DOM顺序的差异,避免可访问性问题。
输入嵌套对象和取值路径,测试?.可选链和??空值合并运算的结果,学习JS新特性。