Lập trình CSS - thuộc tính position

position 属性规定应用于元素的定位方法的类型(static、relative、fixed、absolute 或 sticky)。

position 属性

position 属性规定应用于元素的定位方法的类型。

有五个不同的位置值:

  • static
  • relative
  • fixed
  • absolute
  • sticky

元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。根据不同的 position 值,它们的工作方式也不同。

position: static;

HTML 元素默认情况下的定位方式为 static(静态)。

静态定位的元素不受 top、bottom、left 和 right 属性的影响。

position: static; 的元素不会以任何特殊方式定位;它始终根据页面的正常流进行定位:

这个 <div> 元素设置了 position: static;

这是所用的 CSS:

ຄວາມສະແດງ

div.static {
  position: static;
  border: 3px solid #73AD21;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

position: relative;

position: relative; 的元素相对于其正常位置进行定位。

设置相对定位的元素的 top、right、bottom 和 left 属性将导致其偏离其正常位置进行调整。不会对其余内容进行调整来适应元素留下的任何空间。

这个 <div> 元素设置了 position: relative;

这是所用的 CSS:

ຄວາມສະແດງ

div.relative {
  position: relative;
  left: 30px;
  border: 3px solid #73AD21;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

position: fixed;

position: fixed; 的元素是相对于视口定位的,这意味着即使滚动页面,它也始终位于同一位置。 top、right、bottom 和 left 属性用于定位此元素。

固定定位的元素不会在页面中通常应放置的位置上留出空隙。

请注意页面右下角的这个固定元素。这是所用的 CSS:

ຄວາມສະແດງ

div.fixed {
  position: fixed;
  bottom: 0;
  right: 0;
  width: 300px;
  border: 3px solid #73AD21;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

这个 <div> 元素设置了 position: fixed;

position: absolute;

position: absolute; 的元素相对于最近的定位祖先元素进行定位(而不是相对于视口定位,如 fixed)。

然而,如果绝对定位的元素没有祖先,它将使用文档主体(body),并随页面滚动一起移动。

ຄໍາເຫັນ:“被定位的”元素是其位置除 static 以外的任何元素。

这是一个简单的例子:

这个 <div> 元素设置了 position: relative;
这个 <div> 元素设置了 position: absolute;

这是所用的 CSS:

ຄວາມສະແດງ

div.relative {
  position: relative;
  width: 400px;
  height: 200px;
  border: 3px solid #73AD21;
} 
div.absolute {
  position: absolute;
  top: 80px;
  right: 0;
  width: 200px;
  height: 100px;
  border: 3px solid #73AD21;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

position: sticky;

position: sticky; 的元素根据用户的滚动位置进行定位。

粘性元素根据滚动位置在相对(relative)和固定(fixed)之间切换。起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置(比如 position:fixed)。

ຄໍາເຫັນ:Internet Explorer、Edge 15 以及更早的版本不支持粘性定位。 Safari 需要 -webkit- 前缀(请参见下面的实例)。您还必须至少指定 toprightbottomleft 之一,以便粘性定位起作用。

在此例中,在到达其滚动位置时,sticky 元素将停留在页面顶部(top: 0)。

ຄວາມສະແດງ

div.sticky {
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 0;
  background-color: green;
  border: 2px solid #4CAF50;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

重叠元素

在对元素进行定位时,它们可以与其他元素重叠。

z-index 属性指定元素的堆栈顺序(哪个元素应放置在其他元素的前面或后面)。

元素可以设置正或负的堆叠顺序:

这是一个标题

由于图像的 z-index 为 -1,所以它位于文本后面。

ຄວາມສະແດງ

img {
  position: absolute;
  left: 0px;
  top: 0px;
  z-index: -1;
}

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

ບັນດາຫົວຂໍ້ທີ່ມີອັນດັບຕັດຕາມທີ່ສູງຈະຕັ້ງຢູ່ກ່ອນບັນດາຫົວຂໍ້ທີ່ມີອັນດັບຕັດຕາມທີ່ຕໍ່າ

ຄໍາເຫັນ:ຖ້າບໍ່ມີການຕັດຕາມເປັນບໍ່ໄດ້ອາດຈະມີການປະກົດລະບົບຕັດຕາມບໍ່ຖືກຕັດຕາມ z-indexຖ້າບໍ່ມີການຕັດຕາມເປັນຈະຖືກສະແດງຢູ່ທີ່ສຸດທີ່ຈະຖືກສະແດງໃນລະຫັດ HTML

ການຕັດຕາມຄຳບັນທຶກໃນບາງສັນຍາວັດ

ການຕັດຕາມຄຳບັນທຶກໃນບາງສັນຍາວັດ:

ຄວາມສະແດງ

Logo CodeW3C.com
ດ້ານຊາຍດ້ານຍິງ
ດ້ານຕາງດ້ານຍິງ
ດ້ານຕາງດ້ານຍິງ
ດ້ານຊາຍດ້ານກາງ
ສູນກາງ

ການສືບທາງທີ່ເຈົ້າຈະພະຍາຍາມເອງ:

ດ້ານຕາງດ້ານຍິງ ດ້ານຕາງດ້ານຍິງ ດ້ານຊາຍດ້ານຍິງ ດ້ານຊາຍດ້ານກາງ ສູນກາງ

ຄວາມສະແດງອີກ

ການຕັດຕາມຫົວຂໍ້ບາງຢ່າງ
ບົດການນັ້ນສະແດງວ່ານັກການກະກຽມບາງຢ່າງວ່າບາງຢ່າງນັ້ນຖືກຕັດຕາມບາງຢ່າງນັ້ນແລະສະແດງຕາມນັ້ນ

ທະນະບັນການຕັດຕາມ CSS ທັງໝົດ

ທະນະບັນ ອະທິບາຍ
bottom ການຕັດຕາມເຂດສາຍພົບບອກບາງຄຽງຢູ່ບາງທີ່ຢູ່ບາງທີ່ບັງຄັບທີ່ພົບກັບບາງທີ່ຢູ່ບາງທີ່ບັງຄັບ
clip 剪裁绝对定位的元素。
left 设置定位框的左侧外边距边缘。
position 规定元素的定位类型。
right 设置定位框的右侧外边距边缘。
top 设置定位框的顶部外边距边缘。
z-index 设置元素的堆叠顺序。

延伸阅读

课外书:CSS ການການຕິດຕັ້ງ

课外书:CSS ການຕິດຕັ້ງທີ່ຂັ້ນນິວດາ

课外书:CSS ການຕິດຕັ້ງທີ່ບໍ່ມີຄວາມສະເພາະ