总会用到的前端小姿势

简介: 工作中总结的一些常见的前端问题处理方案,持续总结与记录,上班才能更愉快地摸鱼(划掉)

CSS篇

0. 文本自动换行bug

假设一个宽度固定的div内有一段文字,那么浏览器默认处理方式会比较傻,纯中文下乍一看没问题,但英文与数字混搭等情况容易出现bug,此时解决方法有两种css方法:

word-wrap: break-word; // 对过长单词会先另起一行
word-break: break-all; // 粗暴地拆掉单词并换行,比较常用

1. css实现iPhone系列黑边适配

以往的iPhone X 适配比较简单粗暴,通常是正则判断机型来做出相应处理,如今需要适配的iPhone机型早已不止X系列,好在css有对应的处理方案,非常实用,那就是 viweport-fit 属性:

需要设置页面内容完全覆盖整个窗口:

<meta name="viewport" content="width=device-width, viewport-fit=cover">

只有设置了 viewport-fit=cover,env()才生效,根据情况来使用:

padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);

也可以使用计算属性:

calc(55px +  constant(safe-area-inset-bottom))

2. 文本超出省略

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3; /** 最大行数 **/
overflow: hidden;

4. ios滑动不流畅

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

5. 隐藏div滚动条

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

6. 水平垂直居中

绝对定位,需要声明宽高

div {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
}

flex,父级控制,比较常用

.parent {
    display: flex;
    justify-content: center;
    align-items: center;
}

grid,父级控制,更简洁

.parent {
    display: grid;
    place-items: center;
}

7. div可编辑

富文本编辑器原理

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

8. cslc

项目中常用css预编译,css计算表达式一般很少用到,且可能存在性能问题。但是需要的时候使用还是挺方便的,比如上面iphone黑条的适配。

div {
    width: calc(10rem - 20px + 5%);
}

JS篇

0. ios audio 无法自动播放、循环播放的问题

var music = document.getElementById('video');
var state = false;

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

// 微信浏览器
document.addEventListener("WeixinJSBridgeReady", function () {
    music.play();
}, false);

//循环播放
music.onended = function () {
    music.load();
    music.play();
}

1. 在ios中日期格式显示不能为"-",否则会出现错误。

const date = '2019-01-01'

const newDate = new Date(date.replace(/-/g, '/'))

此问题只出现在ios,安卓和PC都能识别。

相关文章
|
5月前
|
JSON 前端开发 安全
写了几年代码,你将跨域问题弄明白了吗?
互联网发展至今,前端开发者经常面临跨域问题,这是因为浏览器的同源策略限制了不同源的网页之间的数据交互。当尝试从`http://127.0.0.1:14949`访问`http://localhost:3000`的资源时,浏览器会阻止这种请求,因为它缺少“Access-Control-Allow-Origin”响应头,这是CORS(跨域资源共享)机制的要求。
|
Web App开发 移动开发 前端开发
前端,真的死了吗?
前端,真的死了吗?
148 0
|
测试技术
初级软件测试面试题怎么找?提供的这两个地方你肯定用得上
最近几年,随着电子产品和互联网的蓬勃发展,各类科技公司如雨后春笋般出现,而软件公司作为科技类公司中的重要组成部分,在这支互联网大军中也占据了重要一席。因而,负责软件问题质检的软件测试岗位也逐渐成了这几年炙手可热的就业岗位之一。
148 0
|
前端开发 JavaScript
当下做前端开发,不算简单,这篇文章可以让少走很多弯路以及需要掌握的知识
当下做前端开发,不算简单,这篇文章可以让少走很多弯路以及需要掌握的知识
|
机器学习/深度学习 前端开发 小程序
想当程序员,如何判断自己是否适合当前端程序员?
真正学习的时候,大多数所谓的兴趣就是扯淡; 只有那种遇到难题就兴奋,敲代码时候,越挫越勇的人,才叫感兴趣; 真正的感兴趣是让你学的久,学的不累;
173 0
|
前端开发 安全 JavaScript
关于前端方面的困惑与思考
关于前端,关于工作,你是否也有这样的困惑,工作是什么?为什么要做前端?做技术还是做业务?兴趣重要吗?怎么看待职业瓶颈?
283 0
关于前端方面的困惑与思考
|
芯片
程序人生 - 手上总有静电该怎么处理?
程序人生 - 手上总有静电该怎么处理?
145 0
程序人生 - 手上总有静电该怎么处理?
|
前端开发 JavaScript 算法
这些前端案例看似很简单(内附动图)
前言 在学习前端js操作元素的时候,往往有很多的案例的做法的思想都是一样的,我们一定要会。本篇文章将从几个小demo入手,带你领略js的风采。 很常见的一些案例,一定要学会哦!!!
165 0
这些前端案例看似很简单(内附动图)
|
移动开发 JavaScript 前端开发
Day 5: GruntJS——重复乏味的工作总会有人做(反正我不做)
我们发现了比较有趣的系列文章《30天学习30种新技术》,准备翻译,一天一篇更新,年终礼包。下面是第五天的内容。
239 0
Day 5: GruntJS——重复乏味的工作总会有人做(反正我不做)
|
算法 程序员 测试技术
面对Bug程序员能做点什么
我们程序不可避免的会出现bug,那么我们能做哪些事情,尽可能减少bug的产生
425 0
面对Bug程序员能做点什么