阶段三:H5+C3-学习过程的个人字典-兼容和面试问题

240 阅读5分钟

1.新增标签:header footer nav section 都是:块元素

语义化 好处:
            1 有利于seo 爬虫抓取
            2 方便腿短开发和维护,可读性强
            3 方便其他设备解析(移动设备)
       坏处:
            1 ie9以下浏览器不兼容
            

2. 面试的问html5:html5在低版本浏览器如何兼容(ie8)?

       解决方式:用html5shiv.js
       

3.只要是移动端就要加meta标签:强制让文档与设备的宽度保持1:1关系

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 

4.面试的问:在移动端我要纯数字的键盘type是哪个值?

 <input type='tel'>
 

5.面试问:placeholder 怎么改变字体颜色(如何兼容不同浏览器)?

 input::-webkit-input-placeholder {color: #999;}

6.面试问:ios中输入框首字母如何取消(属于兼容问题)? autocapitalize='off'

7.你们的项目是如何做自适应布局的?

 使用淘宝方案:rem(基于htmlfont-size大小计算)+flexible.js(动态改变htmlfont-size的大小)
 ui给的设计图 宽度:750 用iphone6做基准

8.面试题:一个盒子不给宽度和高度,如何水平垂直居中

1.弹性盒

2.transform

3.网格布局

9.面试题:谷歌浏览器默认字体大小是16px,那么如何显示小于16px的字体呢?

  用缩放:scale
  .p{
     font-size:20px;
    -webkit-transform:scale(.5);
    }

10.响应式图片布局

<picture>
<source srcset='images/1000.png'media="(min-width:1000px)"/> //大于1000px展示这个图片
<source srcset='images/700.png'media="(min-width:800px)"/> //大于800px展示这个图片
<img srcset="images/400.png"> // 默认
</picture>

11.响应式布局:

<style>
@media only screen and (max-width:992px){
}
</style>

12.移动端滚动使用iscroll.js文件,下载:juejin.cn/post/697212…

官放中文文档:caibaojian.com/iscroll-5/g…

new IScroll('#wrapper');

IScroll滚动条件:css设置要求:添加了id="wrapper",高度一定要比要滚动的ul子节点的高度小,不然无法滚动 image.png

13.问:在移动端使用click事件有300ms延迟的问题

解决方式:2个方式
1.禁止双击缩放===》在meta标签中加上这个 user-scalable=no

2.引用fastclick.js文件下载url:https://juejin.cn/post/6972124172734431263
写入代码:
if ('addEventListener' in document) {
    document.addEventListener('DOMContentLoaded',function(){
    FastClick.attach(document.body);
},false);
}

###14.面试题:移动端touch事件有穿透(点透)的问题,该怎么解决?

解决方式:
1、阻止默认行为
e.preventDefault();
2、fastclick.js 引用fastclick.js文件下载url:https://juejin.cn/post/6972124172734431263
    2.1引入js文件
    2.2写入代码:
    if ('addEventListener' in document){
    document.addEventListener('DOMContentLoaded',function
    FastClick.attach(document.body);
    },false);
    }
    

15.移动端插件zepto官网:www.zeptojs.com.cn/

16.问:移动端懒加载实现原理:

 官网:https://www.lazyloadjs.cn/
  
优势:提升性能

实现原理:图片是通过img的src属性,当对src赋值时,浏览器就会请求图片资源。
基于这个问题,我们可以利用标签的自定义属性(data-xxx),来保存图片的路径,当我们需要加载图片
的时候,将data-xxx赋值给src就可以实现按需进入按需加载。

例如自定义属性:data-xxx
<img alt=" data-src='图片路径2.jpg'>

17.下拉刷新,上拉加载,下载对应的demo 插件网站:www.jq22.com/jquery-info…

18.移动端:各种小问题面试要问

问题一:移动端,input的键盘的右下角显示搜索(2个字)
解决:搜索课程名称或者关键词
 <input type="search" placeholder="搜索课程名称或关键词">

问题二:如果我们在移动端点击了搜索,form表单有action就自动提交表单 
解决: onsubmit="return false"
例子: <form action="" id="onSearch" onsubmit="return false">
          <input type="search" placeholder="搜索课程名称或关键词">
       </form>

让input自动获取焦点:autofocus="autofocus"
设置光标的颜色  caret-color: #000; 

问题三:点击空白处 如何收起键盘
解决:
  window.addEventListener('touchstart', function () {
    document.activeElement.blur();
  })

问题四:元素被触摸时产生的半透明遮罩怎么去掉 (abuttoninputtextarea) 
解决:-webkit-tap-highlight-color:rgba(0,0,0,0); 

问题五:如何关闭ios键盘的首字母自动大写 
解决:  <input autocapitalize="off">

问题六:禁止ios&安卓长按保存(下载)图片 
解决:img{ -webkit-touch-callout:none; } 

问题七://禁止ios&安卓长按选中文字 解决:-webkit-user-select:none; 
        ul li,
        a,
        p,
        span,
        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
                -webkit-user-select: none;
        }

问题八:url传值,如果有空格、汉字、特殊字符,就会转码 
解决方式: encodeURI ==》加码 decodeURI ==》解码

问题九:去除input type=search 后面的x号
解决:input[type=search]::-webkit-search-cancel-button {
    -webkit-appearance: none;
  }
  

19.手机端 事件委托:

   $('ul').on('tap', 'li', function () {
    alert(1)
  })
  

20.阶段三视频考核文案记录:

这次我们做的是一个教育类的官网,主要有PC端和移动端

先来说一下需求方面的情况:
作为前端人员来说,做PC端和移动端总要考虑的就是响应式,怎么做适配,自适应
        有两种方案:
        1:做一套PC端,在加上响应式后 这样可以完美兼容移动端
        2:做一套PC端,一套移动端,移动端采用淘宝无限适配方案,我们就是采用这个方案二做的

那我们是如何在PC端和移动端之间做切换呢?比如打一个PC端的网址,正常进入PC端页面,然后拿一个移动设备直接在浏览器访问PC端的网址,会自动跳转到移动端的页面,我们在pc端做了终端的判断,

下面重点说一下移动端的:移动端无非就是正常的数据请求渲染到页面上,但是兼容问题是比较多的

比如说:所有的图片不支持长按选中后复制或下载保存图片,文字也不支持长按复制的,通过css就可以解决

值得说的功能呢,是搜索,当手指触摸到搜索块,键盘会弹出,右下角出现搜索按钮,日常的input type为search类型,是换行,不是搜索,所以在做的时候,需要给搜索框包裹一个from标签的小细节。

触摸其他地方,键盘要收起,这些兼容需要考虑的

里面涉及到懒加载也有做优化,包括触底加载更多数据,和数据筛选这些功能都有

好包括路径传值,需要用到解码和编码,因为传递汉字或特殊字符的时候获取不到真的值,有这些细节。

移动端总的来说要拿真机来测试,要不然很多东西拿pc端的模拟器来测试是不对的,显示可能会有问题。

这些基本就是我们做整个项目的完整过程,请求数据是后端给的接口文档。

请问你还有什么想问的没有?