• 典型电商网站的站点导航的布局结构实现,及运用三种方式实现下拉效果


    由于jquery2.0及以下不再支持IE6/7/8,因此选择jquery1.x版本中较新的一个

    推荐一个各种插件URL地址的公共库:https://www.bootcdn.cn/

    CDN加载jquery的优点:

    1、减轻服务器压力

    2、速度快

    3、可以缓存

    缺点:

    不稳定(取决于别人的服务器,因此需要做防范措施)

    措施:

    短路操作判断cdn方式是否加载成功

        <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
        <script>
            //短路操作,如果cdn的jquery没有引用成功,则会执行后面一句,引入本地jquery
            //括号中的</script>标签会被当做当前标签的结束标签,因此需要转义
            window.jQuery || document.write('<script src="js/jquery.js"></script>');
        </script>

    base.css 是一般通用的样式重置代码,直接引入即可

    /*css reset*/
        /*清除内外边距*/
        body, h1, h2, h3, h4, h5, h6, p, hr, /*结构元素*/
        ul, ol, li, dl, dt, dd, /*列表元素*/
        form, fieldset, legend, input, button, select, textarea, /*表单元素*/
        th, td, /*表格元素*/
        pre {
            padding: 0;
            margin: 0;
        }
    
        /*重置默认样式*/
        body, button, input, select, textarea {
            /*font: 12px/1 微软雅黑, Tahoma, Helvetica, Arial, 宋体, sans-serif;*/
            color: #333;
            font: 12px/1 "Microsoft YaHei", Tahoma, Helvetica, Arial, SimSun, sans-serif;
        }
        h1, h2, h3, h4, h5, h6 {
            font-size: 100%;
            font-weight: normal;
        }
        em, i {
            font-style: normal;
        }
    
        a {
            text-decoration: none;
        }
        li {
            list-style-type: none;
            vertical-align: top;
        }
        img {
            border: none;
            /*display: block;*/
            vertical-align: top;
        }
        textarea {
            overflow: auto;
            resize: none;
        }
        table {
            border-spacing: 0;
            border-collapse: collapse;
        }
    
    /*常用公共样式*/
        .fl {
            float: left;
            display: inline;
        }
        .fr {
            float: right;
            display: inline;
        }
        .cf:before,
        .cf:after {
            content: " ";
            display: table;
            
        }
        .cf:after {
            clear: both;
        }
        .cf {
            *zoom: 1;
        }

    查看PSD设计图:

    信息面板(选框工具框选目标查看尺寸)

    历史记录面板

    图层面板

    视图-标尺


    站点导航编写

     推荐一个插件:Pixel Perfect

    能够导入网页设计图,可以改变透明度,与编写的页面进行实时对比

    工具介绍:

     下载网址:https://www.chromedownloads.net/extensions/938.html

    注意如果.crx的插件谷歌浏览器无法安装,就改为.rar或者.zip,然后在扩展程序中安装

     然后在打开的网页中,右上角,添加设计图

     可以调整透明度什么的,

    鼠标滚轮左右滚动也可以实时调整透明度

    我的目前是没办法重合了,因此笔记本设置了显示150%,emmm……

    index.html

    <!DOCTYPE html>
    <html lang="zh-CN"><!-- 设置简体中文 -->
    <head>
        <meta charset="UTF-8">
        <title>index</title>
        <link rel="stylesheet" href="css/base.css">
        <link rel="stylesheet" href="css/index.css">
        <link rel="stylesheet" href="css/common.css">
        <!-- css一般放在DOM加载前,防止DOM裸奔 -->
    </head>
    <body>
        <!-- 导航 -->
        <div class="nav-site">
            <div class="container">
                <ul class="fl">
                    <li class="fl"><a href="javascript:;" class="nav-site-login">亲,请登录</a></li>
                    <li class="fl"><a href="javascript:;" class="nav-site-reg link">免费注册</a></li>
                    <li class="fl"><a href="#" class="nav-site-shop link">手机逛慕淘</a></li>
                </ul>
                <ul class="fr">
                    <li class="fl dropdown">
                        <a href="javascript:;" class="dropdown-toggle link">我的慕淘<i class="dropdown-arrow"></i></a>
                        <ul class="dropdown-list dropdown-left">
                            <li class="dropdown-item"><a href="#">已买到的宝贝</a></li>
                            <li class="dropdown-item"><a href="#">我的足迹</a></li>
                        </ul>
                    </li>
                    <li class="fl dropdown">
                        <a href="javascript:;" class="dropdown-toggle link">收藏夹<i class="dropdown-arrow"></i></a>
                        <ul class="dropdown-list dropdown-left">
                            <li class="dropdown-item"><a href="#">收藏的宝贝</a></li>
                            <li class="dropdown-item"><a href="#">收藏的店铺</a></li>
                        </ul>
                    </li>
                    <li class="fl dropdown">
                        <a href="javascript:;" class="nav-site-cat link">商品分类</i></a>
                    </li>
                    <li class="fl dropdown">
                        <a href="javascript:;" class="dropdown-toggle link">卖家中心<i class="dropdown-arrow"></i></a>
                        <ul class="dropdown-list dropdown-left">
                            <li class="dropdown-item"><a href="#">免费开店</a></li>
                            <li class="dropdown-item"><a href="#">已卖出的宝贝</a></li>
                            <li class="dropdown-item"><a href="#">出售中的宝贝</a></li>
                            <li class="dropdown-item"><a href="#">卖家服务市场</a></li>
                            <li class="dropdown-item"><a href="#">卖家培训中心</a></li>
                            <li class="dropdown-item"><a href="#">体验中心</a></li>
                        </ul>
                    </li>
                    <li class="nav-site-service fl dropdown">
                        <a href="javascript:;" class="dropdown-toggle link">联系客服<i class="dropdown-arrow"></i></a>
                        <ul class="dropdown-list dropdown-right">
                            <li class="dropdown-item"><a href="#">已买到的宝贝</a></li>
                            <li class="dropdown-item"><a href="#">我的足迹</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
        <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
        <script>
            //短路操作,如果cdn的jquery没有引用成功,则会执行后面一句,引入本地jquery
            //括号中的</script>标签会被当做当前标签的结束标签,因此需要转义
            window.jQuery || document.write('<script src="js/jquery.js"></script>');
        </script>
        <script src="js/index.js"></script>;
    </body>
    </html>

    common.css 公共样式

    /*公共样式 */
    .container{
        width:1200px;
        margin:0 auto;
    }
    .link{
        color:#4d555d;
    }
    .link:hover{
        color:#f01414;
    }
    .fl{
        float:left;
    }
    .fr{
        float:right;
    }

    index.css

    /*nav-site */
    .nav-site{
        width:100%;
        background-color: #f3f5f7;
    }
    .nav-site .container{
        height:44px;
        line-height: 44px;
        border-bottom:1px solid #cdd0d4;
    }
    .nav-site-login{
        color:#f01414;
        margin-left:15px;
    }
    .nav-site-reg{
        margin-left:10px;
    }
    .nav-site-shop{
        margin-left:10px;
    }
    .dropdown{
    
    }
    .dropdown-toggle{
        display: block;
        padding:0 16px 0 12px;
        border-right:1px solid #f3f5f7;
        border-left:1px solid #f3f5f7;
        position: relative;
        z-index:2;
    }
    .dropdown-arrow{
        display: inline-block;
        width:8px;
        height:6px;
        background:url(../img/dropdown-arrow.png) left center no-repeat;
        margin-left:8px;
        vertical-align: middle;
    }
    .dropdown-list{
        display: none;
        border:1px solid #cdd0d4;
        background-color: #fff;
        position: absolute;
        z-index:1;
        top:43px;
    }
    .dropdown-left{
    
    }
    .dropdown-item{
        height:30px;
        line-height:30px;
        padding:0 12px;
    }
    .dropdown-item:hover{
        background-color: #f3f5f7;
    }
    .nav-site-cat{
        margin:0 10px;
    }
    .nav-site-service{
        margin-right:15px;
    }
    /*# sourceMappingURL=index.css.map */
    
    /*# sourceMappingURL=index.css.map */

    index.js

    $(".dropdown-toggle").hover(function(){
        //鼠标移入
        var ui=$(this);
        //背景色和边框改变
        ui.css({
            "background-color":"#fff",
            "border-color":"#cdd0d4"
        });
        //箭头切换
        ui.find(".dropdown-arrow").css({
            "background-image":"url(img/dropdown-arrow-active.png)"
        })
        //下拉列表显示
        ui.next(".dropdown-list").show();
    },function(){
        //鼠标移出
        var ui=$(this);
        //背景色和边框改变
        ui.css({
            "background-color":"",
            "border-color":"#f3f5f7"
        });
        //箭头切换
        ui.find(".dropdown-arrow").css({
            "background-image":"url(img/dropdown-arrow.png)"
        })
        //下拉列表隐藏
        ui.next(".dropdown-list").hide();
    });

    在js中直接修改css,存在浏览器的重绘(背景色等,元素自身)以及回流(宽高等,元素自身及周围元素),造成性能问题

    修改:在js中添加或删除类,将样式写在css中

    index.css中新增:

    /*鼠标悬停样式*/
    .dropdown-toggle:hover{
        background-color:#fff;
        border-color:#cdd0d4;
    }
    .dropdown-active .dropdown-arrow{
        background-image:url(../img/dropdown-arrow-active.png);
    }
    .dropdown-active+.dropdown-list{
        display: block;
    }

    index.js代码修改为:

    $(".dropdown-toggle").hover(function(){
        //鼠标移入
        $(this).addClass("dropdown-active");
    },function(){
        //鼠标移出
        $(this).removeClass("dropdown-active");
    });

    还有更简单的修改方式,全部使用:hover伪类来完成,不使用js

    只需要在index.css中新增:

    /*鼠标悬停样式*/
    .dropdown:hover .dropdown-toggle{
        background-color:#fff;
        border-color:#cdd0d4;
    }
    .dropdown:hover .dropdown-arrow{
        background-image:url(../img/dropdown-arrow-active.png);
    }
    .dropdown:hover .dropdown-list{
        display: block;
    }

    不过这种写法不兼容 IE6 ,因为 IE6 只支持 a 标签的 hover 伪类

    效果图

  • 相关阅读:
    Eugene and an array CodeForces
    Kind Anton CodeForces
    浙江大学PAT上机题解析之1011. World Cup Betting (20)
    九度OnlineJudge之1001:A+B for Matrices
    九度OnlineJudge之1468:Sharing
    九度OnlineJudge之1464:Hello World for U
    C++ STL 学习笔记
    浙江大学PAT上机题解析之1009. Product of Polynomials (25)
    浙江大学PAT上机题解析之1050. String Subtraction (20)
    浙江大学PAT上机题解析之1008. Elevator (20)
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12339632.html
Copyright © 2020-2023  润新知