我使用Bootstrap 5.0.2

按钮的动画应该从中心到左右对称地调整按钮的大小,使其达到100%可用宽度.它不能像预期的那样工作,因为它超出了对称线(合适的尺寸太宽了)

我不明白为什么,因为:

<!--bootstrap-->

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

<!--code-->

<div class="container bg-success">
  <div class="border border-dark">

    <div class="row m-2 w-animate">
      <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
        test
      </a>
    </div>
    <div class="row m-2 w-animate">
      <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
        test_2
      </a>
    </div>
    <div class="row m-2 w-animate">
      <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
        test_3
      </a>
    </div>
    
  </div>
</div>

<style>
.w-animate {
  position: relative;
  width: 50%;
  left: 25%;
  animation: center-animate 3s ease infinite alternate;
}
.w-animate:hover {
  animation-play-state: paused;
}

@keyframes center-animate {
  0% {
    width: 50%;
    left: 25%;
  }
  100% {
    width: 100%;
    left: 0%;
  }
}
</style>

推荐答案

每个<a> nchor的父<div>具有m-2个类,即margin: 0.5rem(见Figure I个).

Figure I

                            <!-- ⬍ 0.5rem -->
<!-- ⬌ 0.5rem --> <div class="row m-2 w-animate"></div> <!-- ⬌ 0.5rem -->
                            <!-- ⬍ 0.5rem -->

因此,左右边距抵消了<div>的实际位置,因此出现了不对称的行为.将每个m-2类更改为mx-0以删除左边距和右边距,并添加my-2以保留每个<div>之间的0.5rem(请参见下面的示例).

以下示例具有:

  • 分配给第一个<div>的类m-2
  • 分配给第二个<div>的类mx-1my-2
  • 分配给第三个<div>的类mx-0my-2

请注意距每个中心位置的偏移量的差异.第三个<div>是要使用的正确类.另请注意,第二个和第三个<div>具有my-2,即margin: 0.5rem 0(上边距和下边距为0.5rem).仅供参考,该示例还显示了应该如何安排一个完整的 bootstrap 程序文档.

<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title></title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
  <style>
    .w-animate {
      position: relative;
      width: 50%;
      animation: center-animate 1s ease infinite alternate;
    }
    
    .w-animate:hover {
      animation-play-state: paused;
    }
    
    @keyframes center-animate {
      0% {
        width: 50%;
        left: 25%;
      }
      100% {
        width: 100%;
        left: 0%;
      }
    }
  </style>
  </head>
  <body>
  <div class="container bg-success">
    <div class="border border-dark">
      <div class="row m-2 w-animate">
        <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
         m-2
      </a>
      </div>
      <div class="row mx-1 my-2 w-animate">
        <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
          mx-1 my-2
      </a>
      </div>
      <div class="row mx-0 my-2 w-animate">
        <a target="_blank" href="velo-art" class="btn bg-animate border border-dark rounded-pill fs-1 col-12  text-center p-2">
          mx-0 my-2
      </a>
      </div>
    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script>
  </body>

</html>

Html相关问答推荐

使用固定的HTML代码创建两个可向右滚动的行

如何增加行背景的宽度而不影响上面的内容?""' HTML CSS

如何使用bslb设置可导航页面侧边栏的样式

如何才能只给没有孟加拉语Kar符号的字母上色?

将网格包装在css中

如何使用html和css将两个项目垂直对齐

如何实现弯曲的梯形导航栏?

如何防止第二列中的内容影响第一列中内容的位置?

R-markdown中的非顺序列表

让多对图像在各自的div中叠加

如何制作';在第';页中搜索;是否发现多个元素中的单词?

阴影部分内部的ionic Select 元素

当作为常规图片输入时,Cloudfront分布式图像可显示,但作为背景图像不显示

如何将一个边框向下移动

白色栏超出页面100%的右侧

模拟另一个输入值设置表单输入的数值

Sass 混合动画未正确应用

按钮显示:内联不换行

使用 TailwindCSS 将徽标放在左上角,将菜单放在右上角

如何在react 中向按钮添加禁用属性?