คุณสมบัติ align-self

คุณสมบัติ align-self กำหนดการจัดแนว ตามแกนตัดสำหรับ flex-block ที่แยกออกมา และตามแกนตั้งสำหรับองค์ประกอบเฉพาะ ในกริด โดยพื้นฐานแล้วคุณสมบัตินี้คือ คุณสมบัติ align-items, แต่สำหรับ block เฉพาะ

ไวยากรณ์

cssตัวเลือก {
  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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div id="elem">3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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:

html<div id="parent">
  <div>1</div>
  <div>2</div>
  <div id="elem">3</div>
  <div>4</div>
  <div>5</div>
</div>
css#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;
}

Результат:

ตัวอย่าง การจัดแนวตามจุดเริ่มต้นของแกนตั้งในกริด

ลองกำหนดการจัดแนวสำหรับองค์ประกอบแรก ตามจุดเริ่มต้นของแกนตั้ง:

html<div id="parent">
  <div id="elem1">1</div>
  <div id="elem2">2</div>
  <div id="elem3">3</div>
  <div id="elem4">4</div>
</div>
css#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;
}

Результат:

ตัวอย่าง การจัดแนวตรงกลางแกนตั้งในกริด

ลองกำหนดการจัดแนวขององค์ประกอบแรก ตรงกลางแกนตั้ง:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#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;
}

Результат:

ตัวอย่าง การจัดแนวตามจุดสิ้นสุดของแกนตั้งในกริด

ลองกำหนดการจัดแนวสำหรับองค์ประกอบแรก ในกริดของเราตามจุดสิ้นสุดของแกนตั้ง:

html<div id="parent">
  <div id="elem1">1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
</div>
css#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