无法使float布局的div内链接居中,求助解决方案
解决链接在div容器中居中的问题
方案1:修复现有float布局
你当前的text-align:center已经能让链接水平居中,如果要同时实现垂直居中,给.column添加line-height:50px(与容器高度一致)即可,行内元素会自动沿基线垂直居中。修改后的CSS如下:
.column { float: left; width: 33.33%; height: 50px; text-align: center; line-height: 50px; /* 新增:实现垂直居中 */ background-color: #08d; border-radius: 12px; border: 0; box-sizing: border-box; color: #eee; cursor: pointer; font-size: 18px; margin-top: 38px; } .row:after { content: ""; display: table; clear: both; }
方案2:改用Flex布局(更推荐)
float是较老旧的布局方案,Flex布局能更简洁地实现元素双方向居中,还无需手动处理清除浮动。修改方式如下:
CSS代码
.row { display: flex; gap: 8px; /* 可选:给列之间添加间距 */ margin-top: 38px; } .column { flex: 1; /* 让三个列自动平分父容器宽度 */ height: 50px; display: flex; align-items: center; /* 垂直居中 */ justify-content: center; /* 水平居中 */ background-color: #08d; border-radius: 12px; border: 0; box-sizing: border-box; color: #eee; cursor: pointer; font-size: 18px; }
HTML代码(无需改动)
<div class="row"> <div class="column"><a href="javascript: document.saveExpense.submit()" role="menuitem">Create</a></div> <div class="column"><a href="javascript: document.switchToIncomeTransaction.submit()" role="menuitem">Switch to income transaction</a></div> <div class="column"><a href="javascript: document.cancelTransaction.submit()" role="menuitem">Cancel</a></div> </div>
说明
flex:1替代手动计算的33.33%宽度,让列自动平分空间;display:flex配合两个居中属性,一步实现水平+垂直双居中;gap属性可直接控制列间距,比margin更直观易维护。
内容的提问来源于stack exchange,提问作者asu
相关产品推荐
相关产品推荐

