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

问题出现场景

首先给大家说一下,我遇到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)
        }   

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 关于css常见问题,大多是移动端的。 简单的排版规则:条目与条目之间空两行,每条内容部分分段空一行。标点符号全部用...
    苏水儿阅读 10,466评论 0 9
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,907评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 最近因为筹备婚礼的事,往各种西服店跑了几次,跑着跑着就正好了解了美国这边大致婚礼的着装要求,准确说,是对新郎着装的...
    Kitty333阅读 11,534评论 1 6

友情链接更多精彩内容