คุณสมบัติ align-self
คุณสมบัติ align-self กำหนดการจัดแนว
ตามแกนตัดสำหรับ flex-block ที่แยกออกมา
และตามแกนตั้งสำหรับองค์ประกอบเฉพาะ
ในกริด
โดยพื้นฐานแล้วคุณสมบัตินี้คือ
คุณสมบัติ
align-items,
แต่สำหรับ block เฉพาะ
ไวยากรณ์
ตัวเลือก {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
ค่า
| ค่า | คำอธิบาย |
|---|---|
flex-start |
Block ติดกับจุดเริ่มต้นของแกนตัด |
flex-end |
Block ติดกับจุดสิ้นสุดของแกนตัด |
center |
Block อยู่ตรงกลางแกนตัด |
baseline |
Block ถูกจัดแนวตาม baseline ของมันเอง
Baseline คือเส้นสมมุติ
ที่ผ่านขอบล่างของตัวอักษรโดยไม่นับส่วนยื่น
ตัวอย่างเช่น ตัวอักษรอย่าง 'p', 'q', 'y',
'g'
|
stretch |
Block ถูกยืดออก ครอบครองพื้นที่ทั้งหมดที่มีตามแกนตัด
แต่อย่างไรก็ตามยังคำนึงถึง min-width และ max-width
หากถูกกำหนดไว้ หากกำหนดความกว้างและความสูงสำหรับองค์ประกอบ -
stretch จะถูกละเว้น
|
auto |
Block จะถูกจัดแนวตามที่กำหนดไว้ในคุณสมบัติ
align-items
|
ค่าเริ่มต้น: auto
ตัวอย่าง ค่า stretch
ในตัวอย่างนี้ block ทั้งหมดถูกกำหนดค่า
flex-start (คุณสมบัติ align-items)
และ block ที่สาม - align-self ด้วยค่า
stretch:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
height: 100px;
}
#parent > div {
min-width: 100px;
border: 1px solid #696989;
}
#elem {
align-self: stretch;
}
:
ตัวอย่าง ค่า flex-end
ในตัวอย่างนี้ block ทั้งหมดสำหรับคุณสมบัติ
align-items ถูกกำหนดค่า flex-start
และ block ที่สาม - align-self ด้วยค่า
flex-end:
<div id="parent">
<div>1</div>
<div>2</div>
<div id="elem">3</div>
<div>4</div>
<div>5</div>
</div>
#parent {
display: flex;
align-items: flex-start;
flex-direction: row;
border: 1px solid #696989;
height: 100px;
}
#parent > div {
min-width: 100px;
border: 1px solid #696989;
}
#elem {
align-self: flex-end;
}
:
ตัวอย่าง การจัดแนวตามจุดเริ่มต้นของแกนตั้งในกริด
ลองกำหนดการจัดแนวสำหรับองค์ประกอบแรก ตามจุดเริ่มต้นของแกนตั้ง:
<div id="parent">
<div id="elem1">1</div>
<div id="elem2">2</div>
<div id="elem3">3</div>
<div id="elem4">4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
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 {
align-self: start;
}
:
ตัวอย่าง การจัดแนวตรงกลางแกนตั้งในกริด
ลองกำหนดการจัดแนวขององค์ประกอบแรก ตรงกลางแกนตั้ง:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
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 {
align-self: center;
}
:
ตัวอย่าง การจัดแนวตามจุดสิ้นสุดของแกนตั้งในกริด
ลองกำหนดการจัดแนวสำหรับองค์ประกอบแรก ในกริดของเราตามจุดสิ้นสุดของแกนตั้ง:
<div id="parent">
<div id="elem1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
#parent {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: repeat(3, 1fr);
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 {
align-self: end;
}
:
ดูเพิ่มเติม
-
คุณสมบัติ
flex-direction,
ซึ่งกำหนดทิศทางของแกน flex block -
คุณสมบัติ
justify-content,
ซึ่งกำหนดการจัดแนวตามแกนหลัก -
คุณสมบัติ
align-items,
ซึ่งกำหนดการจัดแนวตามแกนตัด -
คุณสมบัติ
flex-wrap,
ซึ่งกำหนดการขึ้นบรรทัดใหม่ของ flex block -
คุณสมบัติ
flex-flow,
คำย่อสำหรับ flex-direction และ flex-wrap -
คุณสมบัติ
order,
ซึ่งกำหนดลำดับของ flex block -
คุณสมบัติ
flex-basis,
ซึ่งกำหนดขนาดของ flex block เฉพาะ -
คุณสมบัติ
flex-grow,
ซึ่งกำหนดความ "โลภ" ของ flex block -
คุณสมบัติ
flex-shrink,
ซึ่งกำหนดความสามารถในการย่อของ flex block -
คุณสมบัติ
flex,
คำย่อสำหรับflex-grow,flex-shrinkและflex-basis