Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 五月婷婷俺来也,免费在线观看亚洲,日本一区免费观看

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          初識(shí)HTML,什么是HTML?

          eb標(biāo)準(zhǔn):

          由于不同瀏覽器解析出來的網(wǎng)頁效果可能不同,所以需要通過web標(biāo)準(zhǔn)對(duì)其進(jìn)行約束使其一致,主要包括三個(gè)方面:

          結(jié)構(gòu)標(biāo)準(zhǔn):

          結(jié)構(gòu)用于對(duì)網(wǎng)頁元素進(jìn)行整理和分類,主要指的是HTML。

          表現(xiàn)標(biāo)準(zhǔn)

          表現(xiàn)用于設(shè)置網(wǎng)頁元素的版式、顏色、大小等外觀樣式,主要指的是CSS。

          行為標(biāo)準(zhǔn):

          行為是指網(wǎng)頁模型的定義及交互的編寫,主要指的是 JavaScript。

          初識(shí)HTML:

          html 全稱 Hyper Text Markup Language ,中文譯為:“超文本標(biāo)記語言” ,描述網(wǎng)頁的一種語言。

          HTML發(fā)展:

          XHTML 是一個(gè) W3C 標(biāo)準(zhǔn),可擴(kuò)展超文本標(biāo)簽語言(EXtensible HyperText Markup Language),更嚴(yán)格更純凈的 HTML 版本,作為一種 XML 應(yīng)用被重新定義的 HTML。



          HTML中的注釋

           <!-- 注釋標(biāo)簽:注釋的內(nèi)容 -->

          條件注釋:

          條件注釋的作用是:定義只有Internet Explorer才執(zhí)行條件注釋中的html標(biāo)簽。

          
              <!--[if IE 8]>
                  .... some HTML here ....
              <![endif]-->

          HTML骨架:

          <!DOCTYPE html> <!-- 聲明文檔類型版本為html5 -->
          <html lang="en"> <!-- 網(wǎng)頁的跟標(biāo)簽,lang=""用來設(shè)置網(wǎng)頁語言,其值還有zh-CN中文簡(jiǎn)體、fr法語等,設(shè)置后當(dāng)系統(tǒng)設(shè)置語言和網(wǎng)頁語言發(fā)生沖突時(shí)會(huì)提示是否翻譯網(wǎng)頁 -->
              <head> <!-- 網(wǎng)頁的頭部 -->
                  <meta charset='UTF-8'> <!-- 聲明字符編碼,其值還有g(shù)bk和gb2312 -->
                  <meta name="viewport" content="width=device-width,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0,initial-scale=1.0"> <!-- 開啟移動(dòng)端視口 -->
                  <meta name="apple-mobile-web-app-capable" content="yes"> <!-- 開啟ios快捷啟動(dòng)方式 -->
                  <meta name="apple-mobile-web-app-status-bar-style" content="black"> <!-- 設(shè)置iOS頂部通欄樣式 -->
                  <meta name="format-detection" content="telephone=no"> <!-- 遇到數(shù)字不轉(zhuǎn)成電話號(hào)碼 -->
                  <meta http-equiv="X-UA-Compatible" content="ie=edge"> <!-- X-UA-Compatible是針對(duì)IE瀏覽器做兼容的,ie=edge表示兼容edge,若后面ie=7,則表示兼容IE7 -->
                  <meta name='keywords' content='This is a key words'> <!-- 網(wǎng)站搜索關(guān)鍵字 -->
                  <meta name='description' content='this is description'> <!-- 描述網(wǎng)站的信息 -->
                  <link rel="shortcut icon" type="image/x-icon" href="圖片路徑 "/> <!--  網(wǎng)站的圖標(biāo),如果圖標(biāo)是gif圖,則需要改:type="image/gif",引入網(wǎng)站圖標(biāo)另一種方法:命名為favicon.ico文件放到網(wǎng)站根目錄下 -->
                  <link rel="stylesheet" type="text/css" href="css文件路徑"/> <!-- 引用css文件 -->
                  <base target="_blank"/> <!-- base標(biāo)簽,定義這個(gè)網(wǎng)頁中a鏈接打開窗口的方式,其值還有_self -->
                  <title>標(biāo)題</title> <!-- 網(wǎng)站的標(biāo)題 -->
                  <style type="text/CSS">  /* 用來寫CSS代碼,type="text/CSS"可以省略 */
                      div{width:100px; height:100px; color:white;}
                  </style>
              </head>
              <body> <!-- 網(wǎng)頁的主體 -->
                  <h1>標(biāo)題</h1> <!-- 標(biāo)題標(biāo)簽,共六個(gè)級(jí),分別為:h1~h6,大小逐級(jí)遞減,h1在一個(gè)網(wǎng)頁中只允許出現(xiàn)一次。 -->
                  <p>段落</p> <!-- 段落標(biāo)簽 -->
                  <hr/> <!-- 單線標(biāo)簽,所有單標(biāo)簽后面的關(guān)閉符均可以省略 -->
                  <br/> <!-- 換行標(biāo)簽 -->
                  </div></div> <!-- 無語義化標(biāo)簽布局用,上面的標(biāo)簽是語義化標(biāo)簽 -->
                  <span>span</span> <!-- 無語義化標(biāo)簽分割用 -->                
                  <strong>加粗</strong> <!-- 加粗標(biāo)簽 -->
                  <b>加粗</b> <!-- 加粗標(biāo)簽 -->
                  <i>傾斜</i> <!-- 傾斜標(biāo)簽 -->
                  <em>傾斜</em> <!-- 傾斜標(biāo)簽 -->
                  <s>刪除線</s> <!-- 刪除標(biāo)簽 -->
                  <del>刪除線</del> <!-- 刪除標(biāo)簽 -->
                  <u>下劃線</u> <!-- 下劃線標(biāo)簽 -->
                  <ins>下劃線</ins> <!-- 下劃線標(biāo)簽 -->
                  <img src="圖片路徑" alt="圖片無法加載,提示文字" title="鼠標(biāo)懸停,提示文體" border="2"/> <!-- 圖像標(biāo)簽,border是邊框?qū)傩?,width和height屬性設(shè)置圖像的寬度和高度 -->
                  <a href="跳轉(zhuǎn)目標(biāo)" target="_self">鏈接的命名</a> <!-- 鏈接標(biāo)簽,target屬性為鏈接頁面打開的方式,默認(rèn)值_self為自身打開;_blank為新窗口打開;_new為新窗口打開,相同頁面只會(huì)打開一個(gè);_top跳出框架-->
                  <ul> <!-- 無序列表 -->
                      <li>列表項(xiàng)1</li>
                      <li>列表項(xiàng)2</li>
                      <li>列表項(xiàng)3</li>
                  </ul>
                  <ol type="A"> <!-- 有序列表,屬性type可以控制li序號(hào)的樣式,其屬性值有:1、A、a、I、i-->
                      <li>中國</li>
                      <li>美國</li>
                      <li>英國</li>
                  </ol>
                  <dl> <!-- 自定義列表 -->
                      <dt>分類1</dt> <!-- 分類名稱 -->
                      <dd>分類1第1項(xiàng)</dd> <!-- 類的項(xiàng) -->
                      <dd>分類1第2項(xiàng)</dd>
                      <dt>分類2</dt>
                      <dd>分類2第1項(xiàng)</dd>
                      <dd>分類2第2項(xiàng)</dd>
                  </dl>
                  <table> <!-- 定義表格,table標(biāo)簽實(shí)際就是一個(gè)四方塊框框,里面有單元格才會(huì)顯示出表格的樣子 -->
                  <caption>信息表</caption> <!-- 表格標(biāo)題 -->
                  <tr> <!-- 定義行 -->
                      <th>姓名</th> <!-- 定義表頭,表頭文本有加粗居中效果 -->
                      <th>年齡</th>
                      <th>性別</th>
                  </tr>
                  <tr> <!-- 定義行 -->
                      <td>小明</td> <!-- 定義單元格,表格里面沒有列-->
                      <td>18</td>
                      <td>男</td>
                  </tr>
                  </table>
              </body>
          </html>

          提示:本文圖片等素材來源于網(wǎng)絡(luò),若有侵權(quán),請(qǐng)發(fā)郵件至郵箱:810665436@qq.com聯(lián)系筆者刪除。

          筆者:苦海123

          其它問題可通過以下方式聯(lián)系本人咨詢:

          QQ:810665436

          微信:ConstancyMan

          ue中pc端與移動(dòng)端適配解決方案

          0. 前言

          當(dāng)涉及屏幕適配方案時(shí),我們常常被眾多選擇所困擾,如postcss-pxtorem、postcss-px2rem、px2rem-loader、postcss-plugin-px2rem等。然而,在實(shí)際測(cè)試中,由于不同的Vue和Webpack版本,很多這些方式已經(jīng)無法使用,反而帶來了更多麻煩。

          為了盡快解決問題,我們應(yīng)該始終以解決問題為導(dǎo)向,首先采用那些已經(jīng)獲得驗(yàn)證并能產(chǎn)生效果的方法。對(duì)于上述列舉的方案,雖然沒有一一測(cè)試過,但我們需要明確的是,抓住解決問題的關(guān)鍵。

          針對(duì)移動(dòng)端和PC端適配,我建議將兩者進(jìn)行拆分并進(jìn)行工程化配置,以避免整體框架調(diào)整后在某些頁面上出現(xiàn)輕微不協(xié)調(diào)。在某些情況下,你可能會(huì)注意到筆記本電腦上顯示比例縮放后的細(xì)微差異,這可以通過插入【整體縮放自適應(yīng)解決方案(阿里團(tuán)隊(duì)高清方案)的JS代碼】來解決。

          1.移動(dòng)端適配方案

          1.1 基礎(chǔ)概念

          viewport即視窗、視口,用于顯示網(wǎng)頁部分的區(qū)域,在PC端視口即是瀏覽器窗口區(qū)域,在移動(dòng)端,為了讓頁面展示更多的內(nèi)容,視窗的寬度默認(rèn)不為設(shè)備的寬度,在移動(dòng)端視窗有三個(gè)概念:布局視窗、視覺視窗、理想視窗。

          • 布局視窗:在瀏覽器窗口css的布局區(qū)域,布局視口的寬度限制css布局的寬。為了能在移動(dòng)設(shè)備上正常顯示那些為pc端瀏覽器設(shè)計(jì)的網(wǎng)站,移動(dòng)設(shè)備上的瀏覽器都會(huì)把自己默認(rèn)的viewport設(shè)為980px或其他值,一般都比移動(dòng)端瀏覽器可視區(qū)域大很多,所以就有橫向滾動(dòng)條。
          • 視覺視窗:終端設(shè)備顯示網(wǎng)頁的區(qū)域。
          • 理想視窗:針對(duì)當(dāng)前設(shè)備最理想的展示頁面的視窗,不會(huì)出現(xiàn)橫向滾動(dòng)條,頁面剛好全部展現(xiàn)在視窗內(nèi),理想視窗即終端屏幕的寬度。

          viewport詳細(xì)設(shè)置:

          • 通過設(shè)置viewport可以設(shè)置頁面大小,通過meta標(biāo)簽可以設(shè)置viewport信息。
          • viewport有以下幾個(gè)屬性:
            • width:視口的寬度,正整數(shù)或設(shè)備寬度device-width(width=device-width)
            • height:視口高度,正整數(shù)或device-height
            • initial-scale(initial-scale=1.0):網(wǎng)頁初始縮放值,小數(shù)縮小,反之放大(initial-scale=1.0)
            • maximum-scale(maximum-scale=1.0):設(shè)置頁面的最大縮放比例
            • minimum-scale(minimum-scale=1.0): 設(shè)置頁面的最小縮放比例
            • user-scaleble(user-scalable=no):用戶是否可以縮放

          移動(dòng)端默認(rèn)會(huì)縮放大尺寸的頁面的,當(dāng)我們把上述代碼去掉之后,就會(huì)隨著移動(dòng)端縮放的比例走,而且還可以自由放大。

          1.1.1 解決方案一viewport縮放

          方案統(tǒng)計(jì):

          1. 設(shè)置viewport進(jìn)行縮放
          2. PC端適配移動(dòng)端可以通過html標(biāo)簽重meta name="viewport"調(diào)整視口比例,進(jìn)行頁面縮放。 不過有部分同學(xué)使用過程中反應(yīng)縮放會(huì)導(dǎo)致有些頁面元素會(huì)糊的情況。

          代碼原理:

          1. 根據(jù)設(shè)備屏幕的DPR(設(shè)備像素比,比如dpr=2時(shí),表示1個(gè)CSS像素由2X2個(gè)物理像素點(diǎn)組成) 動(dòng)態(tài)設(shè)置 html 的font-size
          2. 同時(shí)根據(jù)設(shè)備DPR調(diào)整頁面的縮放值,進(jìn)而達(dá)到高清效果。
          //  僅在移動(dòng)端時(shí)候生效,或者瀏覽器手機(jī)模式
          //  整體縮放自適應(yīng)解決方案(阿里團(tuán)隊(duì)高清方案) 淘寶m端使用的解決方案
          ! function (e) {
              function t(a) {
                if (i[a]) return i[a].exports;
                var n = i[a] = {
                  exports: {},
                  id: a,
                  loaded: !1
                };
                return e[a].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
              }
              var i = {};
              return t.m = e, t.c = i, t.p = "", t(0)
            }([function (e, t) {
              "use strict";
              Object.defineProperty(t, "__esModule", {
                value: !0
              });
              var i = window;
              t["default"] = i.flex = function (e, t) {
                var a = e || 100,
                  n = t || 1,
                  r = i.document,
                  o = navigator.userAgent,
                  d = o.match(/Android[\S\s]+AppleWebkit/(\d{3})/i),
                  l = o.match(/U3/((\d+|.){5,})/i),
                  c = l && parseInt(l[1].split(".").join(""), 10) >= 80,
                  p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi),
                  s = i.devicePixelRatio || 1;
                p || d && d[1] > 534 || c || (s = 1);
                var u = 1 / s,
                  m = r.querySelector('meta[name="viewport"]');
                m || (m = r.createElement("meta"), m.setAttribute("name", "viewport"), r.head.appendChild(m)), m
                  .setAttribute("content", "width=device-width,user-scalable=no,initial-scale=" + u + ",maximum-scale=" +
                    u + ",minimum-scale=" + u), r.documentElement.style.fontSize = a / 2 * s * n + "px"
              }, e.exports = t["default"]
            }]);
            flex(100, 1);
          
          //  高清方案默認(rèn)1rem=100px,那么 btn的寬度就設(shè)置為:)
          .btn {
              width:0.8rem
              height:1.2rem
          }
          
          


          1. 根據(jù)設(shè)備屏幕的DPR,自動(dòng)設(shè)置最合適的高清縮放。保證了不同設(shè)備下視覺體驗(yàn)的一致性。 舊方案,屏幕越大,元素也越大,新方案,屏幕越大,看到的越多 看得越多的理解: 比如,一篇很長的文章在ip4上,一屏盛不了那么多內(nèi)容,而在ip6plus上,可以全部看清楚,這是因?yàn)椋路桨笗?huì)根據(jù)dpr來縮放視口,大屏小屏的手機(jī)上,顯示的字體大小都是一致的,當(dāng)然在大屏上看到的東西就多咯~
          2. 有效解決移動(dòng)端真實(shí)1px問題(這里的1px 是設(shè)備屏幕上的物理像素)

          【7】 移動(dòng)端開發(fā)自適應(yīng)解決方案(阿里團(tuán)隊(duì)高清方案)

          1.1.2 解決方案二—兩套頁面

          同時(shí)兼任pc和移動(dòng)適配

          通過配置兩套不同路由和判斷是否是移動(dòng)端實(shí)現(xiàn)

          核心代碼:router.addRoute(isMobile() ? mobileRoutes[1] : pcRoutes[1]);(區(qū)分路由)

          1.1.3 解決方案三—postcss-pxtorem、amfe-flexible

          搭配工程化,可以參考第二章【PC端適配方案】

          npm i postcss-pxtorem --save-dev
          ?
          //使用postcss-pxtorem
          module.exports = {
              lintOnSave:true,
              css:{
                  loaderOptions:{
                      postcss:[
                          require('postcss-pxtorem')({
                              rootValue:16,//根元素字體大小
                              unitPrecision:5, //允許rem單位增長的十進(jìn)制數(shù)字
                              replace:true, //替換包含rems的規(guī)則,而不添加后備
                              mediaQuery:false, //允許在媒體查詢中轉(zhuǎn)換px
                              minPixelValue:0, //設(shè)置要替換的最小像素值
                              selectorBlackList:[], //忽略轉(zhuǎn)換正則匹配項(xiàng)
                              propList:['*'], //可以從px轉(zhuǎn)換為rem的屬性,匹配正則
                              exclude:/node_modules/i  要忽略并保留為px的文件路徑
                          }),
                      ]
                  }
              }
          }
          


          2.PC端適配方案

          vue項(xiàng)目使用element-ui框架Rem適配(postcss-pxtorem、amfe-flexible),自動(dòng)轉(zhuǎn)換px為rem,解決響應(yīng)式問題

          1366 * 768 : 普通液晶顯示器 1920 * 1080: 高清液晶顯示器 2560 * 1440: 2K高清顯示器 4096 * 2160: 4K高清顯示器 1280 * 720: 筆記本(1920*1080分辨率下系統(tǒng)默認(rèn)推薦150%縮放比產(chǎn)生的尺寸)

          大屏數(shù)據(jù)可視化項(xiàng)目通常用于放在電視或廣告屏上展示用,而不允許出現(xiàn)滾動(dòng)條

          2.1. 適配痛點(diǎn)難點(diǎn)

          設(shè)計(jì)稿按照1920*1080的分辨率,16:9的比例設(shè)計(jì), 實(shí)際開發(fā)中,document窗口不足16:9(高度減掉頂部tab及導(dǎo)航欄,地址欄等) 不同分辨率:實(shí)際應(yīng)用場(chǎng)景中,顯示場(chǎng)景不同,不能固定寫死px單位 不同比例:不同的顯示器寬高比與設(shè)計(jì)稿不一致

          2.2. 什么是rem

          rem是CSS3新增的相對(duì)長度單位,是指相對(duì)于根元素html的font-size計(jì)算值的大小。簡(jiǎn)單可理解為屏幕寬度的百分比。 但是,項(xiàng)目中常見尺寸繪制采用的均是px,要改用rem一時(shí)半會(huì)緩不過來,而且可能還要換算轉(zhuǎn)換,所以使用rem還是比較麻煩的,但是,我們可以通過插件,能夠?qū)㈨?xiàng)目中的px轉(zhuǎn)換為rem,還可以自定義基數(shù)。

          2.3. 安裝依賴

          npm install amfe-flexible // CSS單位自適應(yīng)轉(zhuǎn)換插件 負(fù)責(zé)更改根font-size
          npm install postcss-pxtorem@^5.1.1 // 如果版本過高可以降版本下載5.1.1版本 負(fù)責(zé)將px轉(zhuǎn)成rem
          


          // 用途:echarts字體適配
          /**
           * echarts字體自適應(yīng)
           * @param {*} font 字號(hào)大小
           */
          export function echartGetFontSize(font) {
              let docEl = document.documentElement,
                clientWidth =
                  window.innerWidth ||
                  document.documentElement.clientWidth ||
                  document.body.clientWidth;
              if (!clientWidth) return;
              let fontSize = clientWidth / 1920;
              return font * fontSize;
          }
          


          2.3. 引入amfe-flexible

          由于 viewport 單位得到眾多瀏覽器的兼容,lib-flexible 這個(gè)過渡方案已經(jīng)可以放棄使用,不管是現(xiàn)在的版本還是以前的版本,都存有一定的問題。建議大家開始使用 viewport 來替代此方。(待考證?)

          amfe-flexible是lib-flexible的升級(jí)版

          flexible就是根據(jù)不同的屏幕算出html的font-size,通過js來動(dòng)態(tài)寫meta標(biāo)簽

          實(shí)上他做了這幾樣事情:

          • 動(dòng)態(tài)改寫<meta>標(biāo)簽
          • 給<html>元素添加data-dpr屬性,并且動(dòng)態(tài)改寫data-dpr的值
          • 給<html>元素添加font-size屬性,并且動(dòng)態(tài)改寫font-size的值

          在main.js中引入amfe-flexible

          import "amfe-flexible"
          


          amfe-flexible 等價(jià)代碼

          // import '@/utils/rem.js'
          ?
          // 在utils文件夾下創(chuàng)建rem.js
          // 設(shè)置 rem 函數(shù)
          function setRem() {
              // 1920 默認(rèn)大小16px; 1920px = 120rem ;每個(gè)元素px基礎(chǔ)上/16
              const screenWidth = 1920
              const scale = screenWidth / 16
              const htmlWidth = document.documentElement.clientWidth || document.body.clientWidth
              // 得到html的Dom元素
              const htmlDom = document.getElementsByTagName('html')[0]
              // 設(shè)置根元素字體大小
              htmlDom.style.fontSize = htmlWidth / scale + 'px'
            }
            // 初始化
            setRem()
            // 改變窗口大小時(shí)重新設(shè)置 rem
            window.onresize = function() {
              setRem()
            }
          


          2.4. 配置vue.config.js

          配置postcss-pxtorem ,可在vue.config.js、postcsssrc.js、postcss.config.js、其中之一配置,權(quán)重從左到右降低,沒有則新建文件,只需要設(shè)置其中一個(gè)即可.

          /***
          注意點(diǎn):
          (1)rootValue根據(jù)設(shè)計(jì)稿寬度除以10進(jìn)行設(shè)置,這邊假設(shè)設(shè)計(jì)稿為1920,即rootValue設(shè)為192;
          (2)propList是設(shè)置需要轉(zhuǎn)換的屬性,這邊*為所有都進(jìn)行轉(zhuǎn)換。
          ***/
          module.exports=function(){
              devServer:{
                  port:3000,
                  open:true
              },
              //rem配置
              css: {
                  loaderOptions: {
                   postcss: {
                      plugins: [
                        require('postcss-pxtorem')({
                            rootValue: 192, //根元素字體大小
                            propList: ['*'], //可以從px轉(zhuǎn)換為rem的屬性,匹配正則
                            // unitPrecision:5, //允許rem單位增長的十進(jìn)制數(shù)字
                            // replace:true, //替換包含rems的規(guī)則,而不添加后備
                            // mediaQuery:false, //允許在媒體查詢中轉(zhuǎn)換px
                            // minPixelValue:0, //設(shè)置要替換的最小像素值
                            // selectorBlackList:[], //忽略轉(zhuǎn)換正則匹配項(xiàng)
                            // exclude:/node_modules/i  要忽略并保留為px的文件路徑
                        })
                      ]
                   }
                 }
              },
          }
          


          // 效果展示 在html上增加根font-size
          <html lang="en” style="font-size: 192px;class="light-themes">
          


          2.5. 總結(jié)

          2.5.1 注意事項(xiàng):

          1. 不能使用行內(nèi)樣式

          對(duì)于行內(nèi)樣式,阿里手淘并不能將px轉(zhuǎn)rem,所以對(duì)于需要自適應(yīng)的樣式,如font-size、width、height等請(qǐng)不要寫在行內(nèi)。同理,對(duì)于不需要轉(zhuǎn)化的樣式可以寫在行內(nèi),或者使用PX(大寫)作為單位。

          暫未找到可以轉(zhuǎn)行內(nèi)rem的插件,可根據(jù)下面地址的方式自己實(shí)現(xiàn)(未驗(yàn)證是否可行)。blog.csdn.net/weixin_3961…

          2. 字號(hào)不使用rem

          我們都知道chrome的最小顯示的字體是12px,如果字體用rem,計(jì)算出來小于12px,那么就也會(huì)以12px顯示,而且我們不希望出現(xiàn)13px或者15px這樣的奇葩尺寸,所以字體最好是用PX(大寫)來表示,至于適應(yīng),我們可以寫媒體查詢。

          .item {
              border-bottom: 1PX #8d8d8d dashed;
              font-size: 12PX;
              line-height: 16PX;
              @media screen and (min-width: 576PX) {
                  font-size: 14PX;
                  line-height: 18PX;
              }
              @media screen and (min-width: 768PX) {
                  font-size: 16PX;
                  line-height: 28PX;
              }
              @media screen and (min-width: 992PX) {
                  font-size: 16PX;
                  line-height: 32PX;
              }
              @media screen and (min-width: 1200PX) {
                  font-size: 18PX;
                  line-height: 64PX;
              }
          }
          ?
          PC端響應(yīng)式媒體斷點(diǎn):
          ?
          ```css
             @media (min-width: 1024px){
              body{font-size: 18px}
             } /*>=1024的設(shè)備*/
          ?
             @media (min-width: 1100px) {
              body{font-size: 20px}
             } /*>=1100的設(shè)備*/
             @media (min-width: 1280px) {
              body{font-size: 22px;}
             } /*>=1280的設(shè)備*/
          ?
             @media (min-width: 1366px) {
              body{font-size: 24px;}
             }  
          ?
             @media (min-width: 1440px) {
               body{font-size: 25px !important;}
             } 
          ?
             @media (min-width: 1680px) {
              body{font-size: 28px;}
             } 
             @media (min-width: 1920px) {
              body{font-size: 33px;}
             } 
          ```
          ?
          ?
          


          2.5.2 測(cè)試反饋:

          已測(cè)試屏幕尺寸:1920*1080 、1366 * 768

          問題:屏幕縮小,網(wǎng)頁縮放,效果與原1920*1080不一致

          //  僅在移動(dòng)端時(shí)候生效,或者瀏覽器手機(jī)模式
          //  整體縮放自適應(yīng)解決方案(阿里團(tuán)隊(duì)高清方案)
          ! function (e) {
              function t(a) {
                if (i[a]) return i[a].exports;
                var n = i[a] = {
                  exports: {},
                  id: a,
                  loaded: !1
                };
                return e[a].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
              }
              var i = {};
              return t.m = e, t.c = i, t.p = "", t(0)
            }([function (e, t) {
              "use strict";
              Object.defineProperty(t, "__esModule", {
                value: !0
              });
              var i = window;
              t["default"] = i.flex = function (e, t) {
                var a = e || 100,
                  n = t || 1,
                  r = i.document,
                  o = navigator.userAgent,
                  d = o.match(/Android[\S\s]+AppleWebkit/(\d{3})/i),
                  l = o.match(/U3/((\d+|.){5,})/i),
                  c = l && parseInt(l[1].split(".").join(""), 10) >= 80,
                  p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi),
                  s = i.devicePixelRatio || 1;
                p || d && d[1] > 534 || c || (s = 1);
                var u = 1 / s,
                  m = r.querySelector('meta[name="viewport"]');
                m || (m = r.createElement("meta"), m.setAttribute("name", "viewport"), r.head.appendChild(m)), m
                  .setAttribute("content", "width=device-width,user-scalable=no,initial-scale=" + u + ",maximum-scale=" +
                    u + ",minimum-scale=" + u), r.documentElement.style.fontSize = a / 2 * s * n + "px"
              }, e.exports = t["default"]
            }]);
            flex(100, 1);
          
          


          2.5.3其他問題:

          1. 如果沒效果,查看根元素是否添加上了fongt-size,為添加的話查看css預(yù)處理器,如果是sass改成node-sass;我這邊使用的版本為:
          “node-sass”: “^4.9.0”,
          “sass-loader”: “^7.1.0”
          


          1. 大屏改進(jìn)方案:
          2. 限制rem的最大值
          3. 通過媒體查詢,限制內(nèi)容最大寬度


          作者:幸運(yùn)_
          鏈接:https://juejin.cn/post/7278646930174165050

          說明

          最近在項(xiàng)目上有個(gè)移動(dòng)端(uni-app)的需求,就是要在移動(dòng)端APP上的vue頁面中通過web-view組件來調(diào)用html頁面,并且要實(shí)現(xiàn)在html頁面中可以點(diǎn)擊一個(gè)元素來調(diào)用vue頁面中uni的API(掃碼接口),同時(shí)也可以在vue頁面中也可以調(diào)用html頁面中的js函數(shù)并進(jìn)行傳參。

          使用環(huán)境

          1. HBuilderX版本:2.8.11.20200907

          2. V3編譯器

          html頁面調(diào)用vue頁面中uni的API

          引用依賴的文件

          在 web-view 加載的 HTML 中調(diào)用 uni 的 API,需要在 HTML 中引用必要的 JS-SDK

          <script type="text/javascript" src="//js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.0.1.52.js"></script>

          注意:這些 JS 文件是在 web-view 加載的那個(gè) HTML 文件中引用的,而不是 uni-app 項(xiàng)目中的文件。

          監(jiān)聽 web-view 的 message 事件

          監(jiān)聽 web-view 組件的 message 事件,然后在事件回調(diào)的 event.detail.data 中接收傳遞過來的消息。

          <template>  
          
              <view>  
          
                  <web-view src="http://192.168.1.1:3000/test.html" @message="handleMessage"></web-view>  
          
              </view>  
          
          </template>  
          
          <script>  
          
              export default {  
          
                  methods: {  
          
                      handleMessage(evt) {  
          
                          console.log('接收到的消息:' + JSON.stringify(evt.detail.data));  
          
                      }  
          
                  }  
          
              }  
          
          </script>

          調(diào)用的時(shí)機(jī)

          在引入上面的依賴文件后,需要在HTML中監(jiān)聽UniAppJSBridgeReady,事件觸發(fā)后,

          才能安全調(diào)用uni的API。

          <script type="text/javascript" src="//js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.0.1.52.js"></script>
          
          <script>
          
              document.querySelector('.btn-list').addEventListener('click', function(evt) {  
          
                  var target = evt.target;  
          
                  if (target.tagName === 'BUTTON') {  
          
                      var action = target.getAttribute('data-action');  
          
                      if(action === 'navigateTo') {  
          
          				uni.postMessage({  
          
          					data: {  
          
          						action: 'postMessage'  
          
          					}  
          
          				});   
          
                      }  
          
                  }  
          
              }); 
          
          </script>

          上面代碼的意思就是在html頁面中點(diǎn)擊按鈕列表中的某個(gè)按鈕,

          觸發(fā)了uni.postMessage接口,進(jìn)而調(diào)用了vue頁面methods中的handleMessage方法,

          并將參數(shù)data傳給了vue頁面。

          在vue頁面中調(diào)用html頁面的js函數(shù)

          示例代碼:

          var currentWebview = this.$mp.page.$getAppWebview().children()[0];
          currentWebview.evalJS("htmljsfuc('"+res.result+"')");

          其中的htmljsfuc就是要在html頁面中定義的js函數(shù)。

          完整代碼示例:


          主站蜘蛛池模板: 亚洲AV无码一区二区三区在线 | 国产精品va无码一区二区| 中文字幕一区视频一线| 精品无码一区二区三区爱欲| 波多野结衣中文字幕一区| 亚洲AV日韩综合一区尤物| 国产精品视频第一区二区三区| 精品一区精品二区| 韩国精品福利一区二区三区| 蜜臀AV免费一区二区三区| 国产精品美女一区二区视频 | 精品一区二区无码AV| 亚洲av无码一区二区三区人妖| 久久亚洲AV午夜福利精品一区| 久久久久人妻精品一区三寸蜜桃| 国产精品久久久久久麻豆一区| 亚洲国产精品一区二区三区在线观看 | 不卡一区二区在线| 精品无码人妻一区二区三区18| 老熟女高潮一区二区三区| 奇米精品一区二区三区在线观看| 午夜福利无码一区二区| 精品亚洲AV无码一区二区| 日韩免费无码视频一区二区三区| 亚洲AV无码一区二区二三区软件| 在线视频一区二区三区三区不卡| 香蕉免费看一区二区三区| 国产一区二区不卡在线播放| 国产成人无码精品一区在线观看| 亚洲午夜精品第一区二区8050| 一级毛片完整版免费播放一区 | 色一情一乱一伦一区二区三区日本| 亚洲日韩精品一区二区三区 | 一区二区三区日本视频| 无码精品人妻一区二区三区人妻斩| 国模少妇一区二区三区| 无码国产精品一区二区免费3p | 在线播放偷拍一区精品| 免费看AV毛片一区二区三区| 国产99精品一区二区三区免费| 精品aⅴ一区二区三区|