Foros del Web » Creando para Internet » CSS »

Duda sobre etiqueta display en lista no ordenada

Estas en el tema de Duda sobre etiqueta display en lista no ordenada en el foro de CSS en Foros del Web. Saludos comunidad, Tengo una duda al respecto de el siguiente código, estoy creando una página y me topo con un problema, he buscado pero no ...
  #1 (permalink)  
Antiguo 13/06/2013, 00:30
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Pregunta Duda sobre etiqueta display en lista no ordenada

Saludos comunidad,

Tengo una duda al respecto de el siguiente código, estoy creando una página y me topo con un problema, he buscado pero no he podido aclararlo, espero que alguno de ustedes pueda ayudarme.

El siguiente código hace de barra de navegación:

Código HTML:
Ver original
  1. <ul>
  2. <li><a href="#">Acerca de</a></li>
  3. <li><a href="#">Historia</a></li>
  4. <li><a href="#">Contacto</a></li>
  5. <li><a href="#">Tienda</a></li>
  6. </ul>

Ahora esta lista no ordenada quiero que aparezca en horizontal, por lo que encontré se puede utilizar la etiqueta display con su valor inline, pero mi duda es:

¿A que etiqueta le añado tal propiedad? ¿a "<ul>" o "<li>"? he visto algunas páginas que se la agregan a las dos, yo probando y borrando se la agregue sólo a "<li>", de esta forma:

HTML

Código HTML:
Ver original
  1. <ul>
  2. <li class="inline"><a href="#">Acerca de</a></li>
  3. <li class="inline"><a href="#">Historia</a></li>
  4. <li class="inline"><a href="#">Contacto</a></li>
  5. <li class="inline"><a href="#">Tienda</a></li>
  6. </ul>

CSS

Código CSS:
Ver original
  1. li.inline{
  2.     display: inline;
  3. }

y funcionaba, no entiendo porque algunos le ponen el atributo a "<ul>" y a "<li>", esa es mi duda, ¿cómo estaría correcto? y ¿porque?
__________________
Álvaro Göede Rivera / Technical University in Electronic / Graphic Designer / Worship Leader
"no pondré delante de mis ojos cosa injusta" - Salmos 101

Última edición por alvaaz; 13/06/2013 a las 00:42
  #2 (permalink)  
Antiguo 13/06/2013, 01:30
 
Fecha de Ingreso: abril-2010
Mensajes: 122
Antigüedad: 14 años
Puntos: 18
Respuesta: Duda sobre etiqueta display en lista no ordenada

el "inline" poneselo solo al "li" sin usar clase, asi..

Cita:
<ul>
<li><a href="#">Acerca de</a></li>
<li><a href="#">Historia</a></li>
<li><a href="#">Contacto</a></li>
<li><a href="#">Tienda</a></li>
</ul>
Cita:
ul li {
display:inline-block;
float:left;
}
si te fijas, tambien le puse un float, pero es para corregirlo en el querido internet explorer q tanto adoramos jaja.. espero te sirva
  #3 (permalink)  
Antiguo 13/06/2013, 01:39
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Duda sobre etiqueta display en lista no ordenada

pero pusiste "ul li" ¿porque si sólo es necesario según tu en "li"?, ahora ¿porque es necesario un salto después de cada "li"? entiendo eso porque cambiaste inline por inline-block, saludos y gracias.
__________________
Álvaro Göede Rivera / Technical University in Electronic / Graphic Designer / Worship Leader
"no pondré delante de mis ojos cosa injusta" - Salmos 101
  #4 (permalink)  
Antiguo 13/06/2013, 01:46
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: Duda sobre etiqueta display en lista no ordenada

Hola, poner ul li no significa que ul también lo tenga aplicado es una forma de acceder a los elementos en css mediante padres, es decir, tu dices que todas los li dentro de ul tengan ese estilo.
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #5 (permalink)  
Antiguo 13/06/2013, 01:46
 
Fecha de Ingreso: abril-2010
Mensajes: 122
Antigüedad: 14 años
Puntos: 18
Respuesta: Duda sobre etiqueta display en lista no ordenada

pues el ul es el contenedor de los li, y lo q necesitas poner en linea son los li no el ul en si.. espero me captes lo q quiero dar a entender..
  #6 (permalink)  
Antiguo 13/06/2013, 01:50
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Duda sobre etiqueta display en lista no ordenada

Comprendo, ahora recién probe y le quite el "ul" dejando sólo el "li", de esta forma:

Código CSS:
Ver original
  1. li {
  2. display:inline-block;
  3. float:left;
  4. }

y me funcionó dejando la lista no ordenada de la forma deseada es decir sólo en una línea, no entiendo porque ponerle "ul" ¿cual es la diferencia?
__________________
Álvaro Göede Rivera / Technical University in Electronic / Graphic Designer / Worship Leader
"no pondré delante de mis ojos cosa injusta" - Salmos 101
  #7 (permalink)  
Antiguo 13/06/2013, 03:09
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Duda sobre etiqueta display en lista no ordenada

¿Cómo aconsejáis poner selectores de ese modo? Si se quiere estilizar un menú y no todos los elementos LI, no lo veo lógico. Tampoco veo lógico recomendar inline-block si se está preguntar por poner los elementos en línea. Y ya para rematar flotar elementos y ponerles un inline-block carece de sentido alguno.

alvaaz échale un ojo a selectores de CSS. Esto es lo primero.

Como seguramente vayas a tener más listas en tu web, lo más lógico es construir tu selector de esta forma:

Código HTML:
Ver original
  1. <ul id="menu">

Código CSS:
Ver original
  1. ul#menu li {
  2.   display: inline;
  3. }

Si necesitas por lo que sea usar inline-block, seguramente puedes usar antes la opción de mostrar los enlaces como elementos de bloque, que a mi parece más limpio y útil.

Código CSS:
Ver original
  1. ul#menu a {
  2.   display: block;
  3. }

Cita:
Iniciado por alvaaz Ver Mensaje
y me funcionó dejando la lista no ordenada de la forma deseada es decir sólo en una línea, no entiendo porque ponerle "ul" ¿cual es la diferencia?
Para volver tu selector más específico. En el caso de usar "ul li", es una idiotez, porque li siempre va a ser hijo de ul. No tiene mucho sentido. Si usas "ul li" o simplemente "li" se verán afectados todos los "li" de la página. Si usas "ul#menu li" sólo afectará a los li contenidos dentro de un elemento ul con el id "menu".

Última edición por pzin; 13/06/2013 a las 03:15
  #8 (permalink)  
Antiguo 13/06/2013, 09:11
 
Fecha de Ingreso: abril-2008
Mensajes: 63
Antigüedad: 16 años
Puntos: 1
Respuesta: Duda sobre etiqueta display en lista no ordenada

Por lo que tengo entendido utilizar id o class para estilizar una etiqueta no cambia, pero por lo que he leído en páginas recomiendan utilizar class para estilizar, ¿habrá alguna otra diferencia ya que tu lo ocupaste para la etiqueta ul id="menu".

Desde ya muchas gracias por tu ayuda.
__________________
Álvaro Göede Rivera / Technical University in Electronic / Graphic Designer / Worship Leader
"no pondré delante de mis ojos cosa injusta" - Salmos 101
  #9 (permalink)  
Antiguo 13/06/2013, 13:31
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Duda sobre etiqueta display en lista no ordenada

Si bueno, hay un debate sobre si es mejor usar solo clases, o mejor identificadores, y algún loco dice de sólo usar selectores CSS sin tener que usar clases ni identificadores, que poder, se puede.

El debate es más bien relativo a la velocidad de carga, y aún haciendo pruebas con dos mil selectores, la diferencia no se aprecia.

Yo opto por usar las cosas para lo que son; clases para estilos que se repiten e identificadores para elementos únicos. Lo único que intento es, dentro de lo lógico, usar pocas clases e identificadores.

Por ejemplo:

Código HTML:
Ver original
  1. <ul id="menu_principal">
  2.   <li class="contenedor">
  3.     <a class="enlace"></a>
  4.   </li>
  5. </ul>

No tiene mucho sentido, porque podemos perfectamente seleccionar los elementos de la lista con ul#menu_principal li, y los enlaces con ul#menu_principal a.

Etiquetas: display, html, inline
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 07:26.