移动端页面元素高度等于行高,文字却没有垂直居中,是什么情况?
如题,元素内有文字,元素设置了高度和行高相等,却没有垂直居中?请问是啥子情况?
如下图:
css设置是这样的:
.Mail_list .list_block .bottom dd{
float: right;
width: 26%;
height: 20px;
line-height: 20px;
text-align: center;
border: 1px solid #ff6c00;
color: #ff6c00;
border-radius: 3px;
-webkit-border-radius: 3px;
font-size: 14px;
margin-right: 5%;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
应该是你设置了该
dd
的box-sizing: border-box
导致的,因为当你修改默认盒模型为border-box
时,你设置的height
就默认包含了内容高度
和边框高度
(2px), 所以这里你设置height:20px
, 那么你的内容高度就只剩18px
了,所以你再设置line-height:20px
是超出内容高度的,如果想要垂直居中,有3种方法:一般浏览器上看移动端:设置高度等于行高 就会是垂直居中,你先检查下有没有其他样式影响,
没有的话你加上
box-sizing: border-box
试一下。另外:用实际手机来看,没能垂直居中,这也是一个困扰很多人的老问题了,一直没有完美的解决方案,表现为ios上和浏览器上能很好的垂直居中,安卓端的文字明显偏上。
目前这个问题的只要解决方案一般是:
1.只设置
line-height
而不设置height
,不过一般没有效果。2.通过flex布局居中,不过我自己尝试了也没有效果。
3.通过transform,放大一倍再缩小一半,但是写起来繁琐而且影响布局,这个是有效果的。
4.通过js判断环境,区分安卓设置line-height。
5.我们现在在用的很偏门的方法:
元素中添加伪元素
修改当中的margin-bottom能只影响到ios端高度,至于理由我至今没搞懂,也欢迎尝试一下。
是用div写的吗 你也可以用button 或者span标签写
非常感谢 这几种方法我试下
找问题不要凭空想和猜,直接打开chrome,一切都明白了。
有可能是你放‘兑换’这个字有margin属性之类的,影响到了,你样式里面margin:0padding0;清除一下。