What is the difference between border-box and content-box in CSS?
I am not clearly understand between these two boxes. For example,
box-sizing:border-box;
and box-sizing:content-box;
The output of the two styles look similar.
border-box tells the browser to account for any border and padding in the values you specify for an element's width and height. If you set an element's width to 100 pixels, that 100 pixels will include any border or padding you added, and the content box will shrink to absorb that extra width.
The box-sizing property in CSS defines how the user should calculate the total width and height of an element i.e padding and borders, are to be included or not. Syntax: box-sizing: content-box|border-box; Property Values: All the properties are described well with the example below.
The Architecture: The content is surrounded by the border, the space between the content and the border is called the padding, while the space between the border and the other elements in the document is called the margin.
With the CSS box-sizing Property The box-sizing property allows us to include the padding and border in an element's total width and height. If you set box-sizing: border-box; on an element, padding and border are included in the width and height: Both divs are the same size now!
While box-sizing: border-box; uses the box-model that people have come to associate with Internet Explorer, where the dimensions of the padding and border are included in the element’s dimensions. (image source)
Example:
(image source)
Demo Added.
$("#content").on("click", function() {
$("*").css("box-sizing", $(this).text());
});
$("#border").on("click", function() {
$("*").css("box-sizing", $(this).text());
});
.parent {
width: 50%;
border: 5px solid #E18728;
float: left;
}
.child {
width: 90%;
padding: 20%;
border: 4px solid black;
margin: .5em auto;
}
.twins {
width: 50%;
padding: 1em;
border: 4px solid black;
float: left;
}
/* styling for Pen, not related to box-sizing or layout */
body {
font-family: sans-serif;
font-size: 1.1em;
}
.buttons {
margin-bottom: .5em;
}
p:not(.intro) {
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="buttons">
<p class="intro">Click the <code>border-box</code> button to fix the layout with the power of Box Sizing!</p>
<button id="content">content-box</button>
<button id="border">border-box</button>
</div>
<div class="parent">
<p>Parent div with 50% width.</p>
<div class="child">
<p>Child div with 90% width, 4px black border, and 20% padding </p>
</div>
<div class="twins">
<p>Child div with 50% width, 4px black border, and 1em padding</p>
</div>
<div class="twins">
<p>Child div with 50% width, 4px black border, and 1em padding</p>
</div>
</div>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With