Trucs de débutant: comment empêcher les Divs de CSS de se chevaucher?

première question jamais, j'ai commencé à travailler sur CSS Il y a environ un mois en raison d'un travail que j'ai obtenu, mais il semble que j'ai rencontré certains problèmes que je ne peux pas résoudre (principalement en raison de mon inexpérience et que c'est CSS de quelqu'un d'autre)

Je ne vais pas tourner autour du pot et expliquer le problème avant de montrer le code. Il y a un ensemble de Div dans un cadre de forme-comme, mais quand le texte devient trop bondé il envahit la prochaine Div donc, le fixer via CSS et non HTML, toute solution sur ce? De la très problème j'imagine que c'est quelque chose de si facile que c'est idiot, mais bon, ouais.

Edit: j'ai un peu oublié de mentionner cette partie, Je ne veux pas qu'ils soient cachés, je veux que chaque div permette automatiquement à la "précédente" de terminer sa concentr ation sans chevauchement (essayé avec overflow: Auto mais il leur a donné des barres de défilement, à tous les formulaires dans l'ensemble du site.

Voici une image de ce qu'il regarde en ce moment, je suis sûr que vous verrez le problème loin

http://imgur.com/aj8pDaO


voici le HTML pertinent

<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>

et voici le 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;
    }
16
demandé sur Ian Campbell 2013-07-08 23:43:47

5 réponses

Ici. Vous appliquez une règle CSS à toutes les étiquettes. Le chevauchement se produit à cause de cette règle.

float: left;

pour corriger cela, enlever le .forme de flèche de l'étiquette de la règle et l'ajouter.

.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;
}
9
répondu Stephn_R 2014-01-09 16:52:21

la logique CSS pour les étiquettes de gauche et de droite est la même.

la première chose à faire est de les distinguer.

<div class="form-nivel">
    <label class="leftLabel" for="cfdiCreate:organizationRfc">RFC</label>
    <label class="rightLabel" id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label>
</div>
  • notez la classe ajoutée

Puis sur votre css, vous feriez quelque chose comme ceci:

.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;
}

j'ai agrandi les étiquettes de droite et je les ai alignées à gauche.

vous devez aussi ajouter:

<meta charset="utf-8">

sur la tête html. Cela permet d'Afficher des caractères avec accent.

1
répondu Cobo 2014-01-09 16:53:11

vous pouvez utiliser overflow:hidden pour masquer le contenu s'il déborde sur le côté

0
répondu Keith 2013-07-08 19:46:55

Pourquoi ne pas simplement garder votre <label/>s inline? Supprimer toutes les déclarations inutiles...

.form-nivel label {
    margin-right: 10px;
    line-height: 20px;
}
0
répondu André Dion 2013-07-08 19:55:07

Essayez d'ajouter:

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

entre chaque ligne.

<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>
0
répondu Cobo 2013-07-08 20:08:02