Bootstrap教程

Bootstrap定位

Bootstrap中,定位工具类用于快速设置元素的位置。这些类可以帮助轻松地将元素定位到页面上的任何位置,而无需编写复杂的CSS代码。可以通过将这些类应用到HTML元素上,轻松实现元素的定位和布局。

一、定位工具类

以下是一些常用的定位工具类:

1、.position-static:将元素设置为静态定位,即元素保持其在文档流中的默认位置。

2、.position-relative:将元素设置为相对定位,使其相对于其正常位置进行定位调整。

3、.position-absolute:将元素设置为绝对定位,使其相对于最近的非静态定位祖先元素进行定位。

4、.position-fixed:将元素设置为固定定位,使其相对于视口进行定位,即无论页面滚动与否,元素都会固定在屏幕上的位置。

5、.fixed-top:将元素固定在页面顶部。

6、.fixed-bottom:将元素固定在页面底部。

7、.sticky-top:将元素在页面滚动时固定在顶部位置。

可以通过将这些类应用到HTML元素上,轻松实现元素的定位和布局。例如,要将一个元素固定在页面顶部,可以这样写:

<div class="fixed-top">
<!-- 放置要固定在页面顶部的内容 -->
</div>

二、排列元素

可以使用边界定位通用类别轻松的排列元素。格式为{property}-{position}。

其中,property为以下的其中一种:

  • top - 用于垂直定位top
  • start - 用于水平定位left(LTR)
  • bottom - 用于垂直定位bottom
  • end - 用于水平定位right(LTR)

其中,position为以下的其中一种:

  • 0 - 用于0的边界定位
  • 50 - 用于50%的边界定位
  • 100 - 用于100%的边界定位

(你可以透过在$position-values Sass map变数添加实体,以增加更多定位值。)

Bootstrap定位

<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>

三、元素置中

此外,也可以透过转换通用类别.translate-middle将元素置中。

此类别将transform之translateX(-50%)与translateY(-50%)应用于元素,并结合使用边界定位通用类别,让你可以把元素完全置中。

Bootstrap定位

<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>

透过添加.translate-middle-x或.translate-middle-y类别,元素将只能在水平或垂直方向上定位。

Bootstrap定位

<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>

四、示例

以下是这些类别的实际案例:

Bootstrap定位

<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>

可以将这些类别与现有的元件结合使用,创造新的元件。请记得你可以透过在$position-values变数添加实体以扩展它的功能。

Bootstrap定位

<div class="position-relative m-4">
<div class="progress" style="height: 1px;">
<div class="progress-bar" role="progressbar" style="width: 50%;" aria-valuenow="25" 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>
广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录