zoukankan      html  css  js  c++  java
  • 怎样用纯HTML和CSS更改默认的上传文件按钮样式

     如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦。看看下面的不同浏览器的截图。很明显的,他们长得很不一样。

      我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览器里的样子和布局是一样的上传文件按钮。我们可以这样: 

      步骤1.创建一个简单的HTML标记 

    1
    2
    3
    4
    <div class="fileUpload btn btn-primary">
        <span>Upload</span>
        <input type="file" class="upload" />
    </div>

      第2步:CSS: 有点棘手了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    .fileUpload {
        position: relative;
        overflow: hidden;
        margin: 10px;
    }
     
    .fileUpload input.upload {  position: absolute;
        top: 0;
        right: 0;
        margin: 0;
        padding: 0;
        font-size: 20px;
        cursor: pointer;
        opacity: 0;
        filter: alpha(opacity=0);
    }

      为简单起见,我使用应用了BootstrapCSS样式的按钮  (div.file-upload)。 

      演示: 

      上传按钮,显示选中的文件 

      不幸的是纯CSS的做不到这一点。但是,如果你真的想显示所选文件,下面的JavaScript代码片段可以帮助你。 

      JavaScript: 

    1
    2
    3
    document.getElementById("uploadBtn").onchange = function () {
        document.getElementById("uploadFile").value = this.value;
    };

      DOM:

    1
    2
    3
    4
    5
    <input id="uploadFile" placeholder="Choose File" disabled="disabled" />
    <div class="fileUpload btn btn-primary">
        <span>Upload</span>
        <input id="uploadBtn" type="file" class="upload" />
    </div>

      演示:

      原文地址: geniuscarrier.com

  • 相关阅读:
    windows系统上安装Redis,并且设置Redis密码
    utc时间转换成标准时间
    用Main方法调用freemarker生成文件
    socket.io对IE8的支持
    修改上一篇文章的node.js代码,支持默认页及支持中文
    修改上一篇文章的node.js代码,支持调用自定义页面
    用node.js写的代码
    isInstance和isAssignableFrom的用法
    RabbitMQ的安装使用
    使用commons-beanutils迭代获取javabean的属性
  • 原文地址:https://www.cnblogs.com/ranzige/p/4366356.html
Copyright © 2011-2022 走看看