2012-02-17 8 views
9

me gustaría saber si es posible con el estilo de un valor de un cuadro de entrada ... such como:¿es posible diseñar el valor de un texto de entrada?

<input class="textBox" type="text" rel="Inserisci il <span style=" value="Inserisci il <span style='color:#c83243;'>titolo</span> per l’URL personalizzato" name="ctl00$InsertDati1$txtTitolo">​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 

pero, duerma hacen que el elemento span. ¿Alguna sugerencia?

+0

quieres decir el texto dentro de la 'textBox' ?? –

+0

Apenas. Consulte la sección "Relacionados" aquí a la derecha para obtener docenas de preguntas similares y respuestas insatisfactorias. Pero dime, ¿realmente estás tratando de insertar un 'span' HTML en una' entrada'? Eso no funcionará –

+0

span fue solo un ejemplo! Lo que necesito es solo un texto personalizado en una entrada :) la roca de la solución Quentin, pero en IE7 tengo algunos problemas ... – markzzz

Respuesta

4

No, no es posible.

No intente abusar del atributo value para proporcionar un <label> para los controles de formulario. (Y no intente utilizar el atributo rel para nada que no sean las relaciones en los enlaces).

En su lugar, utilice un <label> real. Si realmente desea que aparezca dónde va el usuario que se va a escribir, a continuación:

  1. Wrap la entrada y la etiqueta en un recipiente (por ejemplo, un div)
  2. Establecer position: relative en él para que sea un bloque que contiene
  3. Absolutamente posicionar la entrada en la parte superior de la etiqueta
  4. hacer que el color de fondo de la entrada transparente
  5. Añadir cualquier otro estilo que se desea
+0

No funciona en IE7 ... DAAAAMNNN !!!! http://jsfiddle.net/y4dkF/3/ – markzzz

+0

Parece que el "fondo transparente" recibe el evento de "foco" ... – markzzz

+0

Pero solo si hago clic en el texto ... al hacer clic cerca del siguiente también funciona en IE7 ! ¿Por qué? – markzzz

2

Puede diseñar todo el contenido del cuadro de entrada, pero no puede aplicar estilos diferentes a diferentes partes de su contenido.

p. Ej. <input style="color:red" value="all text is red"/> es posible, pero <input value="<span style='color:red'>this text is red</span>, and <span style='color:red'>this text is red</span>"> no lo es.

Trate de mirar las cajas de varias líneas con la función contenteditable en su lugar.

-9

Pruebe con el paquete de arranque de Twitter - http://twitter.github.com/bootstrap - puede obtener fácilmente radio de esquina, sombras insertadas, efectos de desplazamiento y enfoque ... También puede descargar la versión "menos css", una herramienta realmente flexible, pero para los más experimentados usuarios :)

+2

Nada allí ayuda a los autores estilo * parte * de un valor. – Quentin

7

Puede personalizar el contenido dentro de un cuadro de entrada. Por ejemplo:

input{ 
    color:#ff0000; 
    font: 1em/1.25em Arial, Helvetica, sans-serif; 
} 

Si desea utilizar el contenido marcador de posición por el contrario, se puede añadir un 'marcador de posición' atributo en la etiqueta de entrada, así:

<input type="text" class="textbox" placeholder='Title' /> 

Tenga en cuenta que los marcadores de posición sólo funcionan en navegadores compatibles con HTML5 y el atributo marcador de posición. Si quieres compatibilidad con navegadores antiguos y no te importa usar JQuery, puedes usar un plugin JQuery como JQuery Watermark.

Sin embargo, no puede colocar elementos de tramo dentro del value de una etiqueta input.

+0

+1. Claramente el enfoque más limpio y más a prueba de futuro para esto. – CherryFlavourPez

0

Una cosa que puede hacer es darle forma al texto con el selector de entrada y luego darle un estilo diferente: enfoque. Entonces, el texto del marcador de posición se verá diferente al texto que alguien escriba.

+2

Bienvenido a Stackoverflow. ¿Le importaría ampliar la respuesta un poco más para que los demás programadores comprendan cómo ayuda a resolver el problema? – Daenarys

6

Usando el atributo contentableable con div es muy bueno, creo. Ejemplo: https://jsfiddle.net/scjnwrnf/ <div contenteditable="true">This is a paragraph.<span style = "color:red"> It is editable. </span> Try to change this text.</div> Luego puede ocultar el elemento de entrada y poner el valor de texto sin formato de div en el valor de entrada a través de JavaScript. Gracias penartur.

Cuestiones relacionadas