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

如何在可编辑HTML表格的单个单元格中设置多可编辑值并保留中间固定文本

实现固定中间文本的可编辑单元格

嘿,这问题很好解决!要让“às”稳稳待在单元格中间,同时前后还能自由输入内容,咱们可以把目标单元格拆成三个行内元素:两个可编辑的输入区域,加上中间固定的“às”文本。这样既能保证固定文本不被修改,视觉上又像是一个连贯的单元格。

修改后的完整代码

CSS 部分

table { 
  font-family: arial, sans-serif; 
  border-collapse: collapse; 
  width: 100%; 
}
td, th { 
  border: 1px solid #dddddd; 
  text-align: left; 
  padding: 8px; 
}
tr:nth-child(even) { 
  background-color: #dddddd; 
}
/* 固定文本的样式,可按需调整 */
.fixed-text {
  margin: 0 4px; /* 给前后留一点间距,更美观 */
  font-weight: bold; /* 可选:突出固定文本 */
}
/* 去掉可编辑区域的默认轮廓,优化视觉体验 */
.editable-span {
  outline: none;
}

HTML 部分

<table>
  <tr>
    <th>Days</th>
    <th>Work Schedule</th>
    <th>Rest and Meal Interval</th>
  </tr>
  <tr>
    <td>Monday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Tuesday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Wednesday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Thursday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Friday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Saturday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
  <tr>
    <td>Sunday</td>
    <td>
      <span class="editable-span" contenteditable="true"></span>
      <span class="fixed-text">às</span>
      <span class="editable-span" contenteditable="true"></span>
    </td>
    <td contenteditable='true'></td>
  </tr>
</table>

关键说明

  • 我们把原来的单个可编辑单元格,拆成了两个可编辑的<span>和一个固定文本的<span>,它们默认是行内元素,会自动在同一行排列。
  • 中间的.fixed-text没有设置contenteditable属性,所以用户无法修改它,完美固定“às”的位置。
  • 给.fixed-text加了margin: 0 4px,让前后的输入内容和“às”之间有合适的间距,避免挤在一起。
  • .editable-span去掉了默认的轮廓线,编辑时不会出现突兀的边框,体验更流畅。

你可以直接复制这段代码测试,点击前后的空白区域就能输入内容,中间的“às”会一直待在中间,完全符合你的需求!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:52:50