HTML CSS Box avec rembourrage et marge et 100% de largeur?
J'ai une boîte #box
avec width: 100%, hauteur: 100%, padding: 5px, margin: 5px; border: 5px;
J'ai besoin d'en HTML5 mise en page afficher correctement.
Maintenant, j'ai que:
Mais j'ai besoin d'ajustement bloc dans la zone de votre corps.
Code:
<!DOCTYPE html>
<style>
body,html {
width: 100%;
height: 100%;
margin: 0;
}
#box {
width: 100%;
height: 100%;
border: 5px solid red;
padding: 15px;
margin: 20px;
}
</style>
<body>
<div id="box">
Text will be here
</div>
</body>
source d'informationauteur xercool
Vous devez vous connecter pour publier un commentaire.
Le navigateur ne excacly ce que vous êtes en lui disant de faire 🙂
Cependant, je pense que vous n'aimez pas le dépassement.
Ce qui se passe, c'est que votre
#box
se développe en raison de la frontière et de rembourrage. Vous pouvez faire ces propriétés en médaillon, de sorte qu'il ne développez pas votre élément. Vous pouvez faire cela avecbox-sizing
:Cependant, vous ne pouvez pas faire la même chose avec le
margin
parce que l'élément se pousse du corps: c'est ce qu'elle suppose de faire.Vous pouvez faire une solution de contournement en faisant la même chose que ci-dessus:
Vous allez utiliser le rembourrage sur le corps au lieu de la marge sur le
#box
.jsFiddle
Mise à jour
À éviter la double rembourrage de l'espace, vous ne devriez l'appliquer sur l'élément de corps (ou html, mais je préfère le corps qui est votre élément visuel à la fin).
Selon w3c spécifications de la Boîte Modèle
Ce qui signifie que les valeurs de
padding
etborder-width
affecte la largeur totale de l'élément. Donc, ici, vous ajoutez le15px
de la marge avec5px
de frontières avec 100% de la largeur réelle de l'élément.L'ensemble de sorte qu'il dépasse la veuve de taille c'est pourquoi il est livré avec de défilement horizontale.
Vous devriez utiliser CSS
box-sizing
propriété:Mais s'il vous plaît noter que vous aurez besoin d'utiliser zéro
margin
pour que cela fonctionne.Il y a un bon article explicatif sur comment cela fonctionne: http://css-tricks.com/box-sizing/
Avec CSS3, vous pouvez remplacer la frontière avec l'encart
border-shadow
et de la marge avec bordure transparente. De cette façon, vous aurez le contrôle de l'ensemble de ces paramètres: le rembourrage, la (fausse) de la marge et de la frontière:Voir un violon ici: http://jsfiddle.net/HXR3r/
Vous pouvez utiliser les css calc()
violon
Votre problème est, que l'on force remarqué, en Supposant juste pour
height
squi est plus que
100%
...donc pas defit block in body area.
.Essayez de réduire la hauteur en pourcentage pour un meilleur résultat!!Similaires est le cas pour les largeurs!!
Vous devez ajouter Ajouter
box-sizing: border-box;
propriété dans votre#box
Et supprimermargin: 20px;
Voici la mise à jour de CSS:
travail de violon