que posicionar poner linea inicio etiqueta elementos div bloques bloque html css

html - posicionar - ¿Cómo puedo hacer que<li> con elementos de bloque se coloquen uno al lado del otro?



posicionar div html (8)

Tengo un diseño de maqueta para algo aquí . Básicamente, hay secciones, columnas y campos, que están escritos como una combinación de elementos <ul> y <li> . Esto se hace específicamente para un análisis posterior.

Un fragmento del HTML:

<li class="layout"><span class="type">[Column] </span> <ul class="layout-children"> <li class="field"><span class="type">[Text] </span>A field</li> <li class="field"><span class="type">[Text] </span>Another field</li> <li class="field"><span class="type">[Text] </span>Yet another field</li> </ul> </li> <li class="layout"><span class="type">[Column] </span> <ul class="layout-children"> <li class="field"><span class="type">[Text] </span>More fields</li> <li class="field"><span class="type">[Text] </span>And one more field</li> </ul> </li>

Si vas al contenido vinculado , notarás que esas columnas se sientan verticalmente. Quiero que las columnas estén una junto a la otra, pero no estoy seguro de cómo hacerlo.

Sería preferible que el HTML no cambiara, solo el CSS.


En su etiqueta <UL> use el atributo css "list-style: none;" y en la pantalla <li> use el atributo css "display: inline;" Tendrás que jugar con el relleno y el margen para que se vea bien, pero esos dos atributos te ayudarán a seguir tu camino. Para un mejor ejemplo, vea mi sitio web sin fines de lucro: Técnicamente aprendiendo


Qué tal esto:

.layout { float: left; width: 50%; margin: 0; border: 0; padding: 0; /* background: transparent */ } * html .layout { display: inline } /* IE margin hack */ .field { clear: both }


Solo una alternativa al uso de elementos en línea ya que IE ha tenido un historial de problemas de relleno con en línea:

.layout-children:after { content: ""; display: block; height: 0px; clear: both; } .layout-children .field { float: left; }


Usar inline-block inline o en inline-block no será más que un problema. Es una idea mucho mejor usar flotadores como ha sugerido @Dmitry Z (pero sin el hack de margen, que no es necesario).


sí, usando display:block sería imposible hacer que se sientan uno al lado del otro, a menos que intentes especificar un ancho para cada uno de ellos, pero si ese es el caso solo usa display:inline


Un flotador simple: a la izquierda funcionará (con un ajuste menor para el ancho)

li { margin: .5em 1em; padding: .1em; font-family: sans-serif; list-style-type: none; border: 1px #666 solid; float: left; } #layout-section { width: 85%; }


display: -moz-inline-box; display: inline-block; *display: inline; *zoom: 1;


Acabo de agregar esto a tu css:

ul .section-children li.layout { display : inline-block; }

Desafortunadamente, no sé qué tan bien soportado en línea es actualmente.