J'essaie d'obtenir ma règle horizontale pour ignorer le rembourrage parent.
Voici un exemple simple de ce que j'ai:
#parent {
padding:10px;
width:100px;
}
hr {
width:100px;
}
Vous constaterez que la règle horizontale s'étend hors du parent de 10 px. J'essaie de faire en sorte qu'il ignore le rembourrage dont tout le reste de la division parent a besoin.
Je suis conscient que je pourrais créer un div séparé pour tout le reste; ce n'est pas la solution que je recherche.
<hr>
serez à 20px de la fin de votre div. Voir ce jsFiddle pour ce que je veux dire: jsfiddle.net/YVrWy/1À des fins d'image, vous pouvez faire quelque chose comme ça
la source
En gros, cette question a été répondue mais en petites parties par tout le monde. J'en ai traité il y a à peine une minute.
Je voulais avoir un plateau de boutons au bas d'un panneau où le panneau a 30px tout autour. Le plateau à boutons devait être au même niveau que le fond et les côtés.
J'ai fait une démo ici avec plus de chair pour conduire l'idée. Cependant, les éléments clés ci-dessus sont décalés de tout remplissage parent avec des marges négatives correspondantes sur l'enfant. Ensuite, le plus critique si vous souhaitez exécuter l'enfant en pleine largeur, définissez la largeur sur auto. (comme mentionné dans un commentaire ci-dessus par schlingel ).
la source
Un peu tard, mais il faut juste un peu de calcul.
Je n'ai pas Windows donc je n'ai pas testé cela dans IE.
violon: exemple de violon.
la source
est mieux que
Le dernier aspire le contenu verticalement dedans.
la source
Votre parent mesure 120 px de large - soit 100 largeur + 20 rembourrage de chaque côté, vous devez donc faire une ligne de 120 px de large. Voici le code. La prochaine fois, notez que le remplissage s'ajoute à la largeur de l'élément.
la source
width: auto;
danshr
. jsfiddle.net/ToolmakerSteve/7p85dsrq/3 Malheureusement, cette solution nécessite toujours de connaître lapadding
configuration par le parent.Le problème peut venir du modèle de boîte que vous utilisez. Utilisez-vous IE?
Lorsque IE est en mode bizarreries,
width
correspond à la largeur extérieure de votre boîte, ce qui signifie que le rembourrage sera à l'intérieur. Donc, la surface totale laissée à l'intérieur de la boîte est100px - 2 * 10px = 80px
dans ce cas, votre largeur de 100 pixels<hr>
ne sera pas correcte.Si vous êtes en mode standard,
width
est la largeur intérieure de votre boîte, et un rembourrage est ajouté à l'extérieur. Ainsi, la largeur totale de la boîte100px + 2 * 10px = 120px
laisse exactement 100 pixels à l'intérieur de la boîte pour votre<hr>
.Pour le résoudre, ajustez vos valeurs CSS pour IE. (Vérifiez dans Firefox pour voir si cela vous convient). Ou mieux encore, définissez un type de document pour faire passer le navigateur en mode strict - où IE suit également le modèle de boîte standard.
http://www.quirksmode.org/css/quirksmode.html
la source
Si vous avez un conteneur parent avec un remplissage vertical et que vous voulez que quelque chose (par exemple une image) à l'intérieur de ce conteneur ignore son remplissage vertical, vous pouvez définir une marge négative, mais égale, pour les deux 'haut' et 'bas':
La valeur réelle ne semble pas avoir beaucoup d'importance. Je n'ai pas essayé cela pour les rembourrages horizontaux.
la source
solution facile .. ajouter au div parent:
box-dimensionnement: border-box;
la source
Voici une autre façon de procéder.
Voici quelques exemples sur repl.it: https://repl.it/@bryku/LightgrayBleakIntercept
la source