Html

  • 打电话

    <a href="tel:0755-10086">打电话给:0755-10086</a>
  • 发短信

    <a href="sms:10086">发短信给: 10086</a>
  • 发邮件

    <a href="mailto:邮箱名">邮箱名</a>
  • IOS下,取消input在输入的时候英文首字母的默认大写的情况

    <input autocapitalize="off" autocorrect="off" />
  • 取消微信浏览器缓存

    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />

Css

Ios兼容性

  • 去掉IOS下点击时的灰色半透明背景

    -webkit-tap-highlight-color: rgba(0,0,0,0);
  • 禁止IOS调整字体大小

    body {
    -webkit-text-size-adjust: 100% !important;
    }
  • webkit下的placeholder文字颜色修改

    -webkit-input-placeholder
  • 阻止IOS长按时的系统菜单

    // 全局*使用,会导致输入框表单在Ios中无法进行字符键入
    -webkit-touch-callout: none
  • IOS下CSS滚动不流畅

    // 对于局部滚动,ios8以上,不加此效果,滚动的超级慢,ios8一下,不加此效果,滚动还算比较流畅
    
    // 对于body滚动,ios8以上,不加此效果同样拥有弹性滚动效果
    
    -webkit-overflow-scrolling: touch;

Android兼容性

  • 去除Android的语音输入按钮

    input::-webkit-input-speech-button {
    display: none;
    }
  • 隐藏特定Android机型的灰色滚动条线

    ::-webkit-scrollbar {
    opacity: 0;
    width: 0;
    height: 0;
    background: rgba(0,0,0,0);
    }
  • Android局部滚动时隐藏原生滚动条

    ::-webkit-scrollbar{
    opacity: 0;
    }

通用兼容性

  • webkit默认表单样式去除

    -webkit-appearance:none
  • 禁止长按时下载图片

    -webkit-touch-callout: none
  • 禁用radio和checkbox默认样式

    input[type=radio]::-ms-check,input[type=checkbox]::-ms-check{display: none;}
  • 禁止winphone默认触摸事件

    -ms-touch-action: none
  • 禁止用户选中文字

    css方法:-前缀-user-select:none;
    
    js方法:onselectstart='return false';
  • 设置了placeholder文字,focus时文字没有隐藏

    input:focus::-webkit-input-placeholder{
    opacity: 0;
    }
  • -webkit-filter: grayscale(100%) 在retina下模糊

    -webkit-filter: grayscale(100%);
  • css3-translateY移动抖动

    将单位从百分比单位改成px
  • 动画过程有闪烁

    // 通常发生在动画开始的时候
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-perspective: 1000;
    -moz-perspective: 1000;
    -ms-perspective: 1000;
    perspective: 1000;
  • 当CSS中定义中文font-size小于12px的时候,浏览器仍然使用12px时

    // 放在body上会导致页面缩放失效,建议不要定义成可继承的或全局的
    -webkit-text-size-adjust:none

相关知识

  • 单行文字省略

    .txt-omit {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    }
  • 多行文字省略

    .txt-omit2{
    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2; // 行数
    -webkit-box-orient: vertical;
    }
  • 文字换行

    word-break:break-all        [怎样进行单词断句]
    word-warp:break-word [是否允许在单词内断句]
    overflow-wrap:break-word [css3用来代替word-warp的,兼容性不够]
  • word-break和word-warp区别

    word-break				——keep-all兼容性不够,效果上等同normal
    ——简单粗暴,直接在一行内断行,不管是否前面是否有英文单词 word-warp ——无兼容性问题,放心使用;
    ——如果一行中存在英文单词,会将其后"长单词"移到下一行 word-break ——存在非官方的break-word属性,只有苹果和谷歌等webkit游览器支持 word-break :break-all ——免疫中文逗号对"长单词"的自动断行,word-warp:break-word不行 ———————————————————————————
    word-break:break-word和word-warp:break-word效果等同
    推荐使用[word-break:break-all],不存在任何问题
  • disabled和readonly的区别

    disabled:会使文本框变灰,而且通过request.getParameter("name")得不到文本框中内容(如果有的话)
    
    readonly:只是使文本框不能输入,外观没有变化,而且通过request.getParameter("name")可以得到内容
  • Flex布局

    • 布局定义

      .box{
      display: -webkit-flex; /*webkit*/
      display: flex;
      } /*行内flex*/
      .box{
      display: -webkit-inline-flex; /*webkit*/
      display:inline-flex;
      }
    • 容器样式

      .box{
      flex-direction: row | row-reverse | column | column-reverse;
      /*主轴方向:左到右(默认) | 右到左 | 上到下 | 下到上*/ flex-wrap: nowrap | wrap | wrap-reverse;
      /*换行:不换行(默认) | 换行 | 换行并第一行在下方*/ flex-flow: <flex-direction> || <flex-wrap>;
      /*主轴方向和换行简写*/ justify-content: flex-start | flex-end | center | space-between | space-around;
      /*主轴对齐方式:左对齐(默认) | 右对齐 | 居中对齐 | 两端对齐 | 平均分布*/ align-items: flex-start | flex-end | center | baseline | stretch;
      /*交叉轴对齐方式:顶部对齐(默认) | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 文本基线对齐*/ align-content: flex-start | flex-end | center | space-between | space-around | stretch;
      /*多主轴对齐:顶部对齐(默认) | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 上下平均分布*/
      }
    • 子元素样式

      .item{
      order: <integer>;
      /*排序:数值越小,越排前,默认为0*/ flex-grow: <number>; /* default 0 */
      /*放大:默认0(即如果有剩余空间也不放大,值为1则放大,2是1的双倍大小,以此类推)*/ flex-shrink: <number>; /* default 1 */
      /*缩小:默认1(如果空间不足则会缩小,值为0不缩小)*/ flex-basis: <length> | auto; /* default auto */
      /*固定大小:默认为0,可以设置px值,也可以设置百分比大小*/ flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
      /*flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto,*/ align-self: auto | flex-start | flex-end | center | baseline | stretch;
      /*单独对齐方式:自动(默认) | 顶部对齐 | 底部对齐 | 居中对齐 | 上下对齐并铺满 | 文本基线对齐*/
      }

JavaScript

移动端经验

  • 移动端横竖屏检测

    orientationchange-事件
    window.orientation-旋转角度
    90-右旋
    -90-左旋
  • 企业微信端无法触发IOS自动播放

    WeixinJSBridge.invoke('showItemMenus',{},function(res){
    audio.play()
    })
  • 微信内关闭页面方法

    WeixinJSBridge.invoke('closeWindow');
    WeixinJSBridge.call('closeWindow');
  • 微信页面调整字体大小的问题

    /**
    * 页面加入这段代码可使Android机器页面不再受到用户字体缩放强制改变大小
    * 但是会有一个1秒左右的延迟,期间可以考虑通过loading展示
    * 仅供参考
    */
    (function(){
    if (typeof(WeixinJSBridge) == "undefined") {
    document.addEventListener("WeixinJSBridgeReady", function (e) {
    setTimeout(function(){
    WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) {
    alert(JSON.stringify(res));
    });
    },0);
    });
    } else {
    setTimeout(function(){
    WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) {
    alert(JSON.stringify(res));
    });
    },0);
    }
    })();

相关知识

  • == 和 === 的区别

    1.对于string,number等基础类型,==和===是有区别的
    
        a.不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等
    
        b.同类型比较,直接进行“值”比较,两者结果一样
    
    2.对于Array,Object等高级类型,==和===是没有区别的
    
        a.进行“指针地址”比较
    
    3.基础类型与高级类型,==和===是有区别的
    
        a.对于==,将高级转化为基础类型,进行“值”比较
    
        b.因为类型不同,===结果为false
  • undefined与null的区别

    ——涵义上:
    
        1.null为空对象指针,undefined为未声明对象
    
        2.null表示"无"的对象(转为数值时为0),undefined表示"无"的初始值(转为数值时为NaN)
    
        3.null表示"没有对象",即此处不应该有值;undefined表示"缺少值",即此处应该有一个值,但是还没有定义
    
        4.undefined值是派生自null值,因此ECMA-262规定对它们的相等性测试要返回true
    
    ——用法上:
    
        [null]
    
            1.作为函数的参数,表示该函数的参数不是对象
    
            2.作为对象原型链的终点
    
        [undefined]
    
            1.变量被声明了,但没有赋值时,就等于undefined
    
            2.调用函数时,应该提供的参数没有提供,该参数等于undefined
    
            3.对象没有赋值的属性,该属性的值为undefined
  • mouseover与mouseenter的区别

    不论鼠标指针穿过被选元素或其子元素,都会触发 mouseover 事件
    
    只有在鼠标指针穿过被选元素时,才会触发 mouseenter 事件
  • mouseout与mouseleave的区别

    不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件
    
    只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件
  • 根据坐标获取元素

    element.elementFromPoint(x, y);

web常用知识的更多相关文章

  1. web前端知识体系总结

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  2. 自己总结的web前端知识体系大全【欢迎补充】

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  3. web前端知识体系大全

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  4. web前端知识体系小结(转)

    1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的 ...

  5. javascript常用知识点集

    javascript常用知识点集 目录结构 一.jquery源码中常见知识点 二.javascript中原型链常见的知识点 三.常用的方法集知识点 一.jquery源码中常见的知识点 1.string ...

  6. WEB相关知识和Tomcat服务器

    WEB相关知识 1.Internet上供外界访问的Web资源分为: 静态web资源:指web页面中供人们浏览的数据始终是不变的. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间 ...

  7. (1)写给Web初学者的教案-----学习Web的知识架构

    1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机  ...

  8. Web前端知识体系精简

    Web前端技术由html.css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知 ...

  9. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

随机推荐

  1. 品Spring:bean定义上梁山

    认真阅读,收获满满,向智慧又迈进一步... 技术不枯燥,先来点闲聊 先说点好事高兴一下.前段时间看新闻说,我国正式的空间站建设已在进行当中.下半年,长征五号B运载火箭将在海南文昌航天发射场择机将空间站 ...

  2. Java StringTokenizer 类使用方法

    Java StringTokenizer 属于 java.util 包,用于分隔字符串. StringTokenizer 构造方法: 1. StringTokenizer(String str) :构 ...

  3. Python实战练习_贪吃蛇 (pygame的初次使用)

    正如标题所写的那样,我将一步步的完成本次实战练习——贪吃蛇.废话不多说,感兴趣的伙伴可以一同挑战一下. 首先说明本次实战中我的配备: 开发环境:python 3.7: 开发工具:pycharm2019 ...

  4. wordpress发送邮件

    首先在wordpress内添加SMTP协议的插件,我这里用的是WP Mail SMTP 配置如下 配置完成之后测试一下,一定要测试能否发邮件

  5. _self.$scopedSlots.default is not a function报错

    问题: 当同一页面有elementUI的多个table表格时,如果用到v-if来动态展示表格,切换时出现如下报错: 原因: 是因为表格是element-ui通过循环产生的,而vue在dom重新渲染时有 ...

  6. MapReduce案例-好友推荐

    用过各种社交平台(如QQ.微博.朋友网等等)的小伙伴应该都知道有一个叫 "可能认识" 或者 "好友推荐" 的功能(如下图).它的算法主要是根据你们之间的共同好友 ...

  7. Vue三步完成跨域请求

    三步完成跨域请求 ①main.js中: Vue.prototype.HOME = '/api'; ② config/index.js中: module.exports = { dev: { // Pa ...

  8. 本次作业统一标题:C语言I博客作业02

    这个作业属于哪个课程 C语言程序设计1 这作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在这个课程的目标是 ...

  9. Android系统介绍与框架

    一.Andriod是什么? Android系统是Google开发的一款开源移动OS,Android中文名被国内用户俗称“安卓”.Android操作系统基于Linux内核设计,使用了Google公司自己 ...

  10. 从 JVM 视角看看 Java 守护线程

    Java 多线程系列第 7 篇. 这篇我们来讲讲线程的另一个特性:守护线程 or 用户线程? 我们先来看看 Thread.setDaemon() 方法的注释,如下所示. Marks this thre ...