【问题标题】:How to display only 3 button per row using boostrap?如何使用引导程序每行仅显示 3 个按钮?
【发布时间】:2020-07-20 23:03:34
【问题描述】:

form{


  display: flex;
  flex-flow: row wrap;
  justify-content: space-between;
  align-items: center;
  align-content: space-around;

}


form .buttons{

	width: 100%;
	border: none;
	background-color: #ffffff00;
	cursor: pointer;

}

form .buttons img{

	width: 100%;

}

form button{

	width: 100%;
	border: none;
	color: #fff;
	background-color: #000000;

}

我是初学者的新手。问题是我有十个包含图像的按钮,但根据 if 语句,并非所有按钮都会显示。我的问题是使用引导程序或 css 响应地显示每行剩余的按钮 3。 我用过表格、弹性盒、网格,但还是不行。

echo "</head>";
   echo"<body>";
  echo "<script src=\"../js/jquery.js\"></script>";
  echo "<form  action='../include/newHealthScore.php' method='post'>";
  echo "<input type='text' name='input1' id='input1' value='' hidden='true'>
  <input type='text' name='input2' id='input2' value='' hidden='true'>
  <input type='text' name='input3' id='input3' value='' hidden='true'>";
  echo "<div class = 'container'>";
  echo "<div class = 'col-md-12'>";
  echo "<div class=\"jumbotron jumbotron-fluid\">
    <div class=\"container\"  align=\"center\">
      <h1 class=\"display-4\">Choose a maximum of 3 options</h1>
      <p class=\"lead\" align=\"justify\">Depending on your health score calculated, some option will be available for you to choose. Each option will give you points so as to increase your overall health score. Point for blood pressure is displayed in pink. Point for LDL is displayed in yellow. Point for HDL is displayed in blue. Point for HbA1c is displayed in orange. Point for waist is displayed in green. Finally point for whether you smoke or not is displayed in brown.</p>
    </div>
  </div>";
  echo "</div>";
  echo "</div>";
  echo "<div class = 'container'>";
  echo "<div class='d-inline-flex'>";
  if( $bPressure < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity1' type='button'><img src='../img/salt.png'></button><br/>";
  }
  if($bPressure < 10 || $ldl < 10 || $hdl < 10 || $hba1c < 10 || $waist < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity2' type='button' ><img src='../img/balancemeal.png'></button><br/>";
    echo "</div>";
  }
  if ($bPressure < 10 || $ldl < 10 || $hba1c < 10 || $waist < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity3' type='button'><img src='../img/rawveg.png'></button><br/>";
    echo "</div>";
  }
  if($hdl < 10 || $ldl < 10 || $hba1c < 10 || $waist < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity4' type='button'><img src='../img/fat.png'></button><br/>";
    echo "</div>";
  }
  if($ldl < 10 || $hba1c < 10 || $waist < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity5' type='button'><img src='../img/sugar.png'></button><br/>";
    echo "</div>";
  }

  if($bPressure < 10 || $hdl < 10 || $hba1c < 10 || $waist < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity6' type='button'><img src='../img/alcohol.png'></button><br/>";
    echo "</div>";
  }
  if($bPressure < 10 || $ldl < 10 || $hdl < 10 || $hba1c < 10 || $waist < 10 || $smoke < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity7' type='button'><img src='../img/30min.png'></button><br/>";
    echo "</div>";
  }
  if($bPressure < 10 || $ldl < 10 || $hdl < 10 || $hba1c < 10 || $smoke < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity8' type='button'><img src='../img/walk303.png'></button><br/>";
    echo "</div>";
  }
  if($smoke < 10)
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity9' type='button'><img src='../img/smoking.png'></button><br/>";
    echo "</div>";
  }
  if($takePill = "y")
  {
    echo "<div class=\"p-2\">";
    echo "<button class='buttons' value='activity10' type='button'><img src='../img/pills.png'></button>";
    echo "</div>";
  }
  echo "<div class= 'd-flex justify-content-center'>";
  echo "<input class = 'btn btn-primary rounded-pill btm-lg btn-huge' type='submit' name='Submit' value = 'Submit'/>";
  echo "</div>";

  echo "</form>";
  echo "</div>";
  echo "</div>";

  echo "<script src=\"https://code.jquery.com/jquery-3.4.1.slim.min.js\"></script>
  <script src=\"https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js\" ></script>
  <script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js\" ></script>
";
  echo "</body>";
[enter image description here][1]
I found a way to do it. but now new problem arises. They are glued together and now i can't put a space between them. Also they do not fill up the container.
Bellow is the new code

<!-- begin snippet: js hide: false console: true babel: false -->

【问题讨论】:

  • 嗨@Kevin - 我建议您尝试使用边框=1 的表格 - 这样当您调整代码时,您可以看到对布局的影响...

标签: php html css bootstrap-4


【解决方案1】:

只需使用grid system of Bootstrap。您可以使用带有container 的div,如果您想拥有一个全角容器,则该div 必须有一个container-fluid 类,那么对于每一行按钮,您需要创建一个带有row 类的div 并将您的按钮 - 在这种情况下是三个按钮 - 在具有 col 类的 div 内的每一行中,并为每个按钮提供一个名为 btn-block 的 css 类,如下所示:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link
      rel="stylesheet"
      href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
      integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
      crossorigin="anonymous"
    />
    <title>Having three buttons per row in Bootstrap 4.4.1</title>
  </head>
  <body>
    <div class="container-fluid">
      <div class="row m-2">
        <div class="col">
          <button type="button" class="btn btn-primary m-1 btn-block">btn 1</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-primary m-1 btn-block">btn 2</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-primary m-1 btn-block">btn 3</button>
        </div>
      </div>
      <div class="row m-2">
        <div class="col">
          <button type="button" class="btn btn-secondary m-1 btn-block">btn 1</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-secondary m-1 btn-block">btn 2</button>
        </div>
        <div class="col">
          <button type="button" class="btn btn-secondary m-1 btn-block">btn 3</button>
        </div>
      </div>
    </div>
    <script
      src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
      integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
      crossorigin="anonymous"
    ></script>
    <script
      src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
      integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
      crossorigin="anonymous"
    ></script>
    <script
      src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
      integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
      crossorigin="anonymous"
    ></script>
  </body>
</html>

如果您需要btn-group,您可以使用它们而不是普通的 btn,您可以从相关的Bootstrap documentation for btn-group 中了解更多信息。

【讨论】:

  • 它会像上面的 sn-p 一样保留吗?因为如果 if 语句不返回 true,则可能不会出现同一 div 中的一个按钮。
  • 我尝试了您的解决方案。它确实在同一行上放置了 3 个项目,但按钮之间的距离增加了,使得行显示不像上面的代码那样有序。为了精确每一行,按钮的大小会增加,我不知道为什么。第二行的按钮比它的前任要大。
  • 我不小心在第一行类中使用了 align-items-center css 类。如果您只是复制了我的代码,请再做一次,我刚刚为您修改了它,看看问题是否得到解决。
  • 请注意,我使用了一些类,例如“m-2”或“m-1”。这些类改变了它们在该元素的类列表中使用的每个元素的边距。我们可以在 Bootstrap 中使用 m-0 到 m-5 来设置或增加元素的边距。我们还可以将 mb-0 到 mb-5 用于 margin-bottom 以及我们可以将 margin 用于其他方向,例如 mt-* 用于 margin-top 和 mr-* 用于 margin-right 和 ml-* 用于 margin-left。因此,您可以根据需要更改按钮或行的边距...例如将按钮类的 m-1 更改为 ml-1 或 m-2 之类的东西。
  • 我按照你说的更新了代码。谢谢你的帮助。它在一定程度上纠正了我的问题。现在按钮不再随机排列。
猜你喜欢
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多