前端性能优化--能用css的地方尽量不要用js

在写这篇文字的时候,本来没有打算归类到前端性能优化的范畴,只是想写一些关于有的地方我们可以利用css代替js实现网页动态的效果,比较常见的有导航栏,提示信息等,很多时候我们会利用js实现,比如鼠标移动到父级li上,我们希望子级显示菜单,我们可能在js给每个父级的li绑定一个hover事件。

0、导航栏

下面我用css的方式实现,这里我们利用了hover的伪类,(我们可能大部分都是用到a标签上的,提示大家不是只有a标签才可以用哦)。我们先将子级的ul定位到页面之外,在鼠标hover上面的时候,left设置auto即可(用display:none和block同样可以),代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>那些你可能会疏忽的css代替js</title>

    <style>
        *{
            margin: 0;
            padding: 0;
        }
        li{
            list-style: none;
        }
        .primary{
        }
        .primary>li{
            position: relative;
            display: inline-block;
            width: 100px;
            background: #89ac10;
        }
        .secondary{
            position: absolute;
            left: -9999px;
        }
        .secondary>li{
            width: 100px;
            background: #66afe9;
        }
        ul.primary li:hover .secondary{
            left: auto;
        }
    </style>
</head>
<body>

<ul class="primary">
    <li>菜单A
        <ul class="secondary">
            <li>A-1</li>
            <li>A-2</li>
            <li>A-3</li>
        </ul>
    </li>
    <li>菜单B
        <ul class="secondary">
            <li>B-1</li>
            <li>B-2</li>
            <li>B-3</li>
        </ul></li>
    <li>菜单C
        <ul class="secondary">
            <li>C-1</li>
            <li>C-2</li>
            <li>C-3</li>
        </ul></li>
    <li>菜单D
        <ul class="secondary">
            <li>D-1</li>
            <li>D-2</li>
            <li>D-3</li>
        </ul></li>
</ul>

</body>
</html>

1、提示信息

就是实现,在input输入内容的时候,要显示提示信息,普遍的做法就是,添加鼠标点击,移出事件,我这里用纯css实现,大家参考一下

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>

    <style>
        div span {
            display: none;
            color: red;
        }

        div input:focus + span {
            display: inline-block;
        }

    </style>
</head>
<body>

<div>
    <input type="text"/>
    <span>请输入电话号码:138-0080-1209。</span>
</div>

</body>
</html>


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值