01 行盒的理解
作用: 將當前行裡的所有內容包裹起來
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box .small {
display: inline-block;
width: 200px;
height: 200px;
background-color: orange;
}
.box img {
width: 200px;
}
</style>
</head>
<body>
<div class="box">
xxxxgggx123
<img src="./imgs/diqiu.jpg" alt="">
<span class="small"></span>
每逢春節、中秋節等中華民族傳統節日,各族居民便聚在一起,聯歡聯誼,共慶佳節;每逢開齋節、古爾邦節等少數民族節日,回族居民會帶著油香、饊子等特色小吃,請街坊鄰里品嚐,各族居民其樂融融,像石榴籽一樣緊緊抱在一起。
</div>
</body>
</html>
02 行盒裡面對齊的方式
瀏覽器為了美觀,預設行盒的對其方式是基線對齊
這也就能解釋為什麼單獨放一張圖片的時候,圖片下方會有幾個畫素
這是因為只有圖片的時候也是按照基線對齊,為了以後可能有文字,預留了空間
還有一種現象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
background-color: orange;
}
.box .small {
display: inline-block;
width: 200px;
height: 200px;
background-color: red;
}
.box img {
width: 100px;
}
</style>
</head>
<body>
<div class="box">
123xxggg
<img src="./imgs/diqiu.jpg" alt="">
<span class="small">aaaaa</span>
</div>
</body>
</html>
也是因為基線對齊的原因,因為span裡有了文字,所以基線變成了文字的底部,就會發生如上圖的現象了
03 案例
3.1 vertical-algin解決問題一
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
/* 瀏覽器遇到行內和行內塊標籤當做文書處理, 預設文字是按基線物件 */
input {
height: 50px;
box-sizing: border-box;
vertical-align: middle;
}
</style>
</head>
<body>
<input type="text"><input type="button" value="搜尋">
</body>
</html>
3.2 vertical-algin解決問題二
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
img {
vertical-align: middle;
}
</style>
</head>
<body>
<img src="../imgs/1.jpg" alt=""><input type="text">
</body>
</html>
3.3 vertical-algin解決問題三
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.father {
width: 400px;
height: 400px;
background-color: pink;
}
input {
/* vertical-align: middle; */
vertical-align: top;
}
</style>
</head>
<body>
<div class="father">
<input type="text">
</div>
</body>
</html>
3.4 vertical-algin解決問題四
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.father {
width: 400px;
background-color: pink;
}
img {
/* 瀏覽器把行內和行內塊標籤當做文書處理,預設基線對齊 */
/* vertical-align: middle; */
display: block;
}
</style>
</head>
<body>
<div class="father">
<img src="../imgs/1.jpg" alt="">
</div>
</body>
</html>