CSS: modificare il layout di un elemento input di tipo file

CSS: modificare il layout di un elemento input di tipo file

L'input di tipo file è un elemento comune in molti form HTML, ma spesso il suo aspetto predefinito non si adatta bene al design del sito web. Tuttavia, esiste una soluzione semplice: modificare il layout dell'input utilizzando i CSS.

Il trucco è quello di nascondere l'aspetto predefinito dell'input e creare un nuovo elemento che lo sostituisca, ad esempio un pulsante. Per farlo, possiamo utilizzare il selettore label in combinazione con l'attributo for per associare l'input al pulsante e renderlo accessibile anche al click sul pulsante.

Di seguito un esempio di codice CSS:


  input[type="file"] {
    /* nascondi l'aspetto predefinito */
    width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute;
  }
  
  label {
    display: inline-block;
    background-color: #3498db; /* colore di sfondo del pulsante */
    color: #fff; /* colore del testo del pulsante */
    padding: 8px 12px;
    border-radius: 4px;
    cursor: pointer;
  }
  
  label:hover {
    background-color: #2980b9; /* colore di sfondo del pulsante al passaggio del mouse */
  }
  

Con questo codice, l'input di tipo file sarà invisibile e al suo posto verrà creato un pulsante con uno sfondo blu e il testo bianco. Il pulsante avrà anche un'animazione al passaggio del mouse.

Per far funzionare il tutto, basta aggiungere l'attributo for all'elemento label, con il valore uguale all'id dell'input di tipo file associato. Ad esempio:


  <label for="my-file-input">Scegli file</label>
  <input type="file" id="my-file-input" name="file">  

In questo modo, l'utente potrà cliccare sul pulsante e selezionare un file come farebbe normalmente con l'input di tipo file.

In conclusione, con poche righe di codice CSS è possibile modificare l'aspetto dell'input di tipo file e renderlo più coerente con il design del sito web, creando un pulsante personalizzato che lo sostituisce.

Torna su