当前位置:   article > 正文

前端学习之移动端_前端移动端

前端移动端

含义:

    移动设备(手机,平板)
        webapp:在移动设备上的web应用(基于移动设备的浏览器)
       原生app(native app):ios和android的应用

 使用:

          常用的:

              chrome浏览器的手机模拟器:F12开发者工具,点击手机图标,调整手机机型,显示比例,显示设备像素比,模拟网速,模拟翻转

      设备像素(css像素)
             ios:375 X667  820X1180  414X896   768X1024
             android:370X740   412X915 912X1368
      常用单位:em,rem,vw,vh
       视口:
            布局视口:跟机型无关,永远是980px
            视觉视口:跟屏幕大小有关
              布局视口和视觉视口保持一致:meta vp
          <meta name="viewport" content="width(布局视口)=device-width(视觉视口), initial-sca
           缩放比例:initial-scale=1.0

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

      常用单位:

  1. 常用单位:
  2. em:(没有用)
  3. 1em=16px--默认 自身font-size的大小
  4. (自身没有font-size属性,寻找父级有没有,直至查找到)
  5. rem:(最常用)
  6. 1rem=16px--默认 html的font-siae大小
  7. vw,vh
  8. 1 vw=1 viewport width=1%视口宽度
  9. 1 vh=1 viewport height=1%视口高度
  10. vw,vh和%的区别:
  11. % 相对父元素,
  12. vw,vh 相对视口

     移动端适配:

          含义: 在不同尺寸的屏幕下,元素大小会做出相应的调整
          rem适配:
                1 屏幕大小改变时,html的font-size随着改变
                 2 设计图测量的尺寸单位是px,实际rem:手机屏幕/设计图宽度 * 100
                      100px=1rem
                       px 和rem切换插件:px to rem

  1. // rem适配:
  2. // 监听窗口改变:
  3. window.addEventListener('resize',function(){
  4. // 获取当前视口宽度:
  5. let vw=document.documentElement.clientWidth;
  6. // 获取html,并设置font-size
  7. // document.documentElement.style.fontSize=vw/10+'px';
  8. document.documentElement.style.fontSize=vw/750*100+'px';
  9. })
  10. // 缺陷:字体会过大或过小
  11. // 解决:给body fot-size

       flex布局(弹性盒布局):

               pc端开发:如果需要兼容浏览器低版本,可以采用float布局,
                                  如果不需要兼容浏览器低版本,可以采用float布局
              移动端开发:采用flex布局
              弹性盒布局使用后,子盒子不能使用float,clear,vertical-align

             父级盒子属性:

  1. display:flex
  2. 给父级弹性盒子,使子元素水平排列,里面的子元素为弹性项
  3. flex-direction 主轴方向
  4. row(默认值):主轴为水平方向,起点在左端。
  5. row-reverse:主轴为水平方向,起点在右端。
  6. column:主轴为垂直方向,起点在上沿。
  7. column-reverse:主轴为垂直方向,起点在下沿。
  8. flex-wrap 换行
  9. nowrap(默认):不换行
  10. wrap:换行,第一行在上方
  11. wrap-reverse:换行,第一行在下方
  12. justify-content 主轴对齐方式
  13. flex-start(默认值):左对齐
  14. flex-end:右对齐
  15. center: 居中---常用
  16. space-between:两端对齐,项目之间的间隔都相等。----常用
  17. space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
  18. align-items 侧轴对齐方式
  19. flex-start:交叉轴的起点对齐。
  20. flex-end:交叉轴的终点对齐。
  21. center:交叉轴的中点对齐。
  22. baseline: 项目的第一行文字的基线对齐。
  23. stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
  24. .box{
  25. width:500px;
  26. height:200px;
  27. background-color:green;
  28. display: flex;
  29. flex-direction: row;
  30. flex-wrap:wrap;
  31. justify-content: center;
  32. align-items: center;
  33. }

弹性项盒子属性:

  1. order 排列顺序(默认0)
  2. flex-grow 放大比例 (默认0)
  3. flex-shrink 缩小比例(默认1)
  4. flex-basis (默认auto)
  5. flex-basis在弹性项不被压缩的时候有效
  6. 简写:flex:flex-grow, flex-shrink flex-basis
  7. align-self 单个元素对齐方式(默认auto)

swiper插件:

  1. 常用于移动端网站的内容触摸滑动(轮播图)
  2. 1下载:
  3. cdn
  4. 本地:网络,npm i swiper
  5. 2 引入
  6. 3 使用:
  7. 添加内容
  8. var mySwiper = new Swiper ('.swiper', {
  9. direction: 'horizontal', // 横向切换选项
  10. loop: false, // 循环模式选项
  11. autoplay:true, //自动播放
  12. // 如果需要分页器
  13. pagination: {
  14. el: '.swiper-pagination',
  15. },
  16. })

事件:

  1. 手指按下:touchstart
  2. 手指抬起:touchend
  3. 手指移动:touchmove
  4. 手指事件对象touchevent
  5. 1 touches:手指所在位置
  6. 2 target:触摸的目标
  7. 3 targetTouches:多指触摸
  8. 4 changedTouches 多指触摸
  9. 各种手势插件:hammer.js
  10. click:
  11. 缺陷:300ms延迟问题
  12. 解决:
  13. 1 meta标签添加user-scalable=0------禁止缩放
  14. 2 FastClick
  15. let box= document.querySelector('.box');
  16. box.onclick=function(){
  17. console.log('点击');
  18. }
  19. box.addEventListener('touchstart',function(e) {
  20. console.log(e);
  21. console.log('按下');
  22. })

zepto框架:

  1. 移动端开发框架:zepto
  2. 1 含义:一个轻量级的、针对现代高级浏览器的 JavaScript 工具库,它兼容 jQuery 的 API 。 如果你会用 jQuery,就已经会用 Zepto
  3. 2 下载: npm i zepto
  4. 3 模块:
  5. 默认:zepto,event,care,ajax,form,ie

常见问题:

  1. 禁用iPhone中字号调整
  2. 禁止缩放表单
  3. 取消链接高亮
  4. 移动端点击a链接出现蓝色背景问题解决
  5. 设置HTML5元素为块

真机测试:

  1. 使用:
  2. 1 安装node。js
  3. 2 npm install -g browser-sync
  4. 3
  5. 静态网站
  6. browser-sync start --server --files "**/*.css, **/*.html"
  7. 动态网站:npm run serve
  8. 移动端开发技术:
  9. 1 html+css+js(zepto) 多页面应用(mpa)不利于模块化管理
  10. ui框架:bootstrap(响应),jq22插件网
  11. 适合场景:页面少或者页面间重复重复结构不多
  12. 2 html+css+框架(vue cli) 单页面应用 切换快
  13. ui框架:vant ui mint ui
  14. 适合场景:几乎任何h5页面
  15. 3 html+css+uni-app(vue为基础)
  16. ui框架:uview,uni ui ,color ui
  17. 适合场景:几乎任何h5页面,跨端
  18. css预处理器:(仅用于js开发模式)
  19. vscode------ easy sass插件
  20. 使用:
  21. 1 创建一个scss为结尾的文件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/270738
推荐阅读