Foros del Web » Creando para Internet » CSS »

Consejo sobre la siguiente estructura css

Estas en el tema de Consejo sobre la siguiente estructura css en el foro de CSS en Foros del Web. Buenas, Estoy haciendo el apartado de privacidad de la web y quiero poner como dos columnas en la izquierda el titulo y a la derecha ...
  #1 (permalink)  
Antiguo 23/01/2011, 12:09
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Consejo sobre la siguiente estructura css

Buenas,

Estoy haciendo el apartado de privacidad de la web y quiero poner como dos columnas en la izquierda el titulo y a la derecha un desplegable donde escoger el tipo de privacidad. Lo he conseguido de la siguiente manera... pero me preguntaba si se podría mejorar... y si semanticamente es correcto hacerlo así.


Código HTML:
Ver original
  1. <form action="#" method="post" id="privacidad" onsubmit="enviar.disabled=true">  
  2.     <fieldset>
  3.         <p>Eres el dueño de tu privacidad, decide quién con quién quieres compartir la siguiente información.</p>      
  4.         <div class="form_privacidad_izq">                  
  5.             <label class="priva" for="apellidos">Apellidos: </label>
  6.         </div>
  7.         <div class="form_privacidad_der">
  8.             <select name="apellidos" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  9.         </div>
  10.         <div class="form_privacidad_izq">                  
  11.             <label class="priva" for="nombre">Nombre: </label>
  12.         </div>     
  13.         <div class="form_privacidad_der">
  14.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  15.         </div>     
  16.         <div class="form_privacidad_izq">                  
  17.             <label class="priva" for="nombre">Correo electrónico: </label>
  18.         </div>     
  19.         <div class="form_privacidad_der">
  20.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  21.         </div>     
  22.         <div class="form_privacidad_izq">                  
  23.             <label class="priva" for="nombre">Fecha Nacimiento: </label>
  24.         </div>     
  25.         <div class="form_privacidad_der">
  26.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  27.         </div>     
  28.         <div class="form_privacidad_izq">                  
  29.             <label class="priva" for="nombre">Pais: </label>
  30.         </div>     
  31.         <div class="form_privacidad_der">
  32.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  33.         </div>     
  34.         <div class="form_privacidad_izq">                  
  35.             <label class="priva" for="nombre">Población: </label>
  36.         </div>     
  37.         <div class="form_privacidad_der">
  38.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  39.         </div>     
  40.         <div class="form_privacidad_izq">                  
  41.             <label class="priva" for="nombre">Redes sociales y mensajeria: </label>
  42.         </div>     
  43.         <div class="form_privacidad_der">
  44.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  45.         </div>
  46.     </fieldset>
  47.     <fieldset> 
  48.         <div class="form_privacidad_izq">                  
  49.             <label class="priva" for="nombre">Recibir mensajes privados: </label>
  50.         </div>     
  51.         <div class="form_privacidad_der">
  52.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  53.         </div>             
  54.         <div class="form_privacidad_izq">                  
  55.             <label class="priva" for="nombre">Recibir retos y desafios: </label>
  56.         </div>     
  57.         <div class="form_privacidad_der">
  58.             <select name="nombre" tabindex="4"><option value="1">Todo el mundo</option><option value="2">Usuarios registrados</option><option value="3">Mis amigos</option><option value="4">Nadie</option></select>
  59.         </div>     
  60.     </fieldset>
  61.     <div><button class="create" name="enviar" type="submit" id="forgot_password">Guardar cambios</button></div>
  62.     </form>

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 23/01/2011, 13:44
Avatar de sanxuan  
Fecha de Ingreso: enero-2011
Ubicación: Gijón
Mensajes: 671
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Consejo sobre la siguiente estructura css

Supongo que tienes razones para utilizar esas tres clases y todos esos div.
Creo que yo hubiese prescindido de crear una clase "priva" y habría añadido sus propiedades en "form_privacidad_izq". En todo caso hubiese usado el selector "#privacidad label" ya que no hay etiquetas <label> que no pertenezcan a esa clase. De esa manera no tendrías que especificar la clase en cada etiqueta <label>.
Puedes prescindir también de la clase "form_privacidad_der" usando el selector "#privacidad .form_privacidad_izq + div" ya que todos los elementos que poseen esa clase van precedidos de un elemento de clase "form_privacidad_izq".
Incluyo "#privacidad" en los selectores porque puedes estar usando esos nombres de clase en otros lugares del documento para otros fines. Si no es así, puedes eliminar esa parte del selector.
No es que esto vaya a funcionar mejor ni que lo estés haciendo mal, el código HTML resultante será más limpio.
Otra persona lo hará seguramente de otra forma.
Se podría incluso incluir los <div class="form_privacidad_der"> dentro de los <div class="form_privacidad_izq">, de esta forma te ahorras el declarar también la clase "form_privacidad_izq".
De esa manera me quedarían los siguientes selectores:
#privacidad label{} /* si fuese necesario */
#privacidad div {} /* se corresponde con form_privacidad_izq */
#privacidad div div {} /* se corresponde con form_privacidad_der */
y ni un solo atributo class en ninguna de las etiquetas del formulario. Sólo el id de <form>
  #3 (permalink)  
Antiguo 24/01/2011, 01:18
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Consejo sobre la siguiente estructura css

Cita:
Iniciado por sanxuan Ver Mensaje
Supongo que tienes razones para utilizar esas tres clases y todos esos div.
Creo que yo hubiese prescindido de crear una clase "priva" y habría añadido sus propiedades en "form_privacidad_izq". En todo caso hubiese usado el selector "#privacidad label" ya que no hay etiquetas <label> que no pertenezcan a esa clase. De esa manera no tendrías que especificar la clase en cada etiqueta <label>.
Puedes prescindir también de la clase "form_privacidad_der" usando el selector "#privacidad .form_privacidad_izq + div" ya que todos los elementos que poseen esa clase van precedidos de un elemento de clase "form_privacidad_izq".
Incluyo "#privacidad" en los selectores porque puedes estar usando esos nombres de clase en otros lugares del documento para otros fines. Si no es así, puedes eliminar esa parte del selector.
No es que esto vaya a funcionar mejor ni que lo estés haciendo mal, el código HTML resultante será más limpio.
Otra persona lo hará seguramente de otra forma.
Se podría incluso incluir los <div class="form_privacidad_der"> dentro de los <div class="form_privacidad_izq">, de esta forma te ahorras el declarar también la clase "form_privacidad_izq".
De esa manera me quedarían los siguientes selectores:
#privacidad label{} /* si fuese necesario */
#privacidad div {} /* se corresponde con form_privacidad_izq */
#privacidad div div {} /* se corresponde con form_privacidad_der */
y ni un solo atributo class en ninguna de las etiquetas del formulario. Sólo el id de <form>
Una pregunta.

Tener repetida una clase como en este caso .priva 10 veces, es más lento que declarar la clase tal y como mencionas por ejemplo así, y no tenerla que usar 10 veces, sino que con la declaración css es suficiente:

#privacidad label{}

Eso se nota en velocidad al cargar la página o es simplemente algo semántico?

Alguien seria tan amable de confirmarme este punto por favor?

Muchas gracias de antemano!
  #4 (permalink)  
Antiguo 24/01/2011, 08:05
Avatar de sanxuan  
Fecha de Ingreso: enero-2011
Ubicación: Gijón
Mensajes: 671
Antigüedad: 13 años, 10 meses
Puntos: 36
Respuesta: Consejo sobre la siguiente estructura css

Es aún más rápido prescindir de clases innecesarias. No te he podido simplificar el código aún más por que no has incluido el CSS en tu pregunta.
Sabiendo para qué va a ser y teniendo la posibilidad de examinarlo, es bastante posible que se hubiese podido eliminar no sólo alguna de las propiedades CSS sino también algo del HTML.
En una hoja de estilos normal, la penalización entre un selector u otro no es tan grande.
El tiempo que tarda en mostrarse la página no va a cambiar tan drásticamente en comparación a otros factores como la cantidad de enlaces, el tamaño de imágenes, el código javascript que se tenga que ejecutar al abrir la página, etc...
Otra cosa distinta sería si utilizases muchos :hover, accedieses mediante Javascript al estilo de algunos elementos etc...
En este otro caso sí que el usar un selector CSS u otro penaliza el comportamiento de la página. No vamos a acceder al CSS una sola vez al inicio, sino que vamos a hacerlo cada vez que pasemos por encima de algo o cuando cambiemos los estilos con nuestro script por la razón que sea.
En general va a ser más rápido usar un id y después un class, pero será aun más rápido tener un código que no incluya etiquetas y clases innecesarias. El tiempo de descarga del fichero puede ser menor y el tiempo de proceso para mostrar la página lo será también.
Quiero dejar claro de nuevo que en una página con el código que tienes y poco más, las diferencias no serán muy grandes. El problema es cuando tenemos páginas muy grandes y/o muy complicadas.
Y de nuevo quiero dejar claro que el código que mostraste ni es incorrecto ni es peor que el que yo te pueda sugerir. Aunque hablemos el mismo idioma, cada uno escoge su vocabulario y sus expresiones favoritas.
  #5 (permalink)  
Antiguo 24/01/2011, 08:45
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Consejo sobre la siguiente estructura css

Cita:
Iniciado por sanxuan Ver Mensaje
Es aún más rápido prescindir de clases innecesarias. No te he podido simplificar el código aún más por que no has incluido el CSS en tu pregunta.
Sabiendo para qué va a ser y teniendo la posibilidad de examinarlo, es bastante posible que se hubiese podido eliminar no sólo alguna de las propiedades CSS sino también algo del HTML.
En una hoja de estilos normal, la penalización entre un selector u otro no es tan grande.
El tiempo que tarda en mostrarse la página no va a cambiar tan drásticamente en comparación a otros factores como la cantidad de enlaces, el tamaño de imágenes, el código javascript que se tenga que ejecutar al abrir la página, etc...
Otra cosa distinta sería si utilizases muchos :hover, accedieses mediante Javascript al estilo de algunos elementos etc...
En este otro caso sí que el usar un selector CSS u otro penaliza el comportamiento de la página. No vamos a acceder al CSS una sola vez al inicio, sino que vamos a hacerlo cada vez que pasemos por encima de algo o cuando cambiemos los estilos con nuestro script por la razón que sea.
En general va a ser más rápido usar un id y después un class, pero será aun más rápido tener un código que no incluya etiquetas y clases innecesarias. El tiempo de descarga del fichero puede ser menor y el tiempo de proceso para mostrar la página lo será también.
Quiero dejar claro de nuevo que en una página con el código que tienes y poco más, las diferencias no serán muy grandes. El problema es cuando tenemos páginas muy grandes y/o muy complicadas.
Y de nuevo quiero dejar claro que el código que mostraste ni es incorrecto ni es peor que el que yo te pueda sugerir. Aunque hablemos el mismo idioma, cada uno escoge su vocabulario y sus expresiones favoritas.
Muchas gracias por tus consejos.

Etiquetas: consejo, estructura, siguiente
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 21:38.