hacer ejemplos div container como css html overlap

css - ejemplos - div html5



Cosas para principiantes: ¿Cómo evitar que las Divs de CSS se superpongan? (5)

La primera pregunta fue que comencé a trabajar en CSS hace aproximadamente un mes debido a un trabajo que obtuve, pero parece que encontré algunos problemas que no puedo solucionar (principalmente debido a mi inexperiencia y que es el CSS de otra persona)

No andaré mucho por ahí y explicaré el problema antes de mostrar el código. Hay un conjunto de Div en una configuración similar a una forma, pero cuando el texto está demasiado lleno invade la próxima Div, corrigiéndolo a través de CSS y no HTML, ¿hay alguna solución al respecto? Desde el mismo problema que puedo imaginar, es algo tan fácil que es una tontería, pero bueno, sí.

Edit: Me olvidé de mencionar esa parte, no quiero que se oculten, quiero que cada div permita automáticamente que la "anterior" termine su concentración sin superposición (se intentó con desbordamiento: automático, pero les dio scrollbars, a todas las formas en todo el sitio.

Aquí hay una foto de cómo se ve en este momento, estoy seguro de que verá el problema de inmediato.

http://imgur.com/aj8pDaO

Aquí está el HTML relevante

<html> <head> <link href="hue.css" rel="stylesheet"> </head> <body> <div class="content"> <div class="column"> <div class="form"> <div class="form-nivel"> <label for="cfdiCreate:organizationRfc">RFC</label><label id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label> </div> <div class="form-nivel"> <label for="cfdiCreate:organizationTaxSystem">Regimen fiscal</label><label id="cfdiCreate:organizationTaxSystem">Sueldos y salarios</label> </div> <div class="form-nivel"> <label for="cfdiCreate:organizationTaxAddress">Domicilio fiscal</label><label id="cfdiCreate:organizationTaxAddress">XXXXXX Colonia Tecnológico Monterrey,Nuevo León,México.C.P.XXXXXX</label> </div> <div class="form-nivel"> <label for="cfdiCreate:organizationExpeditionPlace">Lugar de expedición</label><label id="cfdiCreate:organizationExpeditionPlace">Suc.1 Chiapas,México. </label> </div> </div> </div> <div class="column secondary"> <!--?xml version="1.0" encoding="UTF-8"?--> </div> </body> </html>

Y aquí está el CSS.

body { font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; text-align: center; } p { text-align: left; } .content { display: block; width: 100%; height: auto; margin-bottom: 10px; float: left; background: #; text-align: left; } .content label, .content p { font-size: 16px; color: #024DA1; padding-left: 2%; } .column { display: block; float: left; width: 48%; margin-top: 15px; height: auto; background:; } .secondary { margin-left: 10px; } .clearfix { clear: both; margin-bottom: 10px; } .form { display: block; width: 96%; height: auto; background:; } .form-nivel { display: block; width: 100%; width: 470px; min-height: 20px; margin-bottom: 20px; position: relative; } .form-nivel label { width: 160px; float: left; height: 20px; line-height: 20px; margin-right: 10px; text-align: right; }


¿Por qué no simplemente mantener sus <label/> s en línea? Eliminando todas las declaraciones innecesarias ...

.form-nivel label { margin-right: 10px; line-height: 20px; }


Aquí. Estás aplicando una regla CSS a todas las etiquetas. La superposición ocurre debido a esta regla.

float: left;

Para solucionar este problema, elimine la regla de etiqueta .form-nivel y añádalas.

.form-nivel label:nth-child(1) { width: 160px; float: left; height: 20px; line-height: 20px; margin-right: 10px; text-align: right; } .form-nivel label:nth-child(2) { width: 160px; height: 20px; line-height: 20px; margin-right: 10px; text-align: right; }


Intenta agregar:

<div class="clearfix"></div>

entre cada fila.

<div class="form-nivel"> <label for="cfdiCreate:organizationRfc">RFC</label> <label id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label> </div> <div class="clearfix"></div> <div class="form-nivel"> <label for="cfdiCreate:organizationTaxSystem">Regimen fiscal</label> <label id="cfdiCreate:organizationTaxSystem">Sueldos y salarios</label> </div>


La lógica CSS para las etiquetas de la izquierda y las etiquetas de la derecha son las mismas.

Lo primero que debes hacer es separarlos.

<div class="form-nivel"> <label class="leftLabel" for="cfdiCreate:organizationRfc">RFC</label> <label class="rightLabel" id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label> </div>

  • Note la clase agregada

Entonces en tu css harías algo como esto:

.form-nivel label.leftLabel { width: 160px; float: left; height: 20px; line-height: 20px; margin-right: 10px; text-align: right; } .form-nivel label.rightLabel { width: 400px; float: left; height: 20px; line-height: 20px; margin-right: 10px; text-align: left; }

Hice las etiquetas de la derecha más grandes y las alineé a la izquierda.

Además, debes añadir:

<meta charset="utf-8">

en la cabeza html. Esto es para poder mostrar los caracteres con acentos.


puede usar desbordamiento: oculto para ocultar el contenido si se desborda en el siguiente