• 前端实用小技巧总结


    1.指定文件兼容性模式

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    在html页面的<head>元素里加入以上代码,用来声明:如果安装了GCF(Google Chrome Frame),则当前页面使用chrome内核来渲染;如果未安装GCF,则使用IE的Edge版本来渲染。

    2.改变input/textarea的placeholder字体的样式

    input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {/*webkit内核的浏览器*/
        color: #666;
    }
    input:-moz-placeholder, textarea:-moz-placeholder {/*Firefox版本4-18*/
        color:#666;
    }
    input::-moz-placeholder, textarea::-moz-placeholder {/*Firefox版本19+*/
        color:#666;
    }
    input:-ms-input-placeholder, textarea:-ms-input-placeholder {/*IE浏览器*/
        color:#666;
    }

    3.输出带样式的文本到浏览器控制台

    console.log('%c
    Hello World', 'color:red;font-size:24px;')

    4.单行文本过长用"..."代替

    div {
        width:100px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    5.多行文本过长用"..."代替

    .link-name {
        width: 100%;
        word-break: break-word;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    6.去掉input元素focus时的边框

    input{
        outline:none;
    }

    7.回到顶部和回到底部

    <a href="javascript:void(0);" onclick="javascript:document.getElementsByTagName('BODY')[0].scrollTop=0;">回到顶部</a>
    
    <a onclick="javascript:document.getElementsByTagName('BODY')[0].scrollTop=document.getElementsByTagName('BODY')[0].scrollHeight;" 
      href="javascript:void(0);">回到底部</a>

    8.将页面变成黑白的

    with(document.body.style) {
        var vFilter = "grayscale(100%)";
        if (typeof webkitFilter !== "undefined") {webkitFilter = vFilter}
        else if (typeof MozFilter !== "undefined") {MozFilter = vFilter}
        else if (typeof msFilter !== "undefined") {msFilter = vFilter}
        else if (typeof oFilter !== "undefined") {oFilter = vFilter}
        else if (typeof filter !== "undefined") {filter = vFilter}
    }

    在浏览器的控制台中运行以上代码即可。

    9.目前为止见过的最简洁的求阶乘 n! 的方法

    (function (n) {return n > 1 ? n * arguments.callee (n - 1): n} ) (7)

    10.目前为止见过的最简洁的数组去重的方法

    Array.prototype.unique = function () { return this.filter(function (v, i, m) { return i <= m.indexOf(v);}); };
    console.log('result:', [1,2,3,12,3,2,1,2,30].unique());

    11.文本框只能输入数字

    HTML:
    <input type="text" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')" />
    
    React:
    <input type="text" onKeyUp={ (e) => { e.target.value=e.target.value.replace(/[^0-9]/g,'') } } />

    12.修改浏览器默认滚动条样式

    /* 设置滚动条的样式 */
    ::-webkit-scrollbar {
      width:8px;
      height:8px;
    }
    /* 滚动槽 */
    ::-webkit-scrollbar-track {
      border-radius:5px;
      background:rgba(0,0,0,0.05);
      -webkit-box-shadow: rgba(0,0,0,0.1);
    }
    /* 滚动条滑块 */
    ::-webkit-scrollbar-thumb {
      border-radius:10px;
      background:rgba(0,0,0,0.1);
      -webkit-box-shadow:rgba(0,0,0,0.2);
    }
    /*当焦点不在当前区域滑块的状态*/
    ::-webkit-scrollbar-thumb:window-inactive {
      background:rgba(0,0,0,0.06);
    }
    /*当鼠标在水平滚动条的状态*/
    ::-webkit-scrollbar-thumb:hover {
      background:rgba(0,0,0,0.2);
    }

    13.可计算CSS

    .container-widescreen{
        max-width: calc(100% - 170px - 20px);
    }

    需要注意的是运算符两边都需要有空格,否则不生效,即:`calc(100%-170px)`不生效,而`calc(100% - 170px)`生效

    14.修改ng cli默认端口

    在angular.json中修改

      "projects": {
        "your-project-name": {
          "architect": {
            "serve": {
              "options": {
                "browserTarget": "ngx-editor:build",
                "port": 4260
              },
            },
          }
        },
      }

    15.修改vue cli默认端口

    新增vue.config.js文件

    module.exports = {
        devServer: {
            port: 4260,     // 端口
        },
        lintOnSave: false   // 取消 eslint 验证
    };

    附:

    一、设备分辨率总结

    PC:
    
    1024X768 - 老机器
    
    1280X800 - MacBook Pro(13寸)
    
    1366X768 - 笔记本
    
    1440X900 - MacBook Air(13)
    
    1920X1080 - 台式机、iMac(21寸)
    
    2304X1440 - MacBook(12)
    
    2560X1440 - iMac(27寸)
    
    2560X1600 - rMBP(13)
    
    2880X1800 - rMBP(15)
    
    5120X2880 - 5K iMac
    Pad:(横屏)
    
    1024X768 - iPad1/2/mini
    
    2048X1536 - iPad3/4/mini2
    Mobile:(竖屏)(太多了,只总结了iOS的手机)
    
    640X960 - iPhone4/4s
    
    640X1136 - iPhone5/5c/5s/se
    
    750X1334 - iPhone6/6s/7/8
    
    1080X1920 - iPhone6/6s/7/8 plus

    1125X2436 - iPhone X
    Mobile:(竖屏)(Android手机)
    
    480X854 - 小米1

    720X280 - 小米2 1080X1920 - 华为

    1080X1800 - 魅族3

    1152X1920 - 魅族4

    1536X2560 - 魅族4 pro

    1440X2560 - 乐视max/三星S6

    二、判断浏览器类型

    stackoverflow中的方法:

    // Opera 8.0+
    var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
    
    // Firefox 1.0+
    var isFirefox = typeof InstallTrigger !== 'undefined';
    
    // Safari 3.0+ "[object HTMLElementConstructor]" 
    var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification);
    
    // Internet Explorer 6-11
    var isIE = false || !!document.documentMode;
    
    // Edge 20+
    var isEdge = !isIE && !!window.StyleMedia;
    
    // Chrome 1+
    var isChrome = !!window.chrome && !!window.chrome.webstore;
    
    // Blink engine detection
    var isBlink = (isChrome || isOpera) && !!window.CSS;

    利用正则表达式判断userAgent:

        [ 'edge', /Edge/([0-9._]+)/ ],
        [ 'yandexbrowser', /YaBrowser/([0-9._]+)/ ],
        [ 'chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)/([0-9.]+)(:?s|$)/ ],
        [ 'crios', /CriOS/([0-9.]+)(:?s|$)/ ],
        [ 'firefox', /Firefox/([0-9.]+)(?:s|$)/ ],
        [ 'opera', /Opera/([0-9.]+)(?:s|$)/ ],
        [ 'opera', /OPR/([0-9.]+)(:?s|$)$/ ],
        [ 'ie', /Trident/7.0.*rv:([0-9.]+)).*Gecko$/ ],
        [ 'ie', /MSIEs([0-9.]+);.*Trident/[4-7].0/ ],
        [ 'ie', /MSIEs(7.0)/ ],
        [ 'bb10', /BB10;sTouch.*Version/([0-9.]+)/ ],
        [ 'android', /Androids([0-9.]+)/ ],
        [ 'ios', /Version/([0-9._]+).*Mobile.*Safari.*/ ],
        [ 'safari', /Version/([0-9._]+).*Safari/ ]

    Opera(OPR)、QQ浏览器(QQBrowser)、360浏览器()、百度浏览器(BIDUBrowser)、猎豹浏览器(LBBROWSER)、搜狗浏览器(SE)、遨游浏览器(Maxthon)、2345浏览器(2345Explorer)

    [ "Chrome", ""Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"" ],
    [ "Safari", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"" ],
    [ "Firefox", ""Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"" ],
    [ "Opera", ""Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36 OPR/45.0.2552.812"" ],
    [ "2345", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.108 Safari/537.36 2345Explorer/8.6.1.15524" ],
    [ "猎豹", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 LBBROWSER"" ],
    [ "UC", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 UBrowser/6.1.2107.204 Safari/537.36"" ],
    [ "搜狗", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0""],
    [ "百度", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 BIDUBrowser/8.7 Safari/537.36""],
    [ "遨游", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/5.0.4.2000 Chrome/47.0.2526.73 Safari/537.36""],
    [ "QQ浏览器", ""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.2658.400 QQBrowser/9.6.11018.400""]
  • 相关阅读:
    python随机生成
    socket、tcp、http
    TCP三次握手和http过程
    iOS多线程的初步研究(十)-- dispatch同步
    dispatch队列
    IOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
    UIWebView 自定义网页中的alert和confirm提示框风格
    dispatch_semaphore
    app内购提示,您已购买此商品,但未下载
    单例的写法
  • 原文地址:https://www.cnblogs.com/kagol/p/6374317.html
Copyright © 2020-2023  润新知