我遇到了Vue.js应用程序中复选框对齐问题.我正在try 将复选框置于各自的表格单元中.默认情况下,它们显示为左对齐.当对单元格应用CSS样式时,所有复选框意外地垂直对齐到表格最左边列的中心,而不是保持在单元格的中心.如何解决这种对齐不一致?

<tbody>
    <!-- Loop over roles -->
    <template v-for="(characters, role) in categorizedCharacters" :key="role">
        <tr @click="toggleRoleVisibility(role)">
            <td>{{ role }}</td>
            <!-- Placeholder cells for alignment with the header; hidden but keeps the structure -->
            <td v-for="event in state.events" :key="`role-${event.title}-${role}`"></td>
        </tr>
        <!-- Loop over characters within each role -->
        <template v-if="state.roleVisibility[role]" v-for="character in characters" :key="character.name">
            <tr>
                <td>{{ character.name }}</td>
                <!-- Generate a cell for each event -->
                <td v-for="event in state.events" :key="`signup-${event.title}-${character.name}`" class="checkbox-cell">
                    <input type="checkbox" :checked="characterSignedUp(character, event)" />
                </td>
            </tr>
        </template>
    </template>
</tbody>
.checkbox-cell {
    display: flex;
    justify-content: center;
    align-items: center;
}

Before

After

谢谢你的帮助

推荐答案

您更改了displaytd,从而 destruct 了其表格单元格布局.

只需 Select 不同的方式,例如,绝对定位输入或添加包装DIV:

td{
  border: 1px solid gray;
  width:100px;
  height:40px;
}
.checkbox-cell{
  position:relative;
}
.checkbox-cell input{
  position: absolute;
  top:50%;
  left:50%;
  margin-top:-6px;
  margin-left:-6px;
}
.checkbox-cell2{
  position:relative;
}
.checkbox-cell2 > div{
  position: absolute;
  inset: 0;
  display:flex;
  align-items: center;
  justify-content: center;
}
<table>
  <tr><td class="checkbox-cell"><input type="checkbox"></td></tr>
</table>

<table>
  <tr><td class="checkbox-cell2"><div><input type="checkbox"></div></td></tr>
</table>

Html相关问答推荐

如何通过将项目包裹在迪夫中来保持最右列的对齐方式来对齐项目?

无法使xpath为HTML代码块工作

如何在一个div中心字体图标?

有没有可能一个按钮,有焦点,然后再次点击它清除它的焦点,只是使用css?

悬停时跳转的内容

连续的相同 colored颜色 单元格应位于同一列、网格框中

Div内容防止同级大小增加

在Quarto/Discrealjs演示文稿中只增加一个列表的填充

滚动两个不同高度的DIV;一个等待另一个

如何在排序上重用参数?

SVG动画只有在打开S开发工具的浏览器时才开始播放

HTML 邮箱在 Gmail 中无法正确显示

如何防止弹性项目溢出容器?

为什么每当我调整图片大小时它都会使我的其他元素移动

如何让一个 div 元素粘在另一个元素上?

如何截断一些文本并用双引号引起来?

在 html 邮箱的左侧和右侧制作多个元素很热门吗?

font awesome 的 CDN/CSS 如何工作?

为什么 `html` 上的 overflow: hidden 将滚动框移动到正文?

如何向上移动图像并溢出图像的一部分而另一部分不溢出