Twe kɔ emu nsɛm atitiriw no so Twe kɔ docs navigation so
in English

Gyinabea

Fa saa shorthand utilities yi di dwuma ma hyehyɛ element bi gyinabea ntɛmntɛm.

Gyinabea gyinapɛn ahorow

Wɔde adesua ahorow a ɛfa gyinabea a wɔde si hɔ ntɛmntɛm ho adesua ahorow wɔ hɔ, ɛwom sɛ ɛnyɛ nea ɛyɛ adwuma de.

<div class="position-static">...</div>
<div class="position-relative">...</div>
<div class="position-absolute">...</div>
<div class="position-fixed">...</div>
<div class="position-sticky">...</div>

Hyehyɛ nneɛma a ɛwom no

Hyehyɛ elements mmerɛw ne edge positioning utilities. Ɔkwan a wɔfa so yɛ no ne {property}-{position}.

Baabi a agyapade yɛ biako a:

  • top- ma topgyinabea a egyina hɔ
  • start- ma gyinabea a ewo soro left(wo LTR mu) .
  • bottom- ma bottomgyinabea a egyina hɔ
  • end- ma gyinabea a ewo soro right(wo LTR mu) .

Baabi a gyinabea yɛ biako a:

  • 0- ma 0edge gyinabea
  • 50- ma 50%edge gyinabea
  • 100- ma 100%edge gyinabea

(Wobɛtumi de gyinabea botaeɛ pii aka ho denam nsɛm a wode bɛka $position-valuesSass map variable no ho no so.)

<div class="position-relative">
  <div class="position-absolute top-0 start-0"></div>
  <div class="position-absolute top-0 end-0"></div>
  <div class="position-absolute top-50 start-50"></div>
  <div class="position-absolute bottom-50 end-50"></div>
  <div class="position-absolute bottom-0 start-0"></div>
  <div class="position-absolute bottom-0 end-0"></div>
</div>

Mfinimfini nneɛma

Bio nso, wobɛtumi nso de transform utility class no ahyɛ elements no mfimfini .translate-middle.

Saa adesuakuw yi de nsakrae ahorow no translateX(-50%)ne translateY(-50%)element no di dwuma a, ɛne edge positioning utilities no ka bom no, ɛma wo kwan ma wode element bi mfinimfini koraa.

<div class="position-relative">
  <div class="position-absolute top-0 start-0 translate-middle"></div>
  <div class="position-absolute top-0 start-50 translate-middle"></div>
  <div class="position-absolute top-0 start-100 translate-middle"></div>
  <div class="position-absolute top-50 start-0 translate-middle"></div>
  <div class="position-absolute top-50 start-50 translate-middle"></div>
  <div class="position-absolute top-50 start-100 translate-middle"></div>
  <div class="position-absolute top-100 start-0 translate-middle"></div>
  <div class="position-absolute top-100 start-50 translate-middle"></div>
  <div class="position-absolute top-100 start-100 translate-middle"></div>
</div>

Ɛdenam ka ho .translate-middle-xanaa .translate-middle-yadesua ahorow so no, wobetumi de element ahorow no asi hɔ wɔ ɔkwan a ɛkɔ soro anaa ɛkɔ soro nkutoo so.

<div class="position-relative">
  <div class="position-absolute top-0 start-0"></div>
  <div class="position-absolute top-0 start-50 translate-middle-x"></div>
  <div class="position-absolute top-0 end-0"></div>
  <div class="position-absolute top-50 start-0 translate-middle-y"></div>
  <div class="position-absolute top-50 start-50 translate-middle"></div>
  <div class="position-absolute top-50 end-0 translate-middle-y"></div>
  <div class="position-absolute bottom-0 start-0"></div>
  <div class="position-absolute bottom-0 start-50 translate-middle-x"></div>
  <div class="position-absolute bottom-0 end-0"></div>
</div>

Nhwɛso ahorow

Here are some real life examples of these classes:

<button type="button" class="btn btn-primary position-relative">
  Mails <span class="position-absolute top-0 start-100 translate-middle badge rounded-pill bg-secondary">+99 <span class="visually-hidden">unread messages</span></span>
</button>

<button type="button" class="btn btn-dark position-relative">
  Marker <svg width="1em" height="1em" viewBox="0 0 16 16" class="position-absolute top-100 start-50 translate-middle mt-1 bi bi-caret-down-fill" fill="#212529" xmlns="http://www.w3.org/2000/svg"><path d="M7.247 11.14L2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z"/></svg>
</button>

<button type="button" class="btn btn-primary position-relative">
  Alerts <span class="position-absolute top-0 start-100 translate-middle badge border border-light rounded-circle bg-danger p-2"><span class="visually-hidden">unread messages</span></span>
</button>

You can use these classes with existing components to create new ones. Remember that you can extend its functionality by adding entries to the $position-values variable.

<div class="position-relative m-4">
  <div class="progress" style="height: 1px;">
    <div class="progress-bar" role="progressbar" style="width: 50%;" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
  </div>
  <button type="button" class="position-absolute top-0 start-0 translate-middle btn btn-sm btn-primary rounded-pill" style="width: 2rem; height:2rem;">1</button>
  <button type="button" class="position-absolute top-0 start-50 translate-middle btn btn-sm btn-primary rounded-pill" style="width: 2rem; height:2rem;">2</button>
  <button type="button" class="position-absolute top-0 start-100 translate-middle btn btn-sm btn-secondary rounded-pill" style="width: 2rem; height:2rem;">3</button>
</div>

Sass

Maps

Default position utility values are declared in a Sass map, then used to generate our utilities.

$position-values: (
  0: 0,
  50: 50%,
  100: 100%
);

Utilities API

Position utilities are declared in our utilities API in scss/_utilities.scss. Learn how to use the utilities API.

    "position": (
      property: position,
      values: static relative absolute fixed sticky
    ),
    "top": (
      property: top,
      values: $position-values
    ),
    "bottom": (
      property: bottom,
      values: $position-values
    ),
    "start": (
      property: left,
      class: start,
      values: $position-values
    ),
    "end": (
      property: right,
      class: end,
      values: $position-values
    ),
    "translate-middle": (
      property: transform,
      class: translate-middle,
      values: (
        null: translate(-50%, -50%),
        x: translateX(-50%),
        y: translateY(-50%),
      )
    ),