移动端rem布局

Posted guoliangstar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端rem布局相关的知识,希望对你有一定的参考价值。

rem.js配置:(width 为750  转换750px == 7.5rem)

// 自适应rem
(function (doc, win) {
    var docEl = doc.documentElement,
        resizeEvt = ‘orientationchange‘ in window ? ‘orientationchange‘ : ‘resize‘,
        recalc = function () {
            var clientWidth = docEl.clientWidth;
            if (!clientWidth) return;
            if(clientWidth>=750){
                docEl.style.fontSize = ‘100px‘;
            }else{
                docEl.style.fontSize = 100 * (clientWidth / 750) + ‘px‘;
            }
        };
    if (!doc.addEventListener) return;
    win.addEventListener(resizeEvt, recalc, false);
    doc.addEventListener(‘DOMContentLoaded‘, recalc, false);
})(document, window);

meta 头部设置:

 <!--主要I是强制让文档的宽度与设备宽度保持1:1,最大宽度1.0,禁止屏幕缩放。-->
    <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
    <!--这个也是iphone私有标签,允许全屏浏览。-->
    <meta content="yes" name="apple-mobile-web-app-capable">
    <!--iphone的私有标签,iphone顶端状态条的样式。-->
    <meta content="black" name="apple-mobile-web-app-status-bar-style">
    <!--禁止数字自动识别为电话号码,这个比较有用,因为一串数字在iphone上会显示成蓝色,样式加成别的颜色也是不生效的。-->
    <meta content="telephone=no" name="format-detection">
    <!--禁止email识别-->
    <meta content="email=no" name="format-detection">

移动端css 公共样式:

/* 禁用iPhone中Safari的字号自动调整 */
html {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    /* 解决ios默认滑动很卡的情况 */
    -webkit-overflow-scrolling: touch;
    height: 100%;
    width: 100%;
}

body {
    height: 100%;
    width: 100%;
    max-width: 7.5rem;
    margin: 0 auto !important;
}

/* 禁止缩放表单 */
input[type="submit"], input[type="reset"], input[type="button"], input {
    resize: none;
    border: none;
}

/* 取消链接高亮  */
body, div, ul, li, ol, h1, h2, h3, h4, h5, h6, input, textarea, select, p, dl, dt, dd, a, img, button, form, table, th, tr, td, tbody, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

/* 设置HTML5元素为块 */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block;
}

textarea {
    outline: none;
}

/* 图片自适应 */
img {
    width: 100%;
    height: auto;
    width: auto 9; /* ie8 */
    display: block;
    -ms-interpolation-mode: bicubic; /*为了照顾ie图片缩放失真*/
}

input, select {
    -webkit-appearance: none;
    appearance: none;
}

select {
    background: #fff;
    color: #555;
    /*background-image:url(‘../img/up.png‘);*/
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 0.5rem 100%;
    /*background: url(‘../../img/up.png‘) no-repeat right center;*/
}

/* 初始化 */
body, div, ul, li, ol, h1, h2, h3, h4, h5, h6, input, textarea, select, p, dl, dt, dd, a, img, button, form, table, th, tr, td, tbody, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font: 12px/1.5 ‘Microsoft YaHei‘, ‘宋体‘, Tahoma, Arial, sans-serif;
    color: #555;
/ / background-color: #fff;
}

em, i {
    font-style: normal;
}

ul, li {
    list-style-type: none;
}

strong {
    font-weight: normal;
}

.clearfix:after {
    content: "";
    display: block;
    visibility: hidden;
    height: 0;
    clear: both;
}

.clearfix {
    zoom: 1;
}

a {
    text-decoration: none;
    color: #969696;
    font-family: ‘Microsoft YaHei‘, Tahoma, Arial, sans-serif;
}

a:hover {
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
    font-family: ‘Microsoft YaHei‘;
}

img {
    border: none;
}

input {
    font-family: ‘Microsoft YaHei‘;
}

/*单行溢出*/
.one-txt-cut {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/*多行溢出 手机端使用*/
.txt-cut {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    /* -webkit-line-clamp: 2; */
    -webkit-box-orient: vertical;
}

/* 移动端点击a链接出现蓝色背景问题解决 */
a:link, a:active, a:visited, a:hover {
    background: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
    -webkit-tap-highlight-color: transparent;
}

.w50 {
    width: 50%;
}

.w25 {
    width: 25%;
}

.w20 {
    width: 20%;
}

.w33 {
    width: 33.333333%;
}

.fl {
    float: left;
}

.fr {
    float: right;
}

.db {
    display: block !important;
}

.dn {
    display: none;
}

input {
    outline: none;
}

.cursor {
    cursor: pointer;
}

/*组件切换的动画*/
.fade-enter-active, .fade-leave-active {
    transition: opacity .5s
}

/* .fade-leave-active in <2.1.8 */
.fade-enter, .fade-leave-to {
    opacity: 0
}

项目总结,望能提供帮助

以上是关于移动端rem布局的主要内容,如果未能解决你的问题,请参考以下文章

移动端适配(手机端rem布局详解)

移动端页面使用rem布局

移动端布局、手机屏幕尺寸(rem,vw,vh)及分辨率

移动端页面自适应解决方案—rem布局

详解rem布局-利用rem布局实现移动端高清显示

移动端rem布局