• select标签 美化


    现在前端设计越来越受到重视,因此前端页面各组件的美化也越来越重要。

    本文重点讲的是前端比较难优化的一个组件<select>

    一  初级美化

    只进行select框及下拉箭头的美化,单纯的用css美化option选项比较难。

    )-----这是上述案例中用到的下拉箭头。

    上述案例效果图如下:

    下面是实现代码:

    <!DOCTYPE>
    <html>
    
    <head>
        <style>
            .filter-box {
                width: 240px;
                height: 34px;
                background-color: #ffffff;
                border: solid 1px #dcdcdc;
                font-family: Roboto;
                font-size: 12px;
                font-weight: normal;
                font-style: normal;
                font-stretch: normal;
                letter-spacing: normal;
                text-align: left;
                color: #3d3d3d;
                padding-left: 10px;
                border-color: #dcdcdc;
                -webkit-appearance: none;
            }
            
            select {
                background-image: url(backdropdown.png);
                background-position: 222px 9px;
                font-family: Roboto;
                font-size: 12px;
                color: #3d3d3d;
                background-repeat: no-repeat;
            }
        </style>
    </head>
    
    <body>
        <select class="filter-box">
              <option value="选择1" selected="selected">Connecticut</option>
              <option value="选择2">New York</option>
              <option value="选择3">Maryland</option>
              <option value="选择4">Virginia</option>
            </select>
    </body>
    
    </html>
    View Code

    二、高级美化

    高级美化说的通俗一点就是让下拉选项好看再好看,其实是重写覆盖,原来的select隐藏。

    引入bootstrap(bootstrap官网或百度皆可)、bootstrap-select插件(官网:http://silviomoreto.github.io/bootstrap-select/),支持单选、多选以及各种事件操作。

    先上效果图:

    下拉箭头如果需要更换的话,仍然可以使用上面代码中更换方式更换。

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title> Bootstrap</title>
        <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css">
        <script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
        <script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css" />
        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js"></script>
        <script src="#{facesContext.externalContext.requestContextPath}/2018/js/scheduling/multiSelect.js?version=1" type="text/javascript"></script>
    
    </head>
    
    <body>
        <select class="selectpicker show-tick">
                <option>Mustard</option>
                <option>Ketchup</option>
                <option>Relish</option>
              </select>
    
        <select class="selectpicker" multiple data-selected-text-format="count">
                    <option>Mustard</option>
                    <option>Ketchup</option>
                    <option>Relish</option>
                  </select>
    </body>
    
    </html>
    View Code

    PS:JSF中引用的坑

    本人在开发过程中遇到了一个折磨了我大半天的坑,我是在JSF中引入的bootstrap-select,引入过程还及其顺利,修改样式达到与整体兼容协调。但测试过程中问题出现了,当我打开二级页面然后回到当前页面后,引入bootstrap-select的效果失效,即给人的感觉是引用完全消失了。看代码发现二级页面关闭之后使用render选项,只刷新了select组件所在的模块。经过多出查找最后从bootstrap-select 的Git hub上发现这样一句话:

    If you use an older version, you need to add the following either at the bottom of the page (after the last selectpicker), or in a $(document).ready() block.
    
    // To style only <select>s with the selectpicker class
    $('.selectpicker').selectpicker();
    Or
    
    // To style all <select>s
    $('select').selectpicker();

     突然感到柳暗花明(果断star这个Git hub:https://github.com/silviomoreto/bootstrap-select),意思大概就是这个select效果是Dom加载完成之后,再执行js方法加载的select效果。而我使用render之后,所在模块只是加载了dom组件,并没有再执行js。因此我在render的模块最下方加入这样一段代码:

     <script>
        $('.selectpicker').selectpicker();
     </script>

    因为这段代码在render的模块中,因此也会执行这句js,这样二级页面关闭之后,select效果仍然存在。附一张我的项目中效果图收尾。

  • 相关阅读:
    vue模拟接口数据
    修改placeholder的颜色
    network is unreachable mongodb
    数字转时间
    前端下载流文件
    jquery的AJAX中各个事件执行顺序
    移动端谨慎使用overflow:hidden
    时间函数整理
    background-size使用时的注意点
    关于iframe
  • 原文地址:https://www.cnblogs.com/lixianfu5005/p/9051617.html
Copyright © 2020-2023  润新知