Première question, 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é des problèmes que je ne peux pas résoudre (principalement en raison de mon inexpérience et du fait que c'est le CSS de quelqu'un d'autre)
Je ne vais pas autant tourner autour du pot et expliquer le problème avant d'afficher le code. Il y a un ensemble de Div dans un paramètre de type formulaire, mais lorsque le texte est trop encombré, il envahit le prochain Div, donc le corriger via CSS et non HTML, une solution à ce problème? Du problème même, je peux imaginer que c'est quelque chose de si facile que c'est idiot, mais bon, oui.
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 finir c'est concent sans se chevaucher (Essayé avec débordement: Auto mais ça leur a donné barres de défilement, à tous les formulaires de l'ensemble du site.
Voici une image de ce à quoi il ressemble en ce moment, je suis sûr que vous verrez le problème tout de suite
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;
}
Ici. Vous appliquez une règle CSS à toutes les étiquettes. Le chevauchement se produit en raison de cette règle.
float: left;
Pour résoudre ce problème, supprimez la règle d'étiquette .form-nivel et ajoutez-les.
.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;
}
vous pouvez utiliser le débordement: caché pour masquer le contenu s'il déborde dans le suivant
La logique CSS pour les étiquettes de gauche et les étiquettes de droite est la même.
La première chose à faire est de les différencier.
<div class="form-nivel">
<label class="leftLabel" for="cfdiCreate:organizationRfc">RFC</label>
<label class="rightLabel" id="cfdiCreate:organizationRfc">XXXXXXXXXXXX</label>
</div>
Ensuite, 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 les ai alignées à gauche.
Vous devez également ajouter:
<meta charset="utf-8">
sur la tête html. C'est pour pouvoir afficher des caractères avec des accents.
Essayez d'ajouter:
<div class="clearfix"></div>
entre chaque rangée.
<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>
Pourquoi ne pas simplement garder votre <label/>
s en ligne? Suppression de toutes les déclarations inutiles ...
.form-nivel label {
margin-right: 10px;
line-height: 20px;
}