You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让文本在w3-col的沙色区块内居中显示

问题根因

你现在用的w3-center和margin:auto只能实现水平方向居中,没法让文本在沙色区块的垂直方向也居中,另外代码里的几个不规范写法也会干扰布局:

  • HTML原生没有<h7>标签,浏览器无法正确识别这个标签的默认样式
  • 块级标题标签(h3/h6等)不能嵌套在<p>标签内部,浏览器渲染时会自动断开p标签,导致多余的空白占位
  • 右侧w3-col容器没有设置对齐相关的布局属性,内部元素默认靠顶部排列,自然不会到区块中心位置
调整方案

用W3.CSS自带的定位工具类就能实现效果,不需要额外引入其他样式,步骤如下:

  • 给右侧w3-col l4容器添加w3-display-container类,作为内部元素的定位父容器,保留原有的w3-sand沙色样式
  • 删除内部多余的两层重复嵌套的w3-sand容器,把文本外层容器替换为w3-display-middle类,这个类会自动让元素在父容器里水平+垂直双居中
  • 修正不规范标签:把不存在的h7换成h6,去掉包裹标题的p标签
  • 给右侧容器加个最小高度,避免小屏幕下左右列堆叠、图片未加载时容器高度塌陷
修正后的核心代码

直接替换原来Grid模块的右侧列代码即可:

<div class="w3-row w3-card-4 w3-margin w3-sand">
  <!-- 左侧图片列 -->
  <div class="w3-col l8 s12">
    <img src="../static/images/101.jpg" alt="Nature" style="width:100%">
  </div>
  <!-- 右侧文本列 -->
  <div class="w3-col l4 w3-sand w3-display-container" style="min-height: 320px;">
    <div class="w3-display-middle w3-center" style="width: 80%;">
      <h6>WELCOME</h6>
      <h3><b>Wish you a happy day</b></h3>
      <h6>Keep calm and carry on !</h6>
    </div>
  </div>
</div>

提示:min-height的值可以根据你左侧图片的实际高度调整,正常加载图片时右侧列会自动和左侧等高,这个属性只是做异常场景兼容。

如果习惯用flex布局,也可以直接给右侧l4列加w3-cell w3-cell-middle类配合w3-center,同样能实现垂直居中效果,不用改内部文本结构。

内容的提问来源于stack exchange,提问作者user3552178

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 20:06:26