【问题标题】:Button are not aligned when screen is narrow屏幕窄时按钮未对齐
【发布时间】:2020-04-13 14:26:30
【问题描述】:

我想对齐按钮以使我的 Web 应用程序具有响应性。 大屏幕时按钮正确对齐:

Button correctly aligned

这是按钮未正确对齐时的捕获:

Button not correctly aligned

这是示例:

  body{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  #message_bienvenue{
    margin: 10px;
    text-align: center;
    width: 100%;
  }
  
  #bouton_mission{
    margin: 0 auto;
  }
  
  #livraison_chauffeur{
    margin: 0 auto;
    padding-top: 20px;
    width: 90%;
  }
  
  .container-fluid{
    margin-top: 70px !important;
  }

  /* BOUTON */
  .btn-circle.btn-xl {
    position: relative;
    width: 70px;
    border-radius: 45px;
    font-size: 34px;
    padding: 0px;
    margin: 5px
  }
  
  .btn-circle.btn-xl img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
  }
  
  .btn-circle {
    width: 30px;
    height: 30px;
    padding: 6px 0px;
    border-radius: 15px;
    text-align: center;
    font-size: 12px;
    line-height: 1.42857;
    background-color: rgba(255, 255, 255, 0);
  }
  
  .text-button{
    margin-top: 40px;
  }
  
  .text-button label{
    font-size: 11px;
  }
  
  .block-mission{
    text-align: center;
  }
  
  .block-mission label{
      margin-top: 20px;
  }
  
  .btn-1 {
      background-image: url("https://pngimage.net/wp-content/uploads/2018/06/icon-ok-png-2.png");
      background-size: contain;
      background-repeat: no-repeat;
      width: 40px;
      height: 40px;
  }
  
  .btn-2 {
      background-image: url("https://pngimage.net/wp-content/uploads/2018/06/icon-ok-png-2.png");
      background-size: contain;
      background-repeat: no-repeat;
      width: 70px;
      height: 70px;
  }
  
  .btn-3 {
      background-image: url("https://pngimage.net/wp-content/uploads/2018/06/icon-ok-png-2.png");
      background-size: contain;
      background-repeat: no-repeat;
      width: 40px;
      height: 40px;
  }
<!doctype html>
<html lang="fr">

<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
	<meta name="description" content="">
	<meta name="author" content="">
	<link rel="icon" href="">
	<title>Title</title>
	<!-- Bootstrap core CSS -->

	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
	<link rel="stylesheet" href="https://getbootstrap.com/docs/4.0/examples/sign-in/signin.css" integrity="sha384-mKB41Eu6sQQvXR8fqvXcVe8SXodkH6cYtVvHkvLwE7Nq0R/+coO4yJispNYKy9iZ" crossorigin="anonymous">
	<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" 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>
</head>

<body>

	<div class="container-fluid" style="margin-top: 0px !important">
		<form method="post" action="requetes/page.php" role="form" id="formulaire">
		<h3>Créer mission :</h3>
		<hr/>
		<input class="form-control" id="numero_bon" type="number" min="0" name="numero_bon" placeholder="Numéro de bon de livraison" required>
		<hr/>
		<input class="form-control" id="nom_client" name="nom_client" type="text" placeholder="Client" required>
		<hr/>
		<input class="form-control" id="adresse_client" name="adresse_client" type="text" placeholder="Adresse" required>
		<hr/>
		<input class="form-control" id="volume_livraison" type="number" name="volume_livraison" placeholder="M³" pattern="[0-9]+([\.,][0-9]+)?" step="0.01" formnovalidate required>
		<hr/>
		<input class="form-control" id="nom_centrale"type="text" name="nom_centrale" placeholder="Centrale" required>
		<hr/>
		<span class="label label-default">Zone</span>
		<select class="form-control form-control-sm" id="zone" type="text" name="zone">
			<option>1</option>
			<option>2</option>
			<option>3</option>
			<option>4</option>
			<option>5</option>
			<option>6</option>
			<option>7</option>
			<option>8</option>
			<option>9</option>
			<option>10</option>
			<option>11</option>
			<option>12</option>
			<option>13</option>
			<option>14</option>
			<option>15</option>
			<option>16</option>
			<option>17</option>
			<option>18</option>
			<option>19</option>
			<option>20</option>
		</select>
		<hr/>

		<div class="container-fluid" style="margin-top: 0 !important">
			<div class="row d-flex justify-content-around">
				<div class="d-flex flex-column align-items-center block-mission">
          <button class="btn btn-circle btn-small btn-1" id="creer_mission_replacee" name="type_voyage" value="Replacé" type="submit">
          </button>
            <label>Voyage validé replacé</label>
        </div>
				<div class="d-flex flex-column align-items-center block-mission">
					<button class="btn btn-circle btn-small btn-2" id="creer_mission" name="type_voyage" value="Livré" type="submit">
						</button>
						<label>Livraison effectuée validée</label>
				</div>
				<div class="d-flex flex-column align-items-center block-mission">
					<button class="btn btn-circle btn-small btn-3" id="creer_mission_annulee" name="type_voyage" value="Annulé" type="submit">
						</button>
						<label>Voyage annulé</label>
				</div>
			</div>
		</div>
	</form>
	</div>

</body>

</html>

有人可以修复我的代码吗?我不知道该怎么做?解决问题:点击Run code snippet --> Full page --> 将浏览器边框缩小到最小。

【问题讨论】:

标签: html css button bootstrap-4 responsive-design


【解决方案1】:

对于 btn-circle 类使用此代码

.btn-circle {
  width: 40px;
  padding: 0;
  margin: auto;
  height: 40px;
}

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果我正确阅读了您的问题,听起来您不希望按钮失去对齐,因为您希望看到它们在桌面视图中保持在一行中。如果这是真的,那么您可以通过向 '.justify-content-around' 类添加一个属性和值来解决这个问题。

    .justify-content-around {
      flex-wrap: nowrap;
    }

    这是一个非常棒的 flexbox CSS 指南:https://css-tricks.com/snippets/css/a-guide-to-flexbox/

    但是,您可能想要尝试更适合移动设备的按钮对齐方式,这可能会改变一些事情,但也许只是在移动设备视图中稍微缩小按钮也会有所帮助。如果是这种情况,上面 Udayavani 的答案将与我的结合使用,在您希望看到更改的断点处使用媒体查询,如下所示:

    @media (max-width: 768px) {
    
        .btn-circle {
            width: 40px;
            padding: 0;
            margin: auto;
            height: 40px;
        }
    
    }

    以下是媒体查询的参考: https://www.w3schools.com/cssref/css3_pr_mediaquery.asp

    【讨论】:

      【解决方案3】:

      只需将 Bootstrap col 用于连续的每个 div 即可。像这样:

          <div class="container-fluid" style="margin-top: 0 !important">
              <div class="row justify-content-around">
                  <div class="col flex-column align-items-center block-mission">
                      <button class="btn btn-circle btn-small btn-1" id="creer_mission_replacee" name="type_voyage" value="Replacé" type="submit">
        </button>
                      <label>Voyage validé replacé</label>
                  </div>
                  <div class="col flex-column align-items-center block-mission">
                      <button class="btn btn-circle btn-small btn-2" id="creer_mission" name="type_voyage" value="Livré" type="submit">
                      </button>
                      <label>Livraison effectuée validée</label>
                  </div>
                  <div class="col flex-column align-items-center block-mission">
                      <button class="btn btn-circle btn-small btn-3" id="creer_mission_annulee" name="type_voyage" value="Annulé" type="submit">
                      </button>
                      <label>Voyage annulé</label>
                  </div>
              </div>
          </div>
      

      见:https://jsfiddle.net/sugandhnikhil/gkduhbs2/

      【讨论】:

        【解决方案4】:

        如果您仍然希望它们水平对齐,只需删除类“行”,但您可能需要调整按钮文本的大小以使其看起来非常漂亮。

        【讨论】:

          【解决方案5】:

          .parrent_div{display:flex;
          justify-content:center;
          flex-direction:row;
          }
          .button {
          width:100%
          }

          它会根据屏幕分辨率自动对齐您的元素

          【讨论】:

            猜你喜欢
            • 2020-06-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-17
            • 2021-07-23
            相关资源
            最近更新 更多