【问题标题】:btn not getting vertically aligned in the middlebtn 没有在中间垂直对齐
【发布时间】:2019-08-12 05:43:49
【问题描述】:

我正在尝试将按钮垂直居中,但我尝试过的任何方法似乎都没有效果

设置要显示的 div 元素:inline-block;以及包含文本对齐输入元素的标签元素:中心。还尝试将 vertical-align:middle 应用于 div 和标签。

html

<div class="card">
    <div class="card-header panel-heading">
        <span style="font-size: 18px; font-weight: bold; ">Firm Details</span>
        <div class="pull-right" style="padding-right:10px; display: inline-block;">
            <label style="text-align: center; vertical-align:middle" class="btn btn-primary" [ngClass]="{'btn-primary': EditMode, 'btn-default': !EditMode }"><input  
                    type="checkbox" [(ngModel)]="EditMode" class="hidden">Edit Mode</label>

        </div>
    </div>

css

.btn-primary {
  color: #fff;
  background-color: #ee6e0b;
  border-color: #d6630a;
}

.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #bd5809;
  border-color: #5c2a04;
}

.btn-primary:hover {
  color: #fff;
  background-color: #bd5809;
  border-color: #9b4807;
}

.btn-primary:active,
.btn-primary.active,
.open > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #bd5809;
  border-color: #9b4807;
}

.btn-primary:active:hover,
.btn-primary:active:focus,
.btn-primary:active.focus,
.btn-primary.active:hover,
.btn-primary.active:focus,
.btn-primary.active.focus,
.open > .btn-primary.dropdown-toggle:hover,
.open > .btn-primary.dropdown-toggle:focus,
.open > .btn-primary.dropdown-toggle.focus {
  color: #fff;
  background-color: #9b4807;
  border-color: #5c2a04;
}

应用弹性

没有弹性

【问题讨论】:

  • 如果不在开发控制台中检查,就很难告诉您问题出在哪里。如果您使用的是引导程序,您可以获得您正在使用的示例。你能提供什么吗?
  • 如果您使用的是引导程序 4,则不需要使用 vertical-align:middle,因为它已经在 .btn 类中。
  • @adil 使用了 post 'pull-right' 类,它不是 bootstrap 4,而是较低版本的 bootstrap 4
  • 最好的选择是使用 ,display flex , Justify-content:space-between , align-items:center

标签: html css


【解决方案1】:

你可以在这里试试这个代码:

您的代码包含一个浮动元素,该元素对父高度的影响,这意味着浮动元素不会扩展父高度,因此,当您将元素 floadt 向右或向左时,父级使用 clear both 或 bootstrap 使用 clearfix类。

在这里使用 flexbox 很容易解决我的代码编辑表单:

.panel-heading {
  background: orange;
  overflow: hidden;
  /*display:flex;
  align-items: center;
  justify-content: space-between;*/
   padding-top: 5px !important;
    padding-bottom: 5px  !important;
}
.panel-heading .left-label {
  display: inline-block;
  padding-top: 5px;
}
.btn-primary {
  color: #fff;
  background-color: #ee6e0b;
  border-color: #d6630a;
}

.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #bd5809;
  border-color: #5c2a04;
}

.btn-primary:hover {
  color: #fff;
  background-color: #bd5809;
  border-color: #9b4807;
}

.btn-primary:active,
.btn-primary.active,
.open > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #bd5809;
  border-color: #9b4807;
}

.btn-primary:active:hover,
.btn-primary:active:focus,
.btn-primary:active.focus,
.btn-primary.active:hover,
.btn-primary.active:focus,
.btn-primary.active.focus,
.open > .btn-primary.dropdown-toggle:hover,
.open > .btn-primary.dropdown-toggle:focus,
.open > .btn-primary.dropdown-toggle.focus {
  color: #fff;
  background-color: #9b4807;
  border-color: #5c2a04;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<div class="card">
    <div class="card-header panel-heading" >
        <span class="left-label" style="font-size: 18px; font-weight: bold; ">Firm Details</span>
        <div class="pull-right" style="padding-right:10px; display: inline-block; vertical-align:middle">
            <label style="text-align: center; vertical-align:middle" class="btn btn-primary" [ngClass]="{'btn-primary': EditMode, 'btn-default': !EditMode }">
            <input type="checkbox" [(ngModel)]="EditMode" class="hidden">Edit Mode</label>
        </div>
    </div>

【讨论】:

  • 请解释此代码的目的或区别,以便提供答案。
  • 我之前有 display:flex,虽然它居中,但它增加了我不想要的面板的高度。
  • @tom 还有你了解更多关于 flexbox css-tricks.com/snippets/css/a-guide-to-flexbox
  • 实际上,您的元素面板标题包含填充顶部和底部都是 10px 填充。所以你的按钮高度和面板 10+10 =20px 是实际高度。它没有扩大或没有额外的高度。
  • 为什么当我评论 display:flex; ,它降低了高度。我的意思是我不想要那个额外的高度。
猜你喜欢
  • 1970-01-01
  • 2017-07-27
  • 2018-12-26
  • 2013-02-25
  • 2018-01-21
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
  • 2016-12-13
相关资源
最近更新 更多