H5常用技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H5常用技巧相关的知识,希望对你有一定的参考价值。

一、@support断定浏览器支持情况定义不同样式

@1像素边框

技术分享
@supports (-webkit-backdrop-filter:blur(1px)) {
    .o2_mark i {
        border: 0
    }

    .o2_mark i::before {
        content: "\\20";
        border: 1px solid #666;
        position: absolute;
        left: 0;
        top: 0;
        width: 200%;
        height: 200%;
        -webkit-transform-origin: left top;
        -webkit-transform: scale(.5);
        -webkit-box-sizing: border-box;
    }
}
技术分享

@sticky吸顶优化体验

sticky使用条件:
sticky 元素只能在父容器内活动
sticky 元素父容器不能含有overflow:hidden 和 overflow:auto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.wx618_tabs{
    position:relative;
    &.fixed ul{
        position:fixed;
        top:0;
        left:0;
        width:100%;
    }
}
//支持sticty属性,运行
@suports (position:-webkit-sticky){
    .wx618_tabs{
        position:-webkit-sticky;
        top:0;
        &.fixed ul{position:relative}
    }
}

@javascript中提供了window.CSS.supports方法

1
2
3
4
5
// JavaScript中提供了window.CSS.supports方法
// 第一种方法
var supportsFlex = CSS.supports("display", "flex");
// 第二种方法
var supportsFlexAndAppearance = CSS.supports("(display: flex) and (-webkit-appearance: caret)");

二、calc加减乘除运算

1
2
3
4
5
6
7
8
9
.col-3 {
    width: calc(100%-10px);
    height: 200px;
}
.clo-3 li {
    float: left;
    width: calc(100% / 3); /* 33.3% */
    height: 200px;
}

三、图片水平镜像翻转

1
2
3
4
5
6
.example-1 {
    transform: scaleX(-1); /* 方法一 */
}
.example-2 {
    transform: rotateY(180deg); /* 方法二 */
}

四、自旋转运动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div class="example"></div>
.example {
    position: absolute;
    top: 200px;
    left: 200px;
    width: 100px;
    height: 100px;
    border: 2px solid #000;
    border-radius: 50%;
    animation: autogyRation 4s linear infinite;
}
  
@keyframes autogyRation {
    from {
        transform: rotate(0deg) translate(-60px) rotate(0deg);
    }
    to {
        transform: rotate(360deg) translate(-60deg) rotate(-360deg);
    }
}

案例展示:demo

五、扫光动画

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<style>
  .sample{
    background-color: #0E1326;
    padding-top:30px;
    overflow: hidden;
  }
  .blank_text{
    position: relative;
    width:200px;
    margin:20px auto;
    color: #fff;
    line-height: 1;
    font-size: 50px;
    font-size: 0.74074rem;
    text-align: center;
    overflow: hidden;
    font-family: "icomoon";
  }
.blank_text:after{
    width: 300%;
    height: 100%;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background: -webkit-gradient(linear, left top, right top, color-stop(0, rgba(15,20,40, 0.7)), color-stop(0.4, rgba(15,20,40, 0.7)), color-stop(0.5, rgba(15,20,40, 0)), color-stop(0.6, rgba(15,20,40, 0.7)), color-stop(1, rgba(15,20,40, 0.7)));
    -webkit-animation: slide ease-in-out 2s infinite; 
}
@-webkit-keyframes slide{
    0%{-webkit-transform:translateX(-66.666%);}
    100%{-webkit-transform:translateX(0);}
}
</style>
 
<div class="sample">
 
    <div class="blank_text">选择一本你喜欢的</div>
</div>

六、超透事件css属性

1
2
3
.example {
    pointer-event: none;
}

七、加ontouchstart促使css:active生效

1
<body ontouchstart="">

八、设置Chrome最小字体显示小于12px

  字体:

  • ios9+的css字体设置了-apple-system的话中文会调用苹方,英文/数字则调San Francisco;San Francisco在ios/mac上没有显式暴露出来(不能通过字体名字调用),需要通过这种方式调用;
  • 在不支持-apple-system的ios系统下会调用华文细黑的中文/英文/数字;
  • sans-serif在非ios9+下会调用华文细黑的中文/英文/数字;
  • sans-serif在ios9+下会调用苹方的中文/英文/数字;
  • sans-serif在安卓下会调用系统的中文/英文字体,一般不需要其他设置;
  • 总的来说sans-serif在手机系统下会调用默认中文字体的中文/英文/数字

  由此移动的字体reset,可以统一设置为:

1
font-family: -apple-system,Helvetica,sans-serif;

  

九、设置Chrome最小字体显示小于12px

Google Chrome默认浏览器字体最小字体为:12px,而我们手机端页面常常字体小于12px。 解决:右上角(自定义及控制) → 设置 → 显示高级设置 → 网络内容(自定义字体) → 最小字号(最小可以设置为6px)

以上是关于H5常用技巧的主要内容,如果未能解决你的问题,请参考以下文章

H5常用技巧

移动端开发必须知道的小技巧(转)

H5游戏性能优化,调试技巧

移动端H5技巧之Sticky布局

Mac常用技巧

微信h5缓存清理技巧