- Mastering CSS
- Rich Finelli
- 416字
- 2021-07-08 09:45:46
The box model
The box model defines how wide and tall elements on a page will be. To determine the horizontal space an element occupies, you add up the content + padding-left + padding-right + border-left + border-right + margin-left + margin-right:

So let's take a look at this in practice by looking at the h1 on our site, which is the blue text that says, "Old Chompy".

Here is the ruleset that makes this headline look the way it does:
h1 { font-size: 40px; line-height:1.4; font-weight: bold; color: #0072ae }
Let's add in the following properties to give it a width, padding, border, and margin. As well as a noticeable background-color:
h1 { font-size: 40px; line-height:1.4; font-weight: bold; color: #0072ae
background-color: black;
width: 300px;
padding: 50px;
border: 10px solid blue;
margin: 50px;
}
Here's what our headline looks like now. One big box:

So those 5 properties that contribute to this element's box model are now in place; looking at the browser in the preceding screenshot, this h1 really looks like a box. We can see the border of 10px, the margin, which is outside the border, is 50px, and the padding, which is between the border and the text, is 50px. Then the width inside the padding is 300px. So this element's width is actually 300 + 20 + 100 + 100, which adds up to a total size of 520px. So even though we said the width is 300px by defining the width property in our CSS file, the true space this element occupies is 520px.
Now, that is the traditional box model. I can modify this traditional box model using the box-sizing property with the border-box value. So let's use the box-sizing property and see how that affects the site. Add the property and value to the bottom of the h1 declaration block, as shown here:
h1 { font-size: 40px; line-height:1.4; font-weight: bold; color: #0072ae
background-color: black;
width: 300px;
padding: 50px;
margin: 50px;
border: 10px solid blue;
box-sizing: border-box;
}
As illustrated in the following screenshot, border-box will include essentially subtract the padding and border from the width and height calculation. If I use 300px as my width, the border of 20px and the padding of 100px will be subtracted from the 300px I specified. This is a more intuitive box model and it is compatible with Internet Explorer 8 and higher, as well as all other major browsers. The final horizontal space this element now occupies goes from 520px to 400px.

- iOS面試一戰到底
- Django:Web Development with Python
- Learning Informatica PowerCenter 10.x(Second Edition)
- Spring Cloud、Nginx高并發核心編程
- 新編Premiere Pro CC從入門到精通
- C#程序設計
- PHP 7+MySQL 8動態網站開發從入門到精通(視頻教學版)
- Express Web Application Development
- Python深度學習:模型、方法與實現
- OpenResty完全開發指南:構建百萬級別并發的Web應用
- ASP.NET Web API Security Essentials
- 零基礎學C++(升級版)
- ABAQUS6.14中文版有限元分析與實例詳解
- DB2SQL性能調優秘笈
- Spring Data JPA從入門到精通