CSS按钮padding生效但text-align等居中属性无效应如何解决
按钮居中失效原因及解决方法
你之前尝试的属性不生效是因为缺少前置触发条件:
justify-content和align-items是Flex布局的专属属性,只有父容器设置了display: flex之后才会生效,未开启Flex布局时这两个属性不会起任何作用text-align: center仅对容器内的行内元素、行内块元素生效,如果.btn是块级元素,该属性只会居中.btn内部的文本内容,不会改变.btn本身的位置- 用固定值
padding: 750px实现的居中适配性极差,窗口尺寸变化后就会偏移,不建议使用
方案1:Flex布局实现(推荐)
给父容器.container添加如下CSS即可实现居中:
.container { display: flex; justify-content: center; /* 水平居中 */ /* 如果需要同时垂直居中,给container设置对应高度后再加 align-items: center; 即可 */ }
方案2:块级元素自动外边距居中
如果只需要水平居中,不需要处理垂直方向的对齐,可以直接给.btn设置自动左右外边距:
.btn { width: fit-content; /* 若已经给.btn设置了固定宽度可以省略这行 */ margin: 0 auto; }
方案3:行内块+text-align居中
也可以将按钮转为行内块元素,配合父容器的文本对齐属性实现居中:
.container { text-align: center; } .btn { display: inline-block; }
内容的提问来源于stack exchange,提问作者Waffle Boots
相关产品推荐
相关产品推荐

