美文网首页
margin:0 auto;移动端失效的问题。

margin:0 auto;移动端失效的问题。

作者: Jeff9511 | 来源:发表于2017-11-13 15:26 被阅读0次

问题出现场景

首先给大家说一下,我遇到margin:0 auto;失效问题的场景,我给公司做了一个注册用户的页面,是要内嵌在app里面的,在主流的手机里面是没有问题的,但是在安卓4.0(android4.0)的手机app里面发现一个问题,其中有一个input的标签,我给了宽高属性,因为要水平居中,我给了margin:0 auto;属性,但是我发现,给完这个属性之后,这个input的元素的宽高的属性都失效了!对没有错。就是失效了。input变成了宽度100%,高度自适应了。把margin的属性去掉就恢复了。

最后的解决方案

我给了目标元素也就是这个input的父级position: relative;属性。给这input元素的本身绝对定位。下面是代码:

<input class="oSubmit oXCenter" type="submit" value="立即注册">
.oSubmit {
            display: block;
            width: 9.8rem;
            height: 2.52rem;
            overflow: hidden;
            line-height: 2.52rem;
            background-color: white;
            margin: 0 auto;
            font-size: .72rem;
            margin: 0 auto;
            margin-top: .86rem;
            background: url('img/btnBg.png') no-repeat center center;
            background-size: cover;
            color: rgb(255, 255, 255);
        }
.oXCenter {
    position: absolute;
    left: 50%;
    -ms-transform: translateX(-50%);
    /* IE 9 */
    -moz-transform: translateX(-50%);
    /* Firefox */
    -webkit-transform: translateX(-50%);
    /* Safari 和 Chrome */
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
}

就是这样算是解决了。我不知道我这个方法是不是算是笨方法,还有哪位大牛给个好的方法。
同时我还有一个问题没有解决:就是input的placeholder的兼容问题,在一些安卓(android)中会有一些偏上,给人的感觉不是多么好,不知道有么有解决的方案,百度上面的我也试了好多种,求大神指导一下。求评论。我要是找到什么好的解决方案,会在以后更新的。
下面是这次input的placeholder的设置的属性,以及图片:

TIM图片20171113150234.png
在上面的图片中可以很明显的看到上下的不居中。
右下边是一个div的标签。
<div class="contentBox ">
    <div class="inputBox">
        <input type="text" placeholder="请输入您的手机号">
    </div>
    <div class="inputBox">
        <input class="msgIpt" type="text" placeholder="短信验证码">
        <div class="msgBtn">获取验证码</div>
    </div>
</div>
 
// css
        .contentBox {
            text-align: center;
            margin-top: -1rem
        }

        .inputBox {
            margin-top: .4rem;
            position: relative;
            vertical-align: middle;
            text-align: center;
        }

        .inputBox:first-child {
            margin-top: 0
        }

        .inputBox input {
            display: inline-block;
            width: 13.08rem;
            font-size: .56rem;
            line-height: .84rem;
            color: rgba(255, 255, 255, 0.78);
            border: 1px solid rgb(246, 246, 246);
            border-radius: .2rem;
            background-color: transparent;
            /* padding: .36rem .46rem */
            padding: .36rem .46rem .34rem .46rem;
        }
        .inputBox .msgIpt {
            width: 7.9rem;
            vertical-align: top
        }   
        .inputBox .msgBtn {
            display: inline-block;
            vertical-align: top;// 不是这个的问题,我试过了。
            width: 4.78rem;
            height: 1.62rem;
            line-height: 1.62rem;
            margin-left: .24rem;
            text-align: center;
            background-color: rgb(246, 246, 246);
            font-size: .52rem;
            border-radius: .2rem;
            color: rgb(247, 160, 31)
        }   

求大神指教。做代码的多多少少都会有强迫症的~

看到当下闹得沸沸扬扬的闺蜜门事件:
卑鄙是卑鄙者的通行证,
高尚是高尚者的墓志铭,
看吧,在那镀金的天空中,
飘满了死者弯曲的倒影。
--北岛的诗

相关文章

网友评论

      本文标题:margin:0 auto;移动端失效的问题。

      本文链接:https://www.haomeiwen.com/subject/crdzmxtx.html