移动端布局方案,简单高效,完美适配各种机型

更新日期: 2019-09-21阅读: 2.9k标签: 布局

第一步:使用淘宝的lib/flexible+rem布局

原理:

rem布局:使用rem作为元素大小的单位,rem=fount-size,根据不同的屏幕宽度设置不同的fount-size值,这样元素也会跟着屏幕变大或变小

lib/flexible:

通过js查询屏幕大小,设置viewport标签的同时始终将fount-size设置为屏幕宽度的1/10。

我们也应该将设计稿分成1/10与之对相应,

由此得到1rem=屏幕宽度的1/10=设计稿的1/10

如果设计稿大小为750px,则1rem=75px,

比如在设计稿上量到一个宽度为150的元素,可以通过150/75得到此元素在设备中的宽度为2rem

用法:

去掉html中的viewport标签,vue项目在public/index.html中操作

vue项目中在main.js中引入flexible

import ' lib/flexible/flexible.js '

引入后就实现了动态设置fount-size和viewport标签了,接下来我们只要在项目中以rem为单位写样式就可以了,但是每次都要手动计算rem太麻烦,可以使用插件postcss-px2rem-exclude


第二步:使用postcss-px2rem-exclude将px转换为rem

使用此插件后,它会将px按照我们配置的比例来转换成rem

用法:

安装:cnpm install postcss-px2rem-exclude -S

配置:安装插件后在package.json添加如下代码

"postcss": {    
	"plugins": {		    
		"autoprefixer": {},
		   "postcss-px2rem-exclude": {				    
			"remUnit": 75,//你的设计稿的宽度的1/10为多少px此处就填多少,一般设计稿为750px
			"exclude": "/node_modules|floder_name/i"   //如果你使用了第三放ui库,将它添加到此处,以免冲突   
		}    
	}    
},
使用:
1、需要使用rem单位的直接写px即可
2、强制使用px为单位如fount-size:font-size: 28px; /*px*/  编译后会生成适应三种dpr的大小
[data-dpr="1"] .selector {
   font-size: 14px;
}
[data-dpr="2"] .selector {
   font-size: 28px;
}
[data-dpr="3"] .selector {
    font-size: 42px;
}
 3、不需要转换的如1像素边框:border: 1px solid #ddd; /*no*/
 
到此我们就可以按照设计稿的大小以px为单位进行开发了,不过flexible不兼容ipad,所以我们还要加一部


 

第三步:在html的head中加入适配ipad的script标签

直接赋值粘贴就行

<script>
/(iPhone|iPad|iPhone OS|Phone|iPod|iOS)/i.test(navigator.userAgent)&&(head=document.getElementsByTagName('head'),viewport=document.createElement('meta'),viewport.name='viewport',viewport.content='target-densitydpi=device-dpi, width=480px, user-scalable=no',head.length>0&&head[head.length-1].appendChild(viewport));
</script>

这样下来几乎所有的移动端都能适配了

来自:https://www.cnblogs.com/yuanlichao/p/11564115.html?utm_source=tuicool&utm_medium=referral


链接: https://www.fly63.com/article/detial/5427

css两端对齐——div+css布局实现2端对齐的4种方法总结

css两端对齐,通过margin负值、justify、space-between、column-count等多种方式来实现css的两端对齐。

flex布局,学习flex弹性布局总结

flex布局(Flexible Box)是对界面css盒模型的一个优化,适应不同尺寸的屏幕,被定义flex的容器可以控制子元素的排列方向和大小,能够用更简单清晰的代码来完成复杂的布局。

html通过css,js实现div悬浮效果总汇,如原生JS实现滚动到一定位置实现div悬浮

在我们的实际开发中,经常会遇到页面中需要悬浮效果,本文将介绍通过fixed的实现,以及通过原生Js实现滚动到一定位置,实现div的悬浮

理解css中Grid布局,在项目中如何实现grid页面布局

CSS中Grid是一种二维网格式布局方式,Grid是为了解决二维布局问题而创建的CSS模块。使用Gird的好处,Gird在浏览器的兼容性,Grid布局的示例源码...

使用flex实现5种常用布局

flex常用布局:经典的上-中-下布局。在上-中-下布局的基础上,加了左侧定宽 sidebar。左边是定宽 sidebar,右边是上-中-下布局。还是上-中-下布局,区别是 header 固定在顶部,不会随着页面滚动。左侧 sidebar 固定在左侧且与视窗同高,当内容超出视窗高度时,在 sidebar 内部出现滚动条。

你以为 CSS 只是个简单的布局?

本文中,所有的图形都是在单个标签内实现的,大量使用了 CSS3 中的 ::before 、::after 伪元素,transparent 、border,多重线性与径向渐变,多重内外阴影,如果你的效果不尽人意,请尝试在 Chrome 浏览器下预览。

html实现时间轴_纯css实现响应式竖着/垂直时间抽布局效果

html实现用时间点来展示事件发生点来代替用table展示一条条数据,能够给人清晰、一目了然能够看清事情发生的过程,UI页面也显示的那么清晰。如何用css+html做出时间轴展示事件点的?

基于jquery 横向/纵向 时间轴插件推荐

这篇文章主要整理一些关于基于jquery,实现横向/纵向时间轴的插件推荐:jquery.jqtimeline插件、timeline.js插件、Timeglider.js插件、Melon HTML5 、jQuery Timelinr、Timeline Porfolio

CSS position 属性_css中常用position定位属性介绍

css可以通过为元素设置一个position属性值,position定位是指定位置的定位,以下为常用的几种:static(静态定位)、relative定位(相对定位)、absolute定位(绝对定位)、fixed(固定定位)、inherit定位

css圣杯布局的实现方式

css圣杯布局思路:外面一个大div,里面三个小div(都是浮动)。实现左右两栏宽度固定,中间宽度自适应。中间栏优先渲染。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!