CSS媒体查询生成器 - 响应式断点代码生成
可视化选择设备类型、屏幕方向和宽度范围,一键生成标准CSS媒体查询代码。
UD5工具箱
/* 多行文本截断 - 使用 line-clamp */ .text-clamp { display: -webkit-box; -webkit-line-clamp: 3; /* 限制显示行数 */ -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; /* 可选,增强兼容 */ }
兼容 Chrome / Safari / Edge / Firefox 68+ / 移动端浏览器
<!-- HTML 结构 --> <div class="text-clamp-box"> <p class="clamp-content">你的文本内容...</p> <button class="toggle-expand-btn">展开全文</button> </div> /* CSS 样式 */ .clamp-content { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .clamp-content.expanded { display: block; -webkit-line-clamp: unset; overflow: visible; } .toggle-expand-btn { /* 自定义按钮样式 */ } // JavaScript 交互 const box = document.querySelector('.clamp-content'); const btn = document.querySelector('.toggle-expand-btn'); const checkTruncation = () => { const truncated = box.scrollHeight > box.clientHeight; btn.style.display = truncated ? 'inline-block' : 'none'; }; btn.addEventListener('click', () => { box.classList.toggle('expanded'); btn.textContent = box.classList.contains('expanded') ? '收起' : '展开全文'; }); checkTruncation(); window.addEventListener('resize', checkTruncation);
-webkit-line-clamp 是一个 CSS 属性,用于将块级元素的内容限制在指定的行数内,超出部分会被截断并显示省略号(…)。它需要配合 display: -webkit-box 和 -webkit-box-orient: vertical 一起使用。虽然带有 -webkit- 前缀,但现代浏览器(包括 Firefox 68+、Edge、Chrome、Safari)均已支持。它是目前实现多行文本截断最简洁、最优雅的方案,无需计算行高或使用 JavaScript。
max-height(如 max-height: calc(1.5em * 3))配合 overflow: hidden 实现。缺点是省略号需要额外处理(通常使用伪元素 ::after 模拟),且高度计算依赖行高,在不同字体渲染下可能出现截断偏差。适用于需要兼容极老旧浏览器或需要渐变遮罩效果的场景。
scrollHeight 和 clientHeight:const isTruncated = element.scrollHeight > element.clientHeight;scrollHeight(内容完整高度)大于 clientHeight(可见区域高度)时,说明内容被截断了。这个方法适用于 overflow: hidden 的元素。建议在内容加载完成后、窗口大小改变时进行检测,以决定是否显示"展开"按钮。注意:需要在元素应用截断样式(未展开状态)时进行检测。
max-height 作为降级方案。移动端完全支持,且性能优秀。
::after 伪元素,设置 content: '...查看更多',配合绝对定位覆盖默认省略号。但实现复杂,不推荐。'... 展开')。适合需要高度定制化的场景。useRef 获取 DOM 引用,useState 管理展开/收起状态,在 useEffect 中检测截断状态并决定是否显示按钮。通过 props 接收 lines(行数)、expandText、collapseText 等参数。ref 获取元素引用,v-if 或动态 class 控制截断状态,在 onMounted 和 watch 中检测截断。通过 props 传递配置参数。line-height: 1.5、1.8 还是 24px,截断始终精确发生在第 N 行之后。这使得它比 max-height 方案更加灵活和可靠。需要注意的是,如果 line-height 设置过小导致文字重叠,截断位置的计算仍然准确,但视觉效果可能不佳。建议保持合理的行高(1.4~1.8)以确保可读性。
-webkit-line-clamp 是离散属性。要实现平滑动画,有以下方案:max-height 替代 line-clamp,设置 transition: max-height 0.3s ease,展开时设置一个足够大的 max-height 值。display: -webkit-box、-webkit-box-orient: vertical、-webkit-line-clamp: N。overflow: hidden。white-space: nowrap 会阻止换行)。scrollHeight > clientHeight。
aria-expanded 和 aria-label 属性来提升可访问性。
可视化选择设备类型、屏幕方向和宽度范围,一键生成标准CSS媒体查询代码。
选择页眉、侧边栏、主体、页脚的网格布局,生成基本的布局骨架代码。
输入网址,使用浏览器渲染并转换为可下载的PDF文件(纯前端模拟)。
上传多张连续重叠截屏,自动对齐并拼成一幅完整长图,完美展示聊天或网页。
使用html2canvas截取当前网页的完整内容(需粘贴HTML或演示),生成长图并下载。
生成用于网页游戏或展示的动态血量/进度条样式代码,支持渐变和闪烁。
提供JSON Schema定义,自动生成符合约束的示例JSON数据,用于接口文档说明。
编写或配置基础的CSS渐变、径向、锥形图案组合,生成美观的无缝重复背景代码。
拖拽设计包含 Subgrid 的嵌套网格,直观展示子网格如何继承父网格轨道并进行独立调整,生成代码。
在字符网格上通过工具绘制猫、超人等各种图案,导出为.txt ASCII艺术。
输入URL或使用当前页,自动滚动并拼接为一张完整的长图。
将HTML表格转换为移动端友好的折叠行显示模式,并生成相应CSS。
输入宽高、背景色和文字,生成对应尺寸的占位图片,适用于原型设计和文档填充。
为应用的空白页(如无订单、无消息)生成带插画和文案的HTML/CSS占位组件。
粘贴SVG代码,移除无用命名空间、注释与默认属性,减小文件体积,提升加载速度。
动画展示调用栈、宏任务和微任务的执行顺序,帮助理解JS异步机制。
在页面移动鼠标时显示十字参考线和像素距离,方便UI开发。
通过控件调整网格轨道、间距和对齐,实时展示效果及对应CSS代码,轻松掌握Grid。
加载本地视频,拖动时间轴选取帧,捕获该帧为PNG图片下载。
在可缩放网格上逐点绘制像素艺术,支持调色板、橡皮擦和导出PNG。
生成漂亮几何图案或文字占位图,指定尺寸,下载用于原型。
自定义尺寸、背景色、文字,纯前端生成占位图,适用于原型设计和网页排版,无需依赖外部服务。
输入网址,通过多个公有镜像请求检测目标站点可用性,并显示各节点状态码。
输入网址,抓取并展示该页面的标题、描述、OG标签和Twitter Card信息。
按类型筛选状态码,点击查看详细描述与常见使用场景,开发调试速查手册。
设定书脊宽度,排版书名和出版社文字,模拟书脊在书架上的外观。
粘贴JSON-LD,校验其是否符合Schema.org语法并预览可能触发的丰富结果类型。
直接编写SVG代码并实时预览,或通过基本形状工具绘制矩形、圆形、路径,适合动态图形调试。
拖拽创建树形工作分解结构,清晰展示项目交付物与任务包,支持导出PNG/SVG,项目规划利器。
选择基本形状(六边形、菱形等)和配色,无缝拼接生成SVG几何背景图案。