CSS混合模式实演 - background-blend-mode
选择多张图片或纯色叠加,切换所有CSS混合模式并实时预览图层效果。
UD5工具箱
直观对比 普通DOM 与 Shadow DOM 的样式隔离效果
Shadow DOM内部的CSS完全不受外部影响,外部CSS也无法渗透进去。
CSS自定义属性(变量)可以穿透Shadow边界,实现可控的样式定制。
从Shadow DOM内部样式化宿主元素,是唯一的"由内向外"样式通道。
element.attachShadow({mode:'open'})创建一个独立的DOM子树(shadow tree),该子树内的CSS样式与外部文档完全隔离。浏览器在渲染时会为shadow tree维护独立的样式计算上下文,确保内部选择器不会泄露到外部,外部选择器也无法穿透进去(CSS变量除外)。这就像给组件加了一个"样式防火墙"。
--my-var)会沿着DOM树继承,包括穿透shadow边界。这为组件提供了受控的样式定制通道——组件作者可以在shadow内部使用var(--accent-color, blue)来引用外部变量,同时提供默认值。这样外部可以在不破坏组件内部样式完整性的前提下,定制主题色等关键样式。相比之下,直接的选择器(如.btn)则无法穿透。
:host是Shadow DOM中一个特殊的选择器,用于从shadow内部样式化宿主元素(即挂载shadow的容器元素)。:host(.active)可以选择带有特定类的宿主元素,:host(:hover)可以在宿主被悬停时应用样式。这是shadow内部CSS唯一能影响"外部"(宿主)的方式,但它仍然局限于宿主元素本身,无法影响宿主外的其他元素。
::part()允许组件作者将shadow内部特定元素暴露给外部样式化。在shadow内部,给元素添加part="button"属性;外部就可以用custom-element::part(button) { ... }来样式化该元素。这比CSS变量更精确,适合需要暴露具体元素样式的场景。但使用时需谨慎,过度使用会削弱隔离的优势。
@scope(较新的CSS特性)提供了轻量级的作用域限制,但不创建独立的DOM子树。@scope仅限制选择器的匹配范围,不能阻止外部样式渗透,也不能阻止内部样式泄露。Shadow DOM提供的是浏览器级别的强隔离,更彻底但成本更高(需要创建shadow root)。两者可以互补使用:@scope适合轻量隔离场景,Shadow DOM适合需要强封装的组件。
<slot>的内容(即被投射的节点)属于light DOM,虽然它们在视觉上显示在shadow tree内部,但它们的样式受外部CSS影响,而不受shadow内部CSS影响。这是理解Shadow DOM的关键:slot是"投影"而非"复制",投射的内容保留了其在light DOM中的样式上下文。可以通过::slotted()在shadow内部对这些投射内容施加有限样式。
选择多张图片或纯色叠加,切换所有CSS混合模式并实时预览图层效果。
列出所有标准 CSS 光标值(pointer, grab, zoom-in 等),鼠标悬停实时查看对应光标样式并复制代码。
通过叠加多个阴影创建柔和且真实的UI投影,导出CSS。
调整透明度、模糊度和边框,实时预览毛玻璃UI卡片,生成兼容CSS backdrop-filter代码。
调节光源角度、颜色和距离,生成凹凸柔和的新拟态UI元素CSS盒阴影代码,潮流设计工具。
制作像荧光笔划过的高亮背景或扫描下划线效果,导出类名。
在页面上叠加可拖拽的半透明网格线,辅助网格布局对齐。
通过可视化控件定制滚动条轨道、滑块、按钮等伪元素样式,即时预览并复制生成代码。
调节背景色、亮阴影与暗阴影距离,生成新拟态风格按钮/卡片样式并导出代码。
浏览并一键复制常见CSS动画(跳动、淡入、滑动等)的@keyframes代码。
将图片灰度化后,把阴影区域映射为一种颜色,高光映射为另一种,创造经典双色效果。
配置多个背景层或前景层,设定各层滚动速度因子,生成完整视差页面代码。
搜索CSS属性和选择器,展示在主流浏览器的支持版本和全局使用率百分比。
自动生成适合打印的`@media print`样式,重置背景色、字号并隐藏导航。
通过堆叠多层text-shadow或box-shadow创造浮雕或厚重立体文字效果,复制代码。
调节宽度、颜色、条纹动画等参数,实时预览并生成进度条HTML/CSS。
拖拽顶点或选择预定义形状,可视生成CSS clip-path多边形、圆形、椭圆等,实时预览并复制代码。
添加多个阴影层,独立调节每层的偏移、模糊、扩展和颜色,创造复杂立体效果。
创建带有向下箭头和自定选项风格的自定义选择框HTML+CSS代码。
设定最小、首选、最大三个尺寸及视口范围,生成响应式CSS clamp()表达式。
为页面上使用CSS Grid的元素显示网格线和名称,辅助布局开发和调试。
为内容区域生成灰色闪烁的骨架屏占位代码,包含卡片、标题等组件样式。
输入文本,滑块调节letter-spacing和word-spacing,实时显示效果并复制CSS。
通过勾选元素关系(子孙、兄弟)、属性、伪类等条件,自动生成精确的CSS选择器字符串。
为图片添加类似胶片漏光的红黄色调渐变或光晕效果,营造怀旧氛围。
拖拽调节Flex容器和子项属性,即时可视化响应效果,同时显示CSS代码,边学边用。
配置多屏垂直或水平滑动卡片,生成带CSS Scroll Snap的HTML页面代码。
选择背景图片(或使用占位色),配置标题、副标题和按钮,生成Hero区域代码。
勾选或调整所需的重置元素(盒模型、边距等),生成自定义CSS Reset片段,确保跨浏览器一致性。
显示文本中的非换行空格、全角空格等隐藏字符映射。