2015-06-12 17 views
21

Sto lavorando con un tema reattivo. E sto affrontando il problema del modulo di input qui. Nella vista desktop, l'input non avrà segnaposto ma etichetta.nascondi segnaposto con css

Tuttavia, quando si tratta della visualizzazione mobile, nasconderò questa etichetta di input e cambierò questa etichetta con il segnaposto.

<input name="name" type="text" placehoder="insert your name"> 

La mia vera domanda è così semplice qui. Come nascondere questo segnaposto con css?

Grazie in anticipo!

+0

perché CSS non è in grado di manipolare l'attributo di un tag HTML. I CSS possono fornire lo stile. puoi usare JavaScript/Jquery –

+0

se usi css, non c'è modo di fare questo –

+0

ma puoi provare una cosa .. imposta il colore del segnaposto come colore di sfondo in modo che sembri che non hai segnaposto .. –

risposta

3

È possibile utilizzare le media query e nascondere e spettacolo basato sulla risoluzione richiesta:

/* Smartphones (portrait and landscape) ----------- */ 
@media only screen 
and (min-device-width : 320px) 
and (max-device-width : 480px) { 
     ::-webkit-input-placeholder { 
     color: lightgray !important; 
     } 
     :-moz-placeholder { /* Firefox 18- */ 
     color: lightgray !important; 
     } 

     ::-moz-placeholder { /* Firefox 19+ */ 
     color: lightgray !important; 
     } 

     :-ms-input-placeholder { 
     color: lightgray !important; 
     } 
     #labelID 
     { 
     display:none !important; 
     } 
} 

stili normali

::-webkit-input-placeholder { 
     color: transparent; 
} 
:-moz-placeholder { /* Firefox 18- */ 
     color: transparent; 
} 

::-moz-placeholder { /* Firefox 19+ */ 
     color: transparent; 
} 

:-ms-input-placeholder { 
     color: transparent; 
} 

#labelID{ 
     display:block; 
} 
22

In questo modo nascondere il segnaposto solo per i desktop (e grandi compresse):

@media (min-width:1025px) and (min-width:1281px) { 
 

 
    ::-webkit-input-placeholder { /* WebKit browsers */ 
 
     color: transparent; 
 
    } 
 
    :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ 
 
     color: transparent; 
 
    } 
 
    ::-moz-placeholder { /* Mozilla Firefox 19+ */ 
 
     color: transparent; 
 
    } 
 
    :-ms-input-placeholder { /* Internet Explorer 10+ */ 
 
     color: transparent; 
 
    } 
 

 
    textarea::-webkit-input-placeholder { /* WebKit browsers */ 
 
     color: transparent; 
 
    } 
 
    textarea:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ 
 
     color: transparent; 
 
    } 
 
    textarea::-moz-placeholder { /* Mozilla Firefox 19+ */ 
 
     color: transparent; 
 
    } 
 
    textarea:-ms-input-placeholder { /* Internet Explorer 10+ */ 
 
     color: transparent; 
 
    } 
 

 
}
This input has no placeholder on Desktops&nbsp;<input name="name" type="text" placeholder="insert your name">

+0

come fare questo con la textarea ,! – iyal

+0

Modificato la mia risposta per includere textarea. Provalo e fammi sapere. –

+0

Questo non funziona sia con Firefox 52 che con IE 11 ... – Andrew

2
<input name="name" type="text" id="id_here" placeholder="Your Label"> 

Effettuare la pelle segnaposto nella visualizzazione desktop

input::-moz-placeholder { 
    opacity: 0; 
} 

O

input::-moz-placeholder { 
    color:white; 
} 
  1. Modificare i dati (o qualunque cosa textarea) per #id_here o il nome della classe, se non desidera modificare tutti gli input nel sito web
  2. Usa per diversi browser

    -webkit-input-segnaposto -ms-input-segnaposto -moz-segnaposto

15

CSS fornisce solo lo stile, ma non è possibile rimuovere il segnaposto vero e proprio.

Cosa si può fare, impostare il colore del testo segnaposto come il colore del testo di sfondo, in modo che sarà simile non avete segnaposto ..

::-webkit-input-placeholder { /* WebKit browsers */ 
    color: #fff; 
} 
:-moz-placeholder { /* Mozilla Firefox 4 to 18 */ 
    color: #fff; 
    opacity: 1; 
} 
::-moz-placeholder { /* Mozilla Firefox 19+ */ 
    color: #fff; 
    opacity: 1; 
} 
:-ms-input-placeholder { /* Internet Explorer 10+ */ 
    color: #fff; 
} 

check the fiddle

+2

Potresti chiarire cosa intendi nella prima frase, per favore? Non capisco bene la dichiarazione. – Henders

+1

@Henders ..;) hahah era solo un errore di battitura, volevo dire che css fornisce solo lo styling –

+0

Se il tuo browser supporta lo styling del segnaposto, supporta anche 'rgba (255,255,255,0)'. La tua soluzione funziona solo per gli input bianchi. – Martijn

2

fare sia l'ingresso campo e testo segnaposto dello stesso colore. Non c'è altro modo con i CSS.

@media all and (max-width:736px){ 
    ::-webkit-input-placeholder { 
    color:white; 
    } 

    :-moz-placeholder { /* Firefox 18- */ 
    color:white; 
    } 

    ::-moz-placeholder { /* Firefox 19+ */ 
    color:white; 
    } 

    :-ms-input-placeholder { 
    color:white; 
    } 
    } 
2

Si dovrebbe usare JS

$(window).resize(function(){ 
    if ($(window).width() >= 600){ 
     $(':input').removeAttr('placeholder'); 
    } 
}); 
+0

'removeAttr' non si nasconde, quando l'utente ripristina l'immagine alle dimensioni originali il testo all'interno del campo di inserimento non sarà lì –

Problemi correlati