响应式 CSS 主要通过 ‌媒体查询(Media Queries)‌ 结合 ‌流式布局(百分比/Flexbox/Grid)‌ 来实现根据窗口宽度调整页面样式。其核心逻辑是:定义一套基础样式,然后使用 @media 规则设定特定的宽度断点(Breakpoints),当浏览器窗口宽度满足条件时,覆盖或补充相应的 CSS 属性。 媒体查询允许你根据设备特征(主要是屏幕宽度 width)应用不同的 CSS 规则。常用的条件包括: max-width: 当窗口宽度‌小于或等于‌指定值时生效(常用于“移动优先”策略)。 min-width: 当窗口宽度‌大于或等于‌指定值时生效(常用于“桌面优先”策略)。 手机端 (< 768px)‌:单列布局,字体较小,全宽显示。 平板/小桌面 (≥ 768px)‌:双列布局,字体适中。 大桌面 (≥ 1200px)‌:固定最大宽度,居中显示,字体较大。 在 HTML 中必须包含 。如果没有这行代码,移动浏览器会默认将页面缩放为桌面视图,导致媒体查询基于虚拟的桌面宽度而非实际设备宽度生效,从而破坏响应式效果。 常见的标准断点参考: 576px - 小型手机 768px - 平板 992px - 小型笔记本/桌面 1200px - 大型桌面 通过上述方法,页面能够平滑地适应从手机到超大显示器的各种窗口宽度,提供最佳的用户体验。 使用图标‌:在 HTML 标签中添加 iconfont 基类和具体的图标类名 ‌样式调整‌:像设置文字一样设置图标的大小和颜色。 Symbol 方式(官方推荐,支持多色) 引入 JS: 在 HTML 中引入生成的 iconfont.js 文件。 加入通用 CSS: 定义图标的通用样式,确保图标对齐和填充颜色跟随当前文字颜色。 使用图标‌:使用 svg 和 use 标签引用对应的 ID。 主要有两种常见的引入方式:CDN 引入‌(推荐用于快速测试或生产环境)和‌本地文件引入‌。 使用 CDN 引入(最简单) 在 HTML 文件的 和 底部依次引入 CSS 和 JS 文件。 Amaze UI 示例 本地文件引入 1、下载 Amaze UI 压缩包并解压。 2、将 css 和 js 文件夹复制到项目目录中。 3、按照以下顺序在 HTML 中引用: 在link中 引入 amazeui.min.css 在script中 引入 jquery.min.js 和 amazeui.min.js 4、基本使用方法 引入文件后,即可通过添加特定的 CSS 类名来使用组件,或通过 JavaScript 调用交互组件。 CSS 组件调用‌:直接给 HTML 元素添加类名。 例如:class="am-btn am-btn-primary" 创建一个主要样式的按钮。 例如:class="am-g" 创建网格布局容器。 JS 组件调用‌:通过 jQuery 选择器选中元素,然后调用对应的方法。 例如:初始化模态框(Modal): 5、关键注意事项 引入顺序‌:务必保证 jQuery -> Amaze UI JS 的顺序,否则 JS 组件无法正常工作。 盒模型:Amaze UI 默认将所有元素的 box-sizing 设置为 border-box,这在布局计算时需要注意,padding 和 border 会包含在宽度内。 响应式断点‌:利用其网格系统(如 am-u-sm-*, am-u-md-*)可以方便地实现不同屏幕尺寸下的布局适配。 总结来说,调用 Amaze UI 的核心就是:‌先引 jQuery,再引 Amaze UI 的 CSS/JS,最后通过类名或 JS API 使用组件。 在模板中正确输出(推荐) 使用 raw 过滤器 这是 ThinkPHP 官方推荐的方式。在模板文件中,使用 |raw 修饰符: {$article.content} {$article.content|raw} 注意:‌ raw 必须放在过滤器链的‌最后‌。 ‌安全风险‌:确保 $article.content 已经过后端的安全过滤(如白名单机制),否则直接输出用户提交的内容会导致 XSS 漏洞。 使用 htmlspecialchars_decode 如果内容被双重转义(例如显示为 &nbsp;),可以先解码再输出,但通常 raw 更直接。 {:htmlspecialchars_decode($article.content)} 处理双重转义 如果数据显示为 &nbsp;,说明被转义了两次。需要解码两次,或者检查存入数据库前是否多余调用了 htmlspecialchars。 & $temp = htmlspecialchars_decode($article->content, ENT_QUOTES, 'UTF-8'); // 第二次解码   -> 空格 (如果需要) $finalContent = htmlspecialchars_decode($temp, ENT_QUOTES, 'UTF-8'); ?> // 静态文件状态css,js