Width: 50% + margin en PX, comment faire ?

Utilisateur anonyme -  
inspiring Messages postés 1813 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai deux div en float:left qui représentent 50% de leur div parent (donc l'un à côté de l'autre). Le problème est que je ne parvient pas à insérer une margin (en l'occurrence de 5px ici) entre les deux afin qu'ils soient espacés mais toujours sur la même ligne (en gros que le margin soit compris dans le %).

J'ai arpenté le net pour trouver une soliton mais il semblerait que je n'ai pas les bons mots pour décrire mon problème.

J'attend vos réponses avec impatience ;)

8 réponses

tryan44 Messages postés 1288 Date d'inscription   Statut Membre Dernière intervention   220
 
La bordure qu'il a insérer est sans doute pour repérer visuellement les 2 "li".

Ceci dit, 50 %*2=100% ...si vous voulez une marge de 5px; tout en gardant les 2 "li" sur la même ligne, il faut bien jouer sur les dimensions des "li"..non?
1
inspiring Messages postés 1813 Date d'inscription   Statut Membre Dernière intervention   265
 
mettre les 2 li à 49% (puisqu'elles utilise la meme regle) et le margin à 2%.

Comme le signale @tryan44, si les 2 li sont à 50%, il n'y a plus d'espace de manoeuve ...
0
Utilisateur anonyme
 
bonjour on peu voir le code?
0
Utilisateur anonyme
 
Bien sûr !

<ul>
<li>
Premier élément
</li>

<li>
Second élément
</li>
</ul>


CSS:

ul {
position: relative;
overflow: auto;
margin: 0;
padding: 0;
color: #531AFF;
list-style: none;
}

li {
float: left;
margin: 5px;
width: 50%;
}

Là forcément mon deuxième élément est mis à la ligne puisque mes deux li font 50% + 10px ; hors je voudrais que les deux éléments soient sur la même ligne. forcément les margin seraient prises en compte par pour être comprises dans le %.

Merci
0
Utilisateur anonyme
 
<!DOCTYPE  html>
<html>
	<head>
		<title>essai</title>
		<meta charset="UTF-8" />
		<style type="text/css">
			ul {

				overflow: auto;
				color: #531AFF;
				list-style: none;
			}

			li {
				width: 48%;
				margin: 5px;
				border: 1px solid black;
				display: inline-block;
			}
		</style>
	</head>
	<body>
		<ul>
			<li>
				Premier élément
			</li>

			<li>
				Second élément
			</li>
		</ul>
	</body>
</html>

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Je ne souhaite pas changer la valeur des li, elle doit rester à 50%. De plus à quoi sert le border ici ?

Tout le problème est là; il faut que les margin soient comprises DANS le calcul du PC pour faire en sorte qu'elle comptent dans les 50%.

Je sais pas si vous comprenez bien ? :/
0
Utilisateur anonyme
 
bonjour si vous voulez que vos li soit cote a cote il faut utiliser
display: inline-block;

Pour ce qui est des margin je vois exactement se que vous voulez dire mais je vous comprend pas.50% + 50% = 100% et si vous voulez qu 'il soit comprit dedans c est impossible enfin je pense....il faut réduire les width il n y a pas le choix et les border c'était juste pour voir les bordure
0
Utilisateur anonyme
 
Bonsoir,

En fait je voudrais espacer mes deux éléments de 5px mais qu'ensuite ils aient la largeur de 50% chacun. Donc admettons, mon div parent fait 900px de large, je fais en sorte que les deux li aient une margin à gauche et à droite de 5px (2*2,5px au milieu) ce qui donne :

un espace de 5px
un li de 50%
un espace de 5px
un li de 50%
un espace de 5px

la valeur 50% = 442,5 (mais moi je dois rentrer la valeur 50% et non 442,5 puisque je suis en train de faire le site en responsive et je travaille en %).
0
inspiring Messages postés 1813 Date d'inscription   Statut Membre Dernière intervention   265
 
mathématiquement, sur une base de 900px, l'écart de 5px correspont à une valeur 0.55%
en css, pas possible

En résumé vous voulez 2 li de meme largeur avec un écart gauche/centre/droite équivalent à 5px

Vous avez déjà votre largeur de conteneur

Faite les calculs, adaptez vos dimensions pour arriver au résultat voulu, c'est ça aussi le CSS
Et arretez de vous buter sur cette valeur de 50%, on vous là dit plusieurs fois :
2 élément avec un width de 50% dans le meme conteneur = PAS de marge

aussi : site en responsive et je travaille en % et mon div parent fait 900px de large sont contradictoires
0