Mari kita pahami dulu element html dapat dikategorikan dalam 2 tipe, yaitu
- block level element, contoh: div, h1
- inline level element, contoh: a
Block element secara default akan memiliki 100% width terhadap container. Sementara inline element memiliki width sesuai contentnya.
Saat mengatur width block level element (misalnya div), perlu dipahami property box-sizing. Untuk lebih jelasnya, tambahkan css untuk mengatur width dan height pada #product-title.
body{
font-family: 'Nunito', sans-serif;
margin: 0px;
}
#product-title{
background-color: red;
padding: 15px;
border: 2px solid black;
margin: 20px;
width: 100%;
height: 400px;
}
.section-title{
color: teal;
}
#product-title h1{
color: white;
font-family: 'Roboto', sans-serif;
}
Lalu buka file index.html, Buka Developer tools dan inspect element <section> pertama, lihat bagian box model.

Dapat dilihat aktual width dan height ( 723 x 434), berbeda dengan width dan height yang diset melalui CSS (669 x 400).
Perbedaan diatas terjadi karena browser menambahkan border dan padding dalam perhitungan width. Sementara default CSS, padding dan border tidak dihitung.
Rule diatas dapat ditimpa dengan mengatur property box-sizing, dari defaultnya content-box menjadi border-box;
Tambahkan pada css box-sizing: border-box; dengan css selector * agar diterapkan pada seluruh element. Berikut isi file style.css dan file index.html
*{
box-sizing: border-box;
}
body{
font-family: 'Nunito', sans-serif;
margin: 0px;
}
#product-title{
background-color: red;
padding: 15px;
border: 2px solid black;
margin: 20px;
width: 100%;
height: 400px;
}
.section-title{
color: teal;
}
#product-title h1{
color: white;
font-family: 'Roboto', sans-serif;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>SkillPlus - Tutorial Tekno</title>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@300&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<main>
<section id="product-title">
<h1 id="plans">Tutorial Teknologi Informatika di SkillPlus</h1>
</section>
<section>
<h1 class="section-title">Pilih paket langganan</h1>
</section>
</main>
</body>
</html>
Jika Anda cek kembali melalui developer tools, maka ukuran CSS dan Aktual akan sama karena padding dan border diikut sertakan dalam perhitungan width.
Aktual width: 720, CSS width: 686 + padding (15px * 2) + border (2px * 2).

Perhatian, angka pada contoh diatas adalah tidak mutlak, karena mengikuti ukuran viewport browser. Saat tutorial dibuat, dan saat Anda mencoba, ukuran viewport bisa berbeda.