Испытание 8/23. А как мерять сколько px занимает текст?

Привет.

Содержимое блока это padding, border, высота текста. Все можно померять, все можно задать.
А как быть с горизонталью? Тут padding, border и ширина текста, которая зависит от кол-ва символов. Как мерять ширину текста.

Мне оч не нравится мой код т.к. пришлось все подгонять по пикселю.

`/* Базовые стили, изменять не нужно */
html,
body {
margin: 0;
padding: 0;
}

body {
width: 540px;
min-height: 290px;
padding-top: 20px;
padding-left: 20px;
font-size: 14px;
line-height: 1.5;
font-family: Arial, sans-serif;
color: white;
background-color: #3a78a1;
background-image: url("/assets/course9/grid.png");
background-repeat: repeat;
background-position: -80px -80px;
}

.block {
background: rgba(0, 255, 255, 0.2);
border: 2px solid white;
}

.block1 {
width: 196px;
height: 30px;
padding-bottom: 6px;
margin-bottom: 20px;
}

.block2 {
width: 80px;
margin-left: 120px;
padding: 10px 16px 25px 40px;
}

.block3 {
border: 12px solid;
width: 160px;
margin-left: 20px;
margin-top: 20px;
padding: 5px 11px 10px 5px
`

100%

`/* Базовые стили, изменять не нужно */
html,
body {
margin: 0;
padding: 0;
}

body {
width: 540px;
min-height: 290px;
padding-top: 20px;
padding-left: 20px;
font-size: 14px;
line-height: 1.5;
font-family: Arial, sans-serif;
color: white;
background-color: #3a78a1;
background-image: url("/assets/course9/grid.png");
background-repeat: repeat;
background-position: -80px -80px;
}

.block {
background: rgba(0, 255, 255, 0.2);
border: 2px solid white;
}
.block1 {
width: 196px;
height: 36px;
margin-bottom: 20px;
}
.block2 {
margin: 0 120px;
width: 96px;
height: 46px;
margin-bottom: 20px;
padding-top: 10px;
padding-left: 40px

}
.block3 {
margin: 0 20px;
width: 171px;
height: 31px;
border-width: 12px;
vertical-align: middle;
padding-top: 5px;
padding-left: 5px;
}`

А зачем vertical-align: middle; в .block3?