ChatGPT解决这个技术问题 Extra ChatGPT

如何让我的 Twitter Bootstrap 按钮右对齐?

我在这里有一个简单的演示:

<ul>
    <li>One <input class="btn pull-right" value="test"></li>
    <li>Two <input class="btn pull-right" value="test2"></li>
</ul>

我有一个无序列表,对于每个列表项,我希望在左侧有文本,然后是右对齐按钮。我曾尝试使用 pull-right 但这完全弄乱了对齐方式。我究竟做错了什么?

  • 一个
  • 两个

为什么这个问题用 twitter-bootstrap-3twitter-bootstrap-2 以及 twitter-bootstrap 标记?
因为它与自 3/2013 以来的所有版本相关

a
aronadaal

pull-right 插入类属性并让引导程序排列按钮。

对于 Bootstrap 2.3,请参阅:http://getbootstrap.com/2.3.2/components.html#misc >助手类 > .拉右。

对于 Bootstrap 3,请参阅:https://getbootstrap.com/docs/3.3/css/#helper-classes >助手类。

对于 Bootstrap 4,请参阅:https://getbootstrap.com/docs/4.0/utilities/float/#responsive

pull-right 命令已删除并替换为 float-right 或一般替换为 float-{sm,md,lg,xl}-{left,right,none}

对于 Boostrap 5,请参阅:https://getbootstrap.com/docs/5.0/utilities/float/

最接近的解决方案是 float-end


我不明白这个答案。在问题中,示例代码已经在使用 pull-right
@guival我想知道同样的事情。 stackoverflow.com/a/26546770/470749 意味着使用 button 而不是 input 会有所作为。
浮动端为我工作
S
Shawn Vader

在 twitter bootstrap 3 中尝试类 pull-right

class="btn pull-right"

不再,从 v 3.1 起已弃用:getbootstrap.com/components/#dropdowns-alignment
+1 用于突出显示更改。但该折旧仅适用于已被 .dropdown-menu-right 取代的下拉菜单。它并没有作为一个整体被弃用。
你是对的,文档说we've deprecated .pull-right on dropdown menus
我不得不在外部 btn-group div 中使用 pull-right:
pull-right 使用 float: right,从而将垂直内容重叠在一起。像这样用 text-right DIV 包裹按钮 -<div class="text-right">button...</div>
C
César León

“pull-right”类可能不是正确的方式,因为 in 使用“float:right”而不是 text-align。

检查 bootstrap 3 css 文件,我在第 457 行找到了“text-right”类。这个类应该是将文本向右对齐的正确方法。

一些代码:对于 Bootstrap 3 & 4

<div class="row">
    <div class="col-xs-12">
        <div class="text-right">
            <button type="button" class="btn btn-default">Default</button>
        </div>
    </div>
</div>

对于引导程序 5

<div class="row">
    <div class="col">
        <div class="text-end">
            <button type="button" class="btn btn-secondary">Default</button>
        </div>
    </div>
</div>

我认为这比 pull-right 更好,因为它可以防止垂直内容相互重叠,并且避免为了解决这个问题而必须添加更多标记。
谢谢你。 “向右拉”的问题在于它会删除按钮的任何边距。这会保持边距,但会将元素向右移动。完美的!
为什么 text-right 必须在包含此按钮的 div 中,而不仅仅是按钮中的 class="btn btn-default text-right"
这对我有用,但现在(引导程序 5)您必须使用 text-end
答案已更新,谢谢!
Z
Zim

2019 年更新 - 引导 4.0.0

pull-right 类现在是 Bootstrap 4 中的 float-right...

    <div class="row">
        <div class="col-12">One <input type="button" class="btn float-right" value="test"></div>
        <div class="col-12">Two <input type="button" class="btn float-right" value="test"></div>
    </div>

http://www.codeply.com/go/nTobetXAwb

最好不要对齐 ul 列表并为行使用块元素。

float-right 仍然不起作用吗?

请记住,Bootstrap 4 现在是 flexbox,并且许多元素都是 display:flex,这会阻止 float-right 工作。在某些情况下,像 align-self-endml-auto 这样的实用程序类可以右对齐 flexbox 容器内的元素,如 Bootstrap 4 .row、Card 或 Nav。

另请记住,text-right 仍然适用于内联元素。

Bootstrap 4 align right examples

引导程序 3

使用 pull-right 类。


他们为我工作,但你不应该依赖这些链接。阅读答案以获取有关如何正确对齐的说明。
J
Jawa

使用 button 标记而不是 input 并使用 pull-right 类。

pull-right 类完全弄乱了您的两个按钮,但您可以通过在右侧定义自定义边距来解决此问题。

<button class="btn btn-primary pull-right btn-sm RbtnMargin" type="button">Save</button>
<button class="btn btn-primary pull-right btn-sm"  type="button">Cancel</button>

然后对类使用以下 CSS

.RbtnMargin { margin-left: 5px; }

y
yuvilio

除了已接受的答案之外,在从引导程序内置填充的容器和列中工作时,我有时会有一个完整的拉伸列,其中包含一个子 div,它会拉动成为要走的路。

<div class="row">
  <div class="col-sm-12">
      <div class="pull-right">
            <p>I am right aligned, factoring in container column padding</p>
      </div>
  </div>
</div>

或者,让所有列加起来等于网格列的总数(默认为 12),同时偏移第一列。

<div class="row">
  <div class="col-sm-4 col-sm-offset-4">
        This content and its sibling..
  </div>
  <div class="col-sm-4">
        are right aligned as a whole thanks to the offset on the first column and the sum of the columns used is the total available (12).
  </div>
</div>

A
Allan Nienhuis

很抱歉回答一个较旧的已经回答的问题,但我想我会指出你的 jsfiddle 不起作用的几个原因,以防其他人检查它并想知道为什么接受的答案中描述的 pull-right 类不不在那里工作。

bootstrap.css 文件的 url 无效。 (也许当你问这个问题时它起作用了)。您应该将属性: type="button" 添加到您的输入元素,否则它不会被呈现为按钮 - 它将被呈现为输入框。更好的是,改用

C
Carl G

使用 Bootstrap pull-right 帮助器对我们不起作用,因为它使用 float: right,即 forces inline-block elements to become block。当 .btn 变为 block 时,它们会失去 inline-block 为它们作为准文本元素提供的自然边距。

因此,我们在父元素上使用了 direction: rtl;,这会导致该元素内的文本从右到左布局,这也会导致 inline-block 元素从右到左布局。您也可以像下面这样使用 LESS 来防止孩子被布置rtl

/* Flow the inline-block .btn starting from the right. */
.btn-container-right {
  direction: rtl;

  * {
    direction: ltr;
  }
}

并像这样使用它:

<div class="btn-container-right">
    <button class="btn">Click Me</button>
</div>

S
Shahriyar Ahmed

Bootstrap 4 中:使用 Flexbox 尝试这种方式。请参阅 getbootstrap 中的文档

<div class="row">
  <div class="col-md">
    <div class="d-flex justify-content-end">
      <button type="button" class="btn btn-default">Example 1</button>
      <button type="button" class="btn btn-default">Example 2</button>
    </div>
  </div>
</div>

E
Esprit1st

对于引导程序 5:

文档:https://getbootstrap.com/docs/5.0/utilities/float/

在元素中使用 .float-end 进行右对齐。如果您将前一个按钮移动到右侧并且不希望后面的元素向上滑动,您可能必须在父元素中添加 .clearfix


n
n1nja

从 v3.1.0 开始,Pull right 已贬值。只是一个抬头。

http://getbootstrap.com/components/#callout-dropdown-pull-right


pull-rightdropdown-menu 上已弃用。它仍然可以用于其他组件。
M
Martin Lindgren

为按钮应用 pull-right 类。 http://getbootstrap.com/css/#helper-classes-floats ->助手类

此链接将有所帮助


f
frianH

现在您需要将 .dropdown-menu-right 添加到现有的 .dropdown-menu 元素。 pull-right 不再受支持。

更多信息在这里http://getbootstrap.com/components/#btn-dropdowns


O
OmniPotens

您可以在引导 CSS 之外尝试自定义 CSS 以查看是否有任何更改。尝试

.move-rigth{
    display: block;
    float: right;
}

如果它有效,那么您可以尝试操纵您拥有的内容或添加其他格式并实现您想要的。因为您正在使用引导程序并不意味着如果它不能为您提供您想要的东西,那么您只需管理它。你正在使用你的代码,所以你命令它按照你说的去做。干杯!


不需要自定义 css,因为其他答案显示所需的一切都包含在引导程序中
@chrisweb 如果您有一些其他插件共享您不知道的相同 CSS 类并且存在冲突问题,您会怎么做?坐下来观看而不是创建自定义 CSS 并继续前进? OP 从未指定是否添加了可能共享相同 css 类的任何其他插件。
u
user889030

您还可以使用空白列在左侧留出空格

喜欢

<div class="row">
    <div class="col-md-8"></div>  <!-- blank space increase or decrease it by column # -->
        <div class="col-md-4">
            <button id="saveedit" name="saveedit" class="btn btn-success">Save</button>
        </div>
</div>

演示 :: Jsfiddle demo


D
DankCoder
<ul>
    <li class="span4">One <input class="btn btn-small" value="test"></li>
    <li class="span4">Two <input class="btn btn-small" value="test2"></li>
</ul>

一种方法是将此样式应用于您的列表项,以使它们保持内联

或者

<ul>
    <li>One <input class="btn" value="test"></li>
    <li>Two <input class="btn" value="test2"></li>
</ul>

在 CSS 中

li {
    line-height: 20px;
    margin: 5px;
    padding: 2px;
}

对我来说,这将两个列表项放在一行
U
Uri Lukach

从 Bootstrap V3.3.1 开始,以下 CSS 样式将解决此问题

.modal-open{
    padding-right: 0 !important;
}

注意:我尝试了上面帖子中的所有建议,并且都解决了旧版本,并且不提供对 newset 引导版本的修复。


M
MRRaja
<p align="right">
<button type="button" class="btn btn-primary">Submit</button>
</p>

如果您可以在代码中附上解释,它将有助于原始海报。
l
larsaars

对于引导程序 5.1.3,属性 float-end 对我有用:

<div class="row mt-2 float-end">
    <div class="col-md-12">
        <button class="btn btn-warning" >Do something else</button>
        <button class="btn btn-primary ml-2">Do primary action</button>
    </div>
</div>

S
Sepas

问题是您将按钮用作列表的一部分。并且由于列表项之间的垂直边距太低而无法将按钮放置在它们之间,因此会弄乱对齐方式。我会将其中一个按钮放在列表顶部,另一个放在它们下方,这样它看起来就像您期望的那样!

<ul>
<input class="btn pull-right" value="test">
<li>One</li> 
<li>Two</li>
<input class="btn pull-right" value="test2"> 
</ul>

V
Volodymyr Petlovy

对于引导程序 4 documentation

  <div class="row justify-content-end">
    <div class="col-4">
      Start of the row
    </div>
    <div class="col-4">
      End of the row
    </div>
  </div>

这与右对齐和按钮有什么关系?
虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高答案的长期价值。您可以在帮助中心找到更多关于如何写出好答案的信息:stackoverflow.com/help/how-to-answer。祝你好运🙂