zoukankan      html  css  js  c++  java
  • 滑动门技术实现

    先来体会下现实中的滑动门,或者你可以叫做推拉门:

    滑动门出现的背景

    制作网页时,为了美观,常常需要为网页元素设置特殊形状的背景,比如微信导航栏,有凸起和凹下去的感觉,最大的问题是里面的字数不一样多,咋办?

    为了使各种特殊形状的背景能够自适应元素中文本内容的多少,出现了CSS滑动门技术。它从新的角度构建页面,使各种特殊形状的背景能够自由拉伸滑动,以适应元素内部的文本内容,可用性更强。 最常见于各种导航栏的滑动门。

    核心技术

    核心技术就是利用CSS精灵(主要是背景位置)和盒子padding撑开宽度, 以便能适应不同字数的导航栏。

    一般的经典布局都是这样的:

        <li>
          <a href="#">
            <span>导航栏内容</span>
          </a>
        </li>
    

    案例

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Document</title>
            <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
            ul {
                list-style: none;
            }
            body {
                background: url(images/wx.jpg) repeat-x;
            }
            .nav {
                height: 75px;
            }
            .nav li {
                float: left;
                margin: 0 10px;
                padding-top: 21px;
            }
            .nav li a {
                display: block;
                background: url(images/to.png) no-repeat;
                color: #fff;
                font-size: 14px;
                line-height: 33px;
                padding-left: 15px;
                text-decoration: none;
            }
            .nav li a:hover {
                background-image: url(images/ao.png);
            }
        
            .nav li a:hover span {  /* 鼠标经过a a里面的span 也要变换背景 */
                background-image: url(images/ao.png);
            }
            .nav li a span {
                display: block;
                line-height: 33px;
                background: url(images/to.png) no-repeat right center;
                padding-right: 15px;
            }
            </style>
        </head>
        <body>
            <div class="nav">
                <ul>
                    <li>
                        <a href="#">
                            <span>首页</span>
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <span>帮助与反馈</span>
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <span>公众平台</span>
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <span>帮助与反馈</span>
                        </a>
                    </li>
                    <li>
                        <a href="#">
                            <span>帮助与反馈</span>
                        </a>
                    </li>
                </ul>
            </div>
        </body>
        </html>
    

    总结:

    1. a 设置 背景左侧,padding撑开合适宽度。    
    2. span 设置背景右侧, padding撑开合适宽度 剩下由文字继续撑开宽度。
    3. 之所以a包含span就是因为 整个导航都是可以点击的。
  • 相关阅读:
    docker镜像构建之docker commit(七)
    docker常用容器命令(五)
    docker常用镜像命令(四)
    如何查看systemctl启动服务的日志
    window server 2012 无法安装.NET framework 3.5 service pack 1
    SpringBoot第六篇-SpringBoot+Mybatis+SpringSecurity+JWT整合,开发工具IDea
    SpringBoot第五篇SpringSecurity 认证机制
    SpringBoot第四篇常见问题
    SpringBoot第三篇SpringBoo和Mybatis整合
    SpringBoot第二章拦截器
  • 原文地址:https://www.cnblogs.com/ifme/p/11796670.html
Copyright © 2011-2022 走看看