Foros del Web » Creando para Internet » CSS »

¿Cómo modificar el estilo de un recuadro de búsqueda?

Estas en el tema de ¿Cómo modificar el estilo de un recuadro de búsqueda? en el foro de CSS en Foros del Web. Hola, quisiera modificar el color de fondo de un recuadro de búsqueda como el que sale en esta página arriba a la derecha: https://developer.mozilla.org/en/CSS/text-rendering ...creo ...
  #1 (permalink)  
Antiguo 30/01/2011, 06:57
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 6 años, 10 meses
Puntos: 0
¿Cómo modificar el estilo de un recuadro de búsqueda?

Hola, quisiera modificar el color de fondo de un recuadro de búsqueda como el que sale en esta página arriba a la derecha:

https://developer.mozilla.org/en/CSS/text-rendering

...creo que se hace con CSS, pero no veo dónde se establecen los parámetros que lo modifican.

Agradezco cualquier ayuda que me puedan ofrecer para conseguirlo.

Gracias.
  #2 (permalink)  
Antiguo 30/01/2011, 08:49
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 9 años, 5 meses
Puntos: 1010
Respuesta: ¿Cómo modificar el estilo de un recuadro de búsqueda?

se usa tanto css como javascript

Cita:
la parte de css
en el estado inicial
un selector con las propiedades de background y border
cuando el ratón está encima
un selector: hover con la propiedad background
Cita:
la parte javascript
cuando tiene el foco (onfocus)
modificas el objeto con la propiedad backgroundColor de dom style
y eliminas el valor
cuando pierde el foco (onblur)
modificas el objeto con la propiedad backgroundColor de dom style
y restauras el valor inicial con la propiedad defaultValue
  #3 (permalink)  
Antiguo 30/01/2011, 09:26
Avatar de stingofung  
Fecha de Ingreso: enero-2011
Ubicación: Mcbo
Mensajes: 52
Antigüedad: 6 años, 10 meses
Puntos: 1
Respuesta: ¿Cómo modificar el estilo de un recuadro de búsqueda?

Saludos "craigchek",

Las técnicas usadas para crear esos efectos en las cajas de busquedas se logran usando CSS + JAVASCRIPT.

Entre los efectos usados tenemos:

* Auto-foco al cargar la página.
* Resaltado de la caja cuando recibe el foco.
* Mostrado / ocultado del texto por defecto.


Suponte que la estructura de tu documento HTML es la siguiente:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="es-ES">
  3.     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4.     <title>Mejorando las cajas de búsqueda</title>
  5.     <link rel="stylesheet" href="main.css" type="text/css" media="screen" />
  6. </head>
  7.     <div class="wrapper">
  8.         <div class="section">
  9.             <h1>Ejemplo con auto-foco al cargar la página + resaltado</h1>
  10.             <input id="search1" type="text" class="text" value="Buscar en la web..." />
  11.         </div>
  12.         <div class="section">
  13.             <h1>Ejemplo de resaltado + ocultado / mostrado texto por defecto</h1>
  14.             <input id="search2" type="text" class="text" value="Buscar en la web..." />
  15.         </div>
  16.     </div>
  17.     <script type="text/javascript" src="jquery.js"></script>
  18.     <script type="text/javascript" src="main.js"></script>
  19. </body>
  20. </html>

Entonces los pasos a seguir son los siguientes:

Paso 1: Añadir estilo con CSS

Utilizo lo que se conoce como CSS Reset, que no es más que una declaración inicial de todos (o casi todos) los atributos HTML al inicio del documento CSS que “tiende a cero o nulo”.

Código CSS:
Ver original
  1. @CHARSET "UTF-8";
  2.  
  3. /*  RESET */
  4. html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em,
  5. font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody,
  6.  tfoot, thead, tr, th, td {
  7. border:0pt none;
  8. font-family:inherit;
  9. font-size:100&#37;;
  10. font-style:inherit;
  11. font-weight:inherit;
  12. margin:0pt;
  13. padding:0pt;
  14. vertical-align:baseline;
  15. }
  16. body{
  17.     line-height: 1em;
  18.     font-size: 12px;
  19.     background: #262626 url(img/bg.png) repeat scroll 0 0;
  20.     font-family: Myriad Pro, Arial, Helvetica, sans-serif;
  21.     margin: 0pt;
  22.     cursor: default;
  23. }
  24. table{
  25.     border-collapse: separate;
  26.     border-spacing: 0pt;
  27. }
  28. strong{
  29.     font-weight: 700;
  30. }
  31. caption, th, td{
  32.     font-weight:normal;
  33.     text-align:left;
  34. }
  35. blockquote:before, blockquote:after, q:before, q:after{
  36.     content:"";
  37. }
  38. blockquote, q{
  39.     quotes:"" "";
  40. }
  41. pre{
  42.     font-family: Arial, Helvetica, sans-serif;
  43. }
  44. input{
  45.     border: 0;
  46.     margin: 0;
  47.     font-family: Arial, Helvetica, sans-serif;
  48. }
  49. textarea{
  50.     font-family: Arial, Helvetica, sans-serif;
  51.     color: #888888;
  52.     padding: 7px 3px 0 4px;
  53.     font-size: 11px;
  54. }
  55. select{
  56.     font-size: 11px;
  57.     color: #888888;
  58.     background: #fff;
  59.     font-family: Arial, Helvetica, sans-serif;
  60.     border: 1px solid #CAD2CE;
  61. }
  62. ul{
  63.     list-style: none;
  64.     list-style-type: none;
  65.     list-style-position: outside;
  66. }
  67. a{
  68.     cursor: pointer;
  69.     color: #296ba5;
  70.     text-decoration: none;
  71.     outline: none !Important;
  72. }
  73. html,body{
  74.     height:100%;
  75. }
  76. .clear{
  77.     clear: both;
  78.     height: 0;
  79.     visibility: hidden;
  80.     display: block;
  81.     line-height: 0;
  82. }
  83. .clearfix{
  84.     overflow: hidden;
  85. }
  86. .fleft{
  87.     float: left;
  88. }
  89. .fright{
  90.     float: right;
  91. }
  92. .italic{
  93.     font-style: italic;
  94. }
  95. /*  RESET */
  96.  
  97. /* CONTENT */
  98. .wrapper
  99. {
  100.     width: 800px;
  101.     margin: 0pt auto;
  102.     padding-top: 50px;
  103. }
  104. h1{
  105.     color: #fff;
  106.     font-size: 18px;
  107.     line-height: 3em;
  108. }
  109. .section{
  110.     margin-bottom: 25px;
  111. }
  112. input.text{
  113.     width: 90%;
  114.     background: #171717 url(img/search.png) no-repeat scroll right 2px;
  115.     padding: 13px;
  116.     color: #8c8c8c;
  117.     border: 1px solid #393939;
  118.     margin-bottom: 30px;
  119.     border-radius: 5px;
  120.     -moz-border-radius: 5px;
  121.     -webkit-border-radius: 5px;
  122.     -khtml-border-radius: 5px;
  123.     font-size: 16px;
  124. }
  125. input.text.active{
  126.     background: #343434 url(img/search.png) no-repeat scroll right -43px;
  127.     border-color: #000;
  128.     color: #fff;
  129. }

Paso 2: Añadir magia con jQuery

Todo el código que viene a continuación iría en un único documento javascript, en mi ejemplo se llama “main.js“.

a) Declaración de variables

Código Javascript:
Ver original
  1. //variables globales
  2. var searchBoxes = $(".text");
  3. var searchBox1 = $("#search1");
  4. var searchBox2 = $("#search2");
  5. var defaultText = "Search MDN";

b) Gestionando los eventos focus y blur

Código Javascript:
Ver original
  1. //efectos en el evento focus (foto) para ambas cajas de busqueda
  2. searchBoxes.focus(function(){
  3.     $(this).addClass("active");
  4. });
  5. searchBoxes.blur(function(){
  6.     $(this).removeClass("active");
  7. });

c) Activando el autofoco
Mediante la llamada de la función focus() haremos un autofoco en la primera de las cajas de búsqueda, simulando el mismo efecto que hace Google cuando entramos en su buscador.

Código Javascript:
Ver original
  1. //Activamos y auto activamos el foco en la primera caja de busqueda #search1, cuando el documento esta listo
  2. searchBox1.focus();

d) Mostrando / Ocultando el texto por defecto
Aqui lo que se hace es que si el usuario pincha en la caja de busqueda esta reciba el foco y se vaya el texto por defecto y que si salimos de la caja, vuelva a aparecer. Cabe destacar que esto sólo ocurrirá si el texto es el original, el texto por defecto, no para textos distintos introducidos por nosotros.

Código Javascript:
Ver original
  1. //Mostramos / ocultamos el texto por defecto si es necesario
  2. searchBox2.focus(function(){
  3.     if($(this).attr("value") == defaultText) $(this).attr("value", "");
  4. });
  5. searchBox2.blur(function(){
  6.     if($(this).attr("value") == "") $(this).attr("value", defaultText);
  7. });


Ya tienes todo listo para emular el efecto que viste en la página MDN, espero y te sea de ayuda.
  #4 (permalink)  
Antiguo 30/01/2011, 12:55
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 6 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo modificar el estilo de un recuadro de búsqueda?

Muchísimas gracias stingofung,
agradezco enormemente la molestia que te has tomado en responderme, pero sigo teniendo dudas y en las pruebas que he hecho siguiendo tu mini tutorial no me ha salido igual que lo esperado.

En el HTMl de ejemplo que me pones, haces referencia a 2 archivos javascript, el main.js y jquery.js, pero no mencionas luego nada de qué debe llevar el jquery.js.

Por otro lado, no sé muy bien cómo guardar los códigos javascript en el archivo main.js, ¿me lo podrías explicar un poco mejor?

Gracias de nuevo y disculpa mi ignorancia...

Un saludo.
  #5 (permalink)  
Antiguo 30/01/2011, 16:53
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 9 años, 5 meses
Puntos: 1010
Respuesta: ¿Cómo modificar el estilo de un recuadro de búsqueda?

Cita:
Iniciado por stingofung Ver Mensaje
Paso 2: Añadir magia con jQuery
realmente crees que para logras ese efecto, es necesario todo ese css y usar una librería??
Cita:
Iniciado por IsaBelM Ver Mensaje
se usa tanto css como javascript
  #6 (permalink)  
Antiguo 30/01/2011, 21:18
Avatar de stingofung  
Fecha de Ingreso: enero-2011
Ubicación: Mcbo
Mensajes: 52
Antigüedad: 6 años, 10 meses
Puntos: 1
Respuesta: ¿Cómo modificar el estilo de un recuadro de búsqueda?

Cita:
realmente crees que para logras ese efecto, es necesario todo ese css y usar una librería??
Pues no, yo solo lo haría con CSS + JAVASCRIPT vulgar y silvestre. Pero en el caso de mis proyectos simpre voy de la mano de JQUERY.

Cita:
En el HTMl de ejemplo que me pones, haces referencia a 2 archivos javascript, el main.js y jquery.js, pero no mencionas luego nada de qué debe llevar el jquery.js.

Por otro lado, no sé muy bien cómo guardar los códigos javascript en el archivo main.js, ¿me lo podrías explicar un poco mejor?
Cierto, disculpa por no mencionarte esa parte. La libreria jquery.js es un framework de Javascript y la puedes descargar en el siguiente enlace:

http://jquery.com/

Con respecto a como crear un archivo .js es sencillo. Lo que tienes que hacer es:

1) Abrir el block de notas.
2) Copias el código javascript que te indique en el minitutorial y lo pegas en el documento.
3) Guardas el documento con el nombre: main.js
4) Agregas el archivo creado en la raíz de tu proyecto y listo.

Prueba y me avisas, saludos.

Etiquetas: estilo, modificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:22.