คุณสมบัติ align-items
คุณสมบัติ align-items กำหนดการจัดแนว
ขององค์ประกอบตามแนวแกนตั้งฉากสำหรับบล็อก flex
และตามแนวแกนตั้งสำหรับกริด ใช้ได้
กับองค์ประกอบหลัก
ไวยากรณ์
ตัวเลือก {
align-items: flex-start | flex-end | center | baseline | stretch;
}
ค่า
| ค่า | คำอธิบาย |
|---|---|
flex-start |
บล็อกถูกจัดชิดไปที่จุดเริ่มต้นของแกนตั้งฉาก (แนวตั้ง) |
flex-end |
บล็อกถูกจัดชิดไปที่จุดสิ้นสุดของแกนตั้งฉาก (แนวตั้ง) |
center |
บล็อกอยู่กึ่งกลางของแกนตั้งฉาก (แนวตั้ง) |
baseline |
องค์ประกอบถูกจัดแนวตามเส้นฐานของตัวเอง เส้นฐาน
คือเส้นจินตภาพที่ลากผ่านขอบล่างของ
ตัวอักษรโดยไม่คำนึงถึงส่วนที่ยื่น เช่น ในตัวอักษร 'p' และ 'y'
|
stretch |
บล็อกถูกยืดออกเพื่อครอบครองพื้นที่ที่มีอยู่ทั้งหมดตามแกนตั้งฉาก
แต่จะยังคงคำนึงถึง min-width และ max-width ถ้ากำหนดไว้
ถ้ากำหนดความกว้างและความสูงสำหรับองค์ประกอบ - stretch จะถูกละเว้น
|
ค่าเริ่มต้น: stretch
ตัวอย่าง ค่า stretch
ตอนนี้แกนหลักชี้จากซ้ายไปขวา และตามแกนตั้งฉาก องค์ประกอบจะถูกยืดออกตลอด ความสูงทั้งหมด:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: stretch;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า stretch + ขนาดขององค์ประกอบ
ตอนนี้กำหนดความกว้างและความสูงให้กับองค์ประกอบ
ดังนั้นค่า stretch สำหรับคุณสมบัติ
align-items จะถูกละเว้น:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: stretch;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า flex-start โดยไม่มีขนาดขององค์ประกอบ
ตอนนี้องค์ประกอบจะถูกจัดชิดขึ้นด้านบน:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า flex-start + ขนาดขององค์ประกอบ
ตอนนี้องค์ประกอบจะยังคงถูกจัดชิดขึ้นด้านบน อย่างไรก็ตามพวกมันจะมีความกว้าง และความสูงที่กำหนด:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า flex-end + ขนาดขององค์ประกอบ
ตอนนี้องค์ประกอบจะถูกจัดชิดลงด้านล่าง:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-end;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า center + ขนาดขององค์ประกอบ
ตอนนี้องค์ประกอบจะอยู่กึ่งกลางตาม แกนตั้งฉาก (ในกรณีนี้คือแนวตั้ง):
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: center;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
height: 50px;
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า center, องค์ประกอบมีขนาดต่างกัน
ตอนนี้องค์ประกอบมีความสูงต่างกัน
(ตอนนี้พวกมันถูกขยายออกด้วยข้อความ แต่
สามารถกำหนด height ได้) ความกว้างเท่ากันทั้งหมด
เนื่องจากกำหนดคุณสมบัติ width:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: center;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 100px;
border: 1px solid #696989;
}
:
ตัวอย่าง ค่า baseline, องค์ประกอบมีขนาดต่างกัน
นี่คือลักษณะของการจัดแนว ตามเส้นฐาน:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: baseline;
flex-direction: row;
border: 1px solid #696989;
}
#parent > div {
width: 130px;
line-height: 1;
border: 1px solid #696989;
}
:
ตัวอย่าง การจัดแนวตามจุดเริ่มต้นของแกนตั้งในกริด
มาทำการจัดแนวองค์ประกอบภายในเซลล์ ตามจุดเริ่มต้นของแกนตั้ง:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: flex-start;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
และตอนนี้มาดูกริดของเรา ในตัวดีบักเกอร์ของเบราว์เซอร์:
ตัวอย่าง การจัดแนวกึ่งกลางแกนตั้งในกริด
และตอนนี้มาจัดแนวองค์ประกอบของเรา ในเซลล์กึ่งกลางแกนตั้ง:
<div id="parent">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: center;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
:
มาดูการแสดงผลของกริด ในตัวดีบักเกอร์:
ตัวอย่าง การจัดแนวตามจุดสิ้นสุดของแกนตั้งในกริด
เปลี่ยนการจัดแนวองค์ประกอบอีกครั้ง คราวนี้ตามจุดสิ้นสุดของแกนตั้ง:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: grid;
align-items: end;
grid-template-columns: 100px 100px;
gap: 10px;
padding: 10px;
border: 2px solid #696989;
height: 200px;
width: 400px;
}
#parent > div {
gap: 10px;
padding: 10px;
box-sizing: border-box;
border: 1px solid #696989;
}
#elem1 {
}
:
และตอนนี้มาดูว่ากริดของเรา หน้าตาเป็นอย่างไรผ่านตัวดีบักเกอร์:
ดูเพิ่มเติม
-
คุณสมบัติ
flex-direction,
ซึ่งกำหนดทิศทางของแกนสำหรับบล็อก flex -
คุณสมบัติ
justify-content,
ซึ่งกำหนดการจัดแนวตามแกนหลัก -
คุณสมบัติ
align-items,
ซึ่งกำหนดการจัดแนวตามแกนตั้งฉาก -
คุณสมบัติ
flex-wrap,
ซึ่งกำหนดการขึ้นบรรทัดใหม่สำหรับบล็อก flex -
คุณสมบัติ
flex-flow,
รูปแบบย่อสำหรับflex-directionและflex-wrap -
คุณสมบัติ
order,
ซึ่งกำหนดลำดับของบล็อก flex -
คุณสมบัติ
align-self,
ซึ่งกำหนดการจัดแนวของบล็อกเดียว -
คุณสมบัติ
flex-basis,
ซึ่งกำหนดขนาดของบล็อก flex เฉพาะ -
คุณสมบัติ
flex-grow,
ซึ่งกำหนดการขยายตัวของบล็อก flex -
คุณสมบัติ
flex-shrink,
ซึ่งกำหนดการหดตัวของบล็อก flex -
คุณสมบัติ
flex,
รูปแบบย่อสำหรับflex-grow,flex-shrinkและflex-basis