你会用到的12个前端小知识!

979 阅读2分钟

这是我参与更文挑战的第8天,活动详情查看:更文挑战

今天我总结了12个工作中经常用到的前端小知识给你们。

1、css 一行文本超出隐藏

overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;

2、css 多行文本溢出隐藏

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;

3、IOS 手机容器滚动条滑动不顺畅

overflow: auto;
-webkit-overflow-scrolling: touch;

4、修改滚动条样式

隐藏 div 元素的滚动条

div::-webkit-scrollbar {
    display: none;
}

5、解决 ios audio / video 无法自动播放、循环播放的问题

// 解决ios audio无法自动播放、循环播放的问题
var music = document.getElementById('video');
var state = 0;

document.addEventListener('touchstart', function(){
    if(state==0){
        music.play();
        state=1;
    }
}, false);

document.addEventListener("WeixinJSBridgeReady", function () {
    music.play();
}, false);
//循环播放
music.onended = function () {
    music.load();
    music.play();
}

6、去除图片底边3像素的问题

img { 
    vertical-align:middle
}

7、contenteditable

contenteditable="true" 可以将标签变成可编辑状态。

<div contenteditable="true"></div>

8、CSS 中 calc() 方法

这个属性能适应自适应的布局。

div {
    width: calc(50% - 20px);
}

9、解析 get 参数

通过 replace 方法获取 url 中的参数键值对,可以快速解析 get 参数。

const q = {};
location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v);
console.log(q);

10、解析连接 url

创造 a 标签,给 a 标签赋值 href 属性的方式,获取到协议,pathname,origin等 location 对象上的属性。

// 创建a标签
const aEle = document.createElement('a');
// 给a标签赋值href路径
aEle.href = '/test.html';
// 访问aEle中的属性
aEle.protocol; // 获取协议
aEle.pathname; // 获取path
aEle.origin;
aEle.host;
aEle.search;

11、隐藏页面元素

display-none: 元素不存在,从 dom 中删除
opacity-0: 元素透明度将为 0,但元素仍然存在,绑定的事件仍旧有效仍可触发执行。
visibility-hidden:元素隐藏,但元素仍旧存在,页面中无法触发该元素的事件。

12、跨域的四种常见方式

   - jsonp是一种借助于 script 标签发送跨域请求的方式
   - CORS 跨域资源共享:只需要在被请求的服务端响应的时候添加一个 Access-Control-Allow-Origin 的响应头,表示这个资源是否允许指定域请求。
   - nginx反向代理:他可以不用目标服务器配合,不过需要你搭建一个中转nginx服务器,用于转发请求。
   - nodejs中间件代理跨域:node中间件实现跨域代理,原理大致与nginx相同,都是通过启一个代理服务器,实现数据的转发,也可以通过设置cookieDomainRewrite参数修改响应头中cookie中域名,实现当前域的cookie写入,方便接口登录认证。