dxy1236 2020-02-27 13:00 采纳率: 100%
浏览 207
已采纳

input file用CSS美化不涉及到JS怎么写代码。

让原有的input file样式消失以后,怎么美化
简单一点,谢谢各位大神

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-17 09:12
    关注

    参考GPT和自己的思路:

    要实现 input file 的 CSS 美化,可以使用伪元素和背景图片来模拟 input file 框和按钮。具体操作如下:

    1. 隐藏原有的 input file 样式
    input[type="file"] {
        display: none;
    }
    
    1. 使用伪元素 :before 或 :after 来为 input file 添加框和按钮,并设置背景图片
    input[type="file"] + .upload-btn:before {
        content: "选择文件";
        display: inline-block;
        padding: 5px 10px;
        border: 1px solid #ccc;
        border-radius: 3px;
        background-color: #fff;
        background-image: url(upload.png);
        background-repeat: no-repeat;
        background-position: center;
        cursor: pointer;
    }
    
    input[type="file"] + .upload-btn:after {
        content: "没有选择文件";
        display: inline-block;
        margin-left: 10px;
        padding: 5px 10px;
        border: 1px solid #ccc;
        border-radius: 3px;
        background-color: #fff;
        cursor: pointer;
    }
    
    1. 使用兄弟选择器来将伪元素和 input file 关联起来,使得点击伪元素时触发 input file 的点击事件
    input[type="file"] + .upload-btn:before,
    input[type="file"] + .upload-btn:after {
        vertical-align: middle;
    }
    
    input[type="file"]:focus + .upload-btn:before,
    input[type="file"]:focus + .upload-btn:after {
        outline: none;
        border-color: #4d90fe;
    }
    
    input[type="file"]:focus + .upload-btn:before {
        border-color: #4d90fe;
    }
    
    input[type="file"] + .upload-btn input[type="file"] {
        display: none;
    }
    
    input[type="file"] + .upload-btn:before {
        content: "上传文件";
    }
    
    input[type="file"] + .upload-btn:after {
        content: "未选择文件";
    }
    
    input[type="file"] + .upload-btn input[type="file"]:hover,
    input[type="file"] + .upload-btn input[type="file"]:focus {
        cursor: pointer;
    }
    

    最终的 HTML 代码如下:

    <div class="upload-btn">
        <input type="file" name="file" id="file" />
    </div>
    

    其中 upload.png 是自定义的图片,可以替换成自己的图片。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 3月29日

悬赏问题

  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关
  • ¥15 关于浏览器控制台js报错问题-swiper.js相关
  • ¥15 opencv.js内存,CPU飙升
  • ¥15 植物重测序snp数据Treemix分析出现问题!
  • ¥15 怎么让当前页面只能有一人在编辑
  • ¥15 python程序长时间运行卡死,付费求解决方案
  • ¥20 VM打开不了ubuntu虚拟机,如何解决?
  • ¥15 java请求一个返回流式数据的接口,如何将流式数据直接返回前端