响应式或自适应布局的流派(此图有可能名称反了,但不重要,我个人更偏向于 bootstrap 被叫作响应式的)本文旨在罗列实现响应式或自适应布局的几种方案。...还带来了一个蛮有意思的效果,在只有 px 的时候,宽度变化想要高度也变化是困难的, 而宽度随 em 变化时,如果高度也写成 em 那就很妙了。...可以说 vw 方案其实要比 rem 方案更应该被推崇,至少大漠也这么认为。但是吧,rem 方案 和 vw 方案,在非全屏宽布局中其实都不太 OK。....方案类似的效果,但不需要修改根节点字体大小。...不过,此方案在屏宽大于 980px 后就没用了,因此只适用于手机端。 以前有试用过三个月,没有出现过纰漏,感觉也是个非常有效的方案。
现在市场常见的移动端web页面通常有两种,单独制作移动端页面和响应式页面两种方案。主流还是PC和移动端各自单独制作一套页面。...doc.addEventListener) { return; } // 适配rem的js代码函数,适用于移动web开发界面比例适配 var supportsOrientationChange...doc.documentElement.style.fontSize = fontPX + "px"; } } console.log("初始化设置rem," + supportsOrientationChange...= viewWidth / 10 function setRemUnit () { var rem = docEl.clientWidth / 10 docEl.style.fontSize...单位 4.页面上的单位尽量用rem和百分比
例如,把盒子的宽度设置成百分比,网页就会根据浏览器的宽度和屏幕的大小来自动调整显示效果。 而且一般的情况下,我们都会用 max-width 和 min-width 做相关的宽度限制以防止过度的拉伸。...因为市面上的手机宽度比并不是一定的,千万别按照宽度来计算高度的百分比,而是应该按照高度来计算,其他参照参考以上表格 1.2 弹性布局 弹性盒布局是 CSS3 中的一种新布局模式,可以轻松地创建响应式网站布局...= 设计稿的宽度 / 100 rem 适配布局优点 兼容性好 ios: 6.1 系统以上都支持 android: 2.1 系统以上都支持 大部分主流浏览器都支持 相较于之前的静态布局和百分比方案...vw : 1vw 等于视口宽度的 1% vh : 1vh 等于视口高度的 1% vmin : 选取 vw 和 vh 中最小的那个 vmax : 选取 vw 和 vh 中最大的那个...+vw/vh 布局 rem+vw/vh 布局原理 vw/vh 方案能够实现宽度和高度的自适应,并且逻辑清晰,由于其被支持得较晚,所以存在一定的兼容性问题。
> 1366) { var rem = wW * whdef; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值 var html = document.documentElement...; html.style.fontSize = rem + "px"; //适用于PC网站 } else { var rem = 1400 * whdef...; var html = document.documentElement; html.style.fontSize = rem + "px"; } } 如何 resize...有一个浮动导航占位符,跟实际浮动导航一样的高度,浮动导航占位符的宽度 width 可以无限大,一般设置为 99999px,足够大,他的父级元素超出隐藏就好了,当实际浮动导航的浮动时,浮动占位符占住原先的位置...= docEls.getBoundingClientRect().width/25; docEls.style.fontSize = window.rem + 'px'; }; recalcs
例如,把盒子的宽度设置成百分比,网页就会根据浏览器的宽度和屏幕的大小来自动调整显示效果。 而且一般的情况下,我们都会用 max-width 和 min-width 做相关的宽度限制以防止过度的拉伸。...因为市面上的手机宽度比并不是一定的,千万别按照宽度来计算高度的百分比,而是应该按照高度来计算,其他参照参考以上表格 1.2 弹性布局 弹性盒布局是 CSS3 中的一种新布局模式,可以轻松地创建响应式网站布局...= 设计稿的宽度 / 100 rem 适配布局优点 兼容性好 ios: 6.1 系统以上都支持 android: 2.1 系统以上都支持 大部分主流浏览器都支持 相较于之前的静态布局和百分比方案...vw : 1vw 等于视口宽度的 1% vh : 1vh 等于视口高度的 1% vmin : 选取 vw 和 vh 中最小的那个 vmax : 选取 vw 和 vh 中最大的那个 计算方式实际上与百分基本一致...+vw/vh 布局 rem+vw/vh 布局原理 vw/vh 方案能够实现宽度和高度的自适应,并且逻辑清晰,由于其被支持得较晚,所以存在一定的兼容性问题。
的字体大小为 设备宽度 / 设计稿宽度 * 100 个px像素,以 iPhone 6/7/8 的宽度 375px 为例,则 html 字体的大小为 50px,即在宽度为 375 px 的设备上,1rem...对于开发人员,一个宽度为 50px 的 div,就可以很轻松的通过除以 100,计算出对应的 rem 为 0.5rem,不需要再根据各种机型进行适配,0.5rem 换算到 iPhone 6/7/8 为...横版页面的 rem 适配 上面第二部分通过动态设置 html 的 font-size 已经实现了页面随设计稿比例缩放,这种方式是页面宽度 100% 撑满设备宽度的,但是很多情况下,我们更希望部分横版页面能够高度撑满设备高度...document.documentElement.style.fontSize = 100 * clientHeight / 375 + 'px' 限制横版页面的最大宽度,假设最大宽度为 670px...htmlFontSize / instanceWidth : 1 return scale } // 设置 html 用于处理 rem 的 font-size 和 页面二次缩放 function
,该方案自动帮你设置),此方案仅适用于移动端web !...(老方案是,屏幕越大元素越大;此方案是,屏幕越大,看的越多) 有效解决移动端真实1px问题(这里的1px 是设备屏幕上的物理像素) 如何使用 绝不是每个地方都要用rem,rem只适用于固定尺寸!...比如你在效果图上量取的某个按钮元素长 55px, 宽37px ,那你直接可以这样写样式: .myBtn { width: 0.55rem; height: 0.37rem; } 下面是源码和...答:假设你的效果图宽度是750,在这个效果图上可能有一个宽度为7rem(高清方案默认 1rem = 100px)的元素。...50px 如果dpr=2(如iphone 5 和 6),则html的font-size为100px,此时 1rem = 100px 如果dpr=3(如iphone 6 sp),则html的font-size
(下边的方法适用于使用cli2脚手架搭建的项目,现在好多数项目使用cli3搭建,我在后边的文章中增加了对cli3项目自适应的配置.)...10%的屏幕宽度 *(75px/75)rem 2) 找到根目录下的vue-loader.conf.js 本人使用的是这种方法....首先需要设置html的fontsize值,1rem = html的font-size,这里咱们动态设置一下,可以直接在index.html中设置 PC端 (function () { function...//限制展现页面的最小宽度 rootWidth = rootHtml.clientWidth < 1366 ?.../ 19.2; // 动态写入样式 rootHtml.style.fontSize = `${rem}px`; } setRootFontSize();
我们做的h5页面只能在移动端访问(rem不兼容低级版本浏览器) 第一步:从UI设计师拿到设计稿(psd) 640*1136 第二部:在样式中给HTML一个fontSize值,我们一般都给一个比较好算的值...} 第三步:写页面,写样式 完全按照设计尺寸来写样式,不管任何事情,设计稿给你的宽度,高度字体大小、margin、padding的值是多少,我们就写多少 但是我们在写样式的时候,需要把得到的像素值除以...100,计算出对应的rem值,我们设定的也都是rem的值 (值得注意点的是外层盒子的宽度我们一般还是不写固定值,沿用流式布局的思想) 第四步:根据当前屏幕的宽度和设计稿的宽度来计算我们的HTML的fontSize...的值 设计稿:640 fontSize=100 手机:320 fontSize=50 手机:375 fontSize=58.59375 // 根据当前屏幕的宽度和设计稿宽度的比例...,动态计算一下宽度下fontSize值应该是多少,如果fontSize值改变了,之前的rem会自动跟着放大或缩小 ~function () { var desW=640,
什么是rem 说到rem自然就会想到em,我们知道em是相对于父元素的字体大小的单位,那么rem则是相对于根元素也就是元素的字体大小的单位。 2.如何用rem解决移动端适配 ?...通过这张图我们就可以观察到,div的宽度和高度是根据根元素()来决定的,根元素的字体大小为100px,然后给div的宽度和高度设置为2rem、1rem,最后生成的div的宽度为200px、高度为100px...function c() { var d = document.documentElement; var cw = d.clientWidth || 750; d.style.fontSize...resize; fn = function() { var width = docEle.clientWidth; width && (docEle.style.fontSize...= 10 * (width / 375) + "px"); //设置html的fontSize,随着event的改变而改变。
vue项目移动端、pc端适配方案 lib-flexible 根据屏幕宽度,自动设置html的font-size postcss-px2rem 自动将px单位转换成rem 一、第一步先安装 flexible...和 postcss-px2rem(命令行安装) npm i lib-flexible -S npm i postcss-px2rem -S 简要介绍这两个包的用途: flexible会为页面根据屏幕自动添加标签...postcss-px2rem会将px转换为rem,rem单位用于适配不同宽度的屏幕,根据标签的font-size值来计算出结果,1rem=html标签的font-size值。...var rem = width / 10; docEl.style.fontSize = rem + 'px'; flexible.rem = win.rem = rem...= width / 10; docEl.style.fontSize = rem + 'px'; flexible.rem = win.rem = rem; }
这种情况下,利用rem来实现移动端的适配会更为方便一点。在W3C中,对rem的定义是相对于根元素字体的大小,即根元素的字体大小是10px,那2rem的实际尺寸就是20px。...: { // 1rem等于75px,适用于750px视觉稿 remUnit: 75,...'orientationchange' : 'resize', // 设计稿的宽度 designWidth = 750, calc = function...() { var clientWidth = element.clientWidth; // 定一个最大的宽度,以免全屏后难看 if...clientWidth) return; element.style.fontSize = 40 * (clientWidth / designWidth) + 'px';
1024) { // docEl.style.fontSize = 100 * (1024 / 375) + 'px'; // } else { // docEl.style.fontSize...如果要切移动页面,你可以先把效果图宽度等比例缩放到640px。 2. 为什么要设置html的font-size? rem就是根元素(即:html)的字体大小。...根据上面的js代码,如果页面宽度低于640px,那么页面中html的font-size也会按照(当前页面宽度/640)的比例变化。...一般导航栏不用rem,而是用flex布局,这是因为导航栏点击最多,所以给他一个固定的大小(高度固定,宽度自适应)。...大家可以看看淘宝的这个手机页面 淘宝手机站,基本就是这种感觉,底部导航和顶部搜索框用的高固定,宽自适应的方案,其余的部分基本都是随着浏览器宽度变化在等比例缩放。 最终页面代码首页代码大致如下 <!
设计稿恰巧是750px,量出宽度是多少,那么你就定义多少rpx,假设设计稿640px宽度则就需要转换一下,你需要转换一下 1px = 750/640 rpx 微信小程序也支持rem尺寸单位,rem:相对单位...rem和rpx的换算关系:rem: 规定屏幕宽度为20rem;1rem = (750/20)rpx 在开发中, 1)....根据设计稿宽度算出rem和px直接的转换公式 例如:640px的设计稿,转换公式就是按照上面js中这句而来【docEl.style.fontSize = 20 * (clientWidth / 320)...vw:viewpoint width,视口宽度,1vw等于视窗宽度的1%。 vh:viewpoint height,视口高度,1vh等于视窗高度的1%。...小程序中,窗口宽度固定为100vw,将窗口宽度平均分成100份,1份是1vw 小程序中,窗口高度固定为100vh ,将窗口高度平均分成100份,1份是1vh [图片.png] vmin:vw和vh中较小的那个
解决 流式布局,也叫做百分比布局,指的是页面上大部分的容器和元素的宽度都不是定死,可能是 百分比单位,也可能是rem单位 案例 代码 普通的图片和容器,写单位的时候换成 百分比 或者 flex即可。...flexible 和flex布局没关系 老婆和老婆饼 也没有关系 这个解决方案是可以和以上的流式布局搭配使用的,rem的作用是主要是针对字体实现 跟随屏幕变化而变化 rem css单位,相对长度...("html").style.fontSize; } } flexible效果 综合flexible 和 rem 根据以上的特点...375px,其中存在一个view 宽度高度均为 100px ,字体大小 为 100px view { width: 200rpx; height: 200rpx;...单位 名称 vw 100vw 等于 视口的宽度 vh 100vh 等于 视口的高度 vMax vw 和 vh 中的较大的那个 vMin vw 和 vh 中的较小的那个 以上单位 在移动端中,或者在小程序中都支持
、验证等功能,适用于评论输入、内容编辑、详细描述等需要多行文本输入的场景。...:支持根据内容自动调整高度 ✅ 行数控制:支持设置最小和最大行数 ✅ 长度限制:支持最大长度限制 ✅ 标签和提示:支持标签、提示文本、错误提示 ✅ 多种尺寸:支持 small、medium、large...自动调整高度 默认开启:autoHeight: true,提供更好的用户体验 固定高度:需要固定高度时,设置 autoHeight: false 和 inputHeight 行数控制:使用 minRows...行数设置 最小行数:minRows: 3 适用于大多数场景 最大行数:maxRows: 10 适用于一般内容输入 长文本:长文本编辑时,可以设置更大的 maxRows 6....$content, inputWidth: '100%' // 百分比宽度 }) Q6: 如何设置固定高度?
表示整个浏览器窗口的高度,包括侧边栏、窗口镶边和调正窗口大小的边框。...document.documentElement.clientHeight:获取浏览器布局视口高度,包括内边距,但不包括垂直滚动条、边框和外边距。...docEl.style.fontSize = rem + 'px' } setRemUnit(); rem 是相对于 html节点的 font-size来做计算的。...下面的代码可以保证在页面大小变化时,布局可以自适应,当触发了 window的 resize和 pageShow事件之后自动调整 html的 fontSize大小。...6.2 vh、vw方案 vh、vw方案即将视觉视口宽度 window.innerWidth和视觉视口高度 window.innerHeight 等分为 100 份。
表示整个浏览器窗口的高度,包括侧边栏、窗口镶边和调正窗口大小的边框。...document.documentElement.clientHeight:获取浏览器布局视口高度,包括内边距,但不包括垂直滚动条、边框和外边距。...docEl.style.fontSize = rem + 'px'}setRemUnit(); rem 是相对于 html节点的 font-size来做计算的。...下面的代码可以保证在页面大小变化时,布局可以自适应,当触发了 window的 resize和 pageShow事件之后自动调整 html的 fontSize大小。...6.2 vh、vw方案 vh、vw方案即将视觉视口宽度 window.innerWidth和视觉视口高度 window.innerHeight 等分为 100 份。
视觉视口不会影响布局视口的宽度和高度。 固定大小——跟屏幕大小相同,在上面。 layout viewport(布局视口):布局视口定义了pc网页在移动端的默认布局行为。...3、rem/ vh和vw / 流式布局 (2)rem布局——等比缩放布局(网易新闻) em : 是一个相对单位,1em等于当前元素或父元素的font-size值。 ...+ 'px'; 复制代码 介绍一个小插件:vscode的 px to rem 快捷键:ALT+Z (3)vh/vw vw:相对于视窗的宽度,视窗宽度是100vw vh:相对于视窗的高度...,宽度自适应,常用flex 对于大屏幕来说,用户体验并不是特别好,有些布局元素会显得很长 4、响应式布局和自适应布局的区别 自适应布局 (1)出现的背景 在PC时代初期,网页设计者都会设计固定宽度的页面...它可以自动识别屏幕宽度、并做出相应调整。网页的排版布局和展示的内容会有所变动。 (2)概念 根据屏幕大小变化,页面的内容排版布局会自动调整变动,已呈现更好的用户体验。