这是我参与更文挑战的第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写入,方便接口登录认证。