当前位置: 首页 > news >正文

石家庄网站外包公司郑州大型网站建设

石家庄网站外包公司,郑州大型网站建设,制作游戏编辑器app,建网站多少钱可以卖货的一、原理 rem单位代表的是根节点的font-size大小#xff0c;所以当我们在页面上使用rem去替代px的时候#xff0c;就可以通过修改根节点font-size的值#xff0c;动态地让页面上的元素根据不同浏览器宽高下去实现变化。 二、工具 1.postcss-pxtorem 作用#xff1a;在编…一、原理 rem单位代表的是根节点的font-size大小所以当我们在页面上使用rem去替代px的时候就可以通过修改根节点font-size的值动态地让页面上的元素根据不同浏览器宽高下去实现变化。 二、工具 1.postcss-pxtorem 作用在编译打包代码的时候帮助我们把页面上的px单位转化为rem单位。因为设计图一般是给一个固定的尺寸所有元素都统一以px为单位提供所以一般情况下我们为了尽可能还原设计图都一一对应地按同样的数值去实现页面最后为了高效率自动化地将对应的px都转化为rem所以我们必须使用这款插件。 依赖使用该插件所需要的几个依赖。 2.flexible.js 作用根据浏览器的可视窗口大小动态地去设置根节点font-size的值也就是rem的基准值。实现各元素根据不同屏幕大小与设计图的宽高比例进行动态地放大缩小。 (function (win, lib) {var doc win.documentvar docEl doc.documentElementvar metaEl doc.querySelector(meta[nameviewport])var flexibleEl doc.querySelector(meta[nameflexible])var dpr 0var scale 0var tidvar flexible lib.flexible || (lib.flexible {})if (metaEl) {console.warn(将根据已有的meta标签来设置缩放比例)var match metaEl.getAttribute(content)// eslint-disable-next-line no-useless-escape.match(/initial\-scale([\d\.])/)if (match) {scale parseFloat(match[1])dpr parseInt(1 / scale)}} else if (flexibleEl) {var content flexibleEl.getAttribute(content)if (content) {// eslint-disable-next-line no-useless-escapevar initialDpr content.match(/initial\-dpr([\d\.])/)// eslint-disable-next-line no-useless-escapevar maximumDpr content.match(/maximum\-dpr([\d\.])/)if (initialDpr) {dpr parseFloat(initialDpr[1])scale parseFloat((1 / dpr).toFixed(2))}if (maximumDpr) {dpr parseFloat(maximumDpr[1])scale parseFloat((1 / dpr).toFixed(2))}}}if (!dpr !scale) {// var isAndroid win.navigator.appVersion.match(/android/gi);var isIPhone win.navigator.appVersion.match(/iphone/gi)var devicePixelRatio win.devicePixelRatioif (isIPhone) {// iOS下对于2和3的屏用2倍的方案其余的用1倍方案if (devicePixelRatio 3 (!dpr || dpr 3)) {dpr 3} else if (devicePixelRatio 2 (!dpr || dpr 2)) {dpr 2} else {dpr 1}} else {// 其他设备下仍旧使用1倍的方案dpr 1}scale 1 / dpr}docEl.setAttribute(data-dpr, dpr)if (!metaEl) {metaEl doc.createElement(meta)metaEl.setAttribute(name, viewport)metaEl.setAttribute(content, initial-scale scale , maximum-scale scale , minimum-scale scale , user-scalableno)if (docEl.firstElementChild) {docEl.firstElementChild.appendChild(metaEl)} else {var wrap doc.createElement(div)wrap.appendChild(metaEl)doc.write(wrap.innerHTML)}}function refreshRem() {var width docEl.getBoundingClientRect().widthif (width / dpr 540) {width width * dpr}var rem width / 10docEl.style.fontSize rem pxflexible.rem win.rem rem}win.addEventListener(resize,function () {clearTimeout(tid)tid setTimeout(refreshRem, 300)},false)win.addEventListener(pageshow,function (e) {if (e.persisted) {clearTimeout(tid)tid setTimeout(refreshRem, 300)}},false)if (doc.readyState complete) {doc.body.style.fontSize 12 * dpr px} else {doc.addEventListener(DOMContentLoaded,function () {doc.body.style.fontSize 12 * dpr px},false)}refreshRem()flexible.dpr win.dpr dprflexible.refreshRem refreshRemflexible.rem2px function (d) {var val parseFloat(d) * this.remif (typeof d string d.match(/rem$/)) {val px}return val}flexible.px2rem function (d) {var val parseFloat(d) / this.remif (typeof d string d.match(/px$/)) {val rem}return val} })(window, window[lib] || (window[lib] {})) 三、实现方式 把以上工具都准备好之后便可以通过以下的方式在项目中实现响应式。 1.首先是postcss-pxtorem当我们把依赖写进package.json之后只需要npm install便可以将所需插件代码安装到项目当中。最后在项目根目录中创建**.postcss.js**文件填写以下内容即可全局转化px单位。 可以看到以下得代码中只有一行关键的配置那就是rootValue这个参数。我们应该按照根目录结点的font-size值去填写该值一般情况下配置flexible插件这个值就是将设计图的分辨率/10得出来的结果。 // https://github.com/michael-ciniawsky/postcss-load-configmodule.exports {plugins: {postcss-import: {},postcss-url: {},// to edit target browsers: use browserslist field in package.jsonautoprefixer: {},postcss-pxtorem: {rootValue: 136.6,}} }2.第二步在main.js全局引入flexible.js文件全局监听屏幕宽高动态设置根结点font-size大小。 main.js import /utils/flexible3.设置完前面两步在写页面的时候只需要按照设计图的尺寸去编写页面。 四、问题 如果需要设置特定的文件夹目录下的文件则需要在postcss.js中添加正则代码。以下方式是可以设置让pxtorem作用到某个具体的文件夹。需要注意的是这种方式只使用与pxtorem插件像px2rem这种类似的插件是没有这个功能的。 // https://github.com/michael-ciniawsky/postcss-load-configmodule.exports {postcss-pxtorem: {rootValue: 136.6,propList: [*],// 需要过滤掉后台的所有页面单独对前台的页面进行单位转换exclude: (e) {if (/src(\\|\/)workplace/i.test(e)){return false}return true},}} }
http://www.hkea.cn/news/14481365/

相关文章:

  • 好的提升设计师网站抄袭的网站
  • 网站布局介绍番禺营销型网站建设
  • 优质网站的衡量标准微信小程序在哪里找?
  • 网页设计制作音乐网站番禺网站建设公司有哪些
  • 淘宝有做钓鱼网站的吗后端低代码平台
  • vs网站怎么做wordpress 页面连接
  • 网站建设市场调查报告网站建设必学课程
  • 文章发布在哪个平台好名风seo软件
  • 广州哪个公司做网站wordpress支付插件绿色
  • 临沂网站制作定制智慧团建登录
  • 镇江网站制作公司全国装修公司前50强
  • 什么是建设网站问答类网站开发
  • 怎样做婚庆网站深圳注册公司注册资金要求
  • 网站浏览成交指标企业微信平台
  • 福田网站建设福田网站设计网络服务示范区创建情况
  • 北京网站设计联系电话中国广告公司前十强
  • 海洋网络网站建设图片在线制作表情
  • seo比较好的网站在凡客建站中建设网站方法
  • 工信部网站域名查询wordpress图片太多
  • 一个月做网站上海元山建设有限公司网站
  • 手机网站是用什么开发的网站生成手机版
  • 做网站一般都用什么字体线下销售怎么做推广
  • 建设信用卡网站登录如何制作纯静态网站
  • 摄影网站投稿石家庄新闻综合频道官网
  • 创建一个网站流程图3d效果图制作教程
  • 公司网站 用 个人备案域名上海市网站建设
  • 怎样给网站做图标seo待遇
  • 门户网站建设和运行保证的磋商文件肇庆建设网站
  • 深圳做网站开发费用长沙做网站优化的公司
  • dw做网站一般是多大的尺寸微网站 .net