How to customize file input type box using CSS and jQuery

  1801 views   2 years ago jQuery

Use the CSS Opacity and Positioning method

By default different web browser renders the HTML <input type="file"> differently, also if you try to style them with the CSS properties it doesn't work. But, you can use the CSS opacity and position property in combination with the jQuery change() method to create your own HTML custom file upload form control that is consistent across the browsers.

Let's take a look at the following example to understand how it basically works:

<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<title>Custom File Input Field with CSS and jQuery</title>
        display: inline-block;
        overflow: hidden;
        position: relative;
    .custom-file-input input[type="file"]{
        width: 100%;
        height: 100%;
        opacity: 0;
        filter: alpha(opacity=0);
        zoom: 1;  /* Fix for IE7 */
        position: absolute;
        top: 0;
        left: 0;
        z-index: 999;
<script src=""></script>
        $('.custom-file-input input[type="file"]').change(function(e){
        <div class="custom-file-input">
            <input type="file">
            <input type="text">
            <input type="button" value="Attach">


Author : Harsukh Makwana
Harsukh Makwana

Hi, My name is Harsukh Makwana. i have been work with many programming language like php, python, javascript, node, react, anguler, etc.. since last 5 year. if you have any issue or want me hire then contact me on [email protected]