右键对齐放置按钮

Sou*_*rav 205 html css

我使用此代码右键对齐按钮.

<p align="right">
  <input type="button" value="Click Me" />
</p>
Run Code Online (Sandbox Code Playgroud)

但是P标签浪费了一些空间,所以希望用span或div来做同样的事情.

mu *_*ort 367

您使用哪种对齐技术取决于您的具体情况,但基本技术是float: right;:

<input type="button" value="Click Me" style="float: right;">
Run Code Online (Sandbox Code Playgroud)

您可能希望清除浮动,但可以overflow:hidden在父容器上执行,也可以在容器<div style="clear: both;"></div>底部显式执行.

例如:http://jsfiddle.net/ambiguous/8UvVg/

浮动元素从正常的文档流中删除,因此它们可以溢出父级的边界并弄乱父级的高度,clear:bothCSS会处理它(如同overflow:hidden).使用我添加的JSFiddle示例来看看浮动和清除行为如何(overflow:hidden尽管你会想放弃第一个).


Gün*_*ena 29

另一种可能性是使用面向右侧的绝对定位:

<input type="button" value="Click Me" style="position: absolute; right: 0;">
Run Code Online (Sandbox Code Playgroud)

这是一个例子:https://jsfiddle.net/a2Ld1xse/

这个解决方案有其缺点,但有一些用例非常有用.


pha*_*sal 23

<div style = "display: flex; justify-content:flex-end">
    <button>Click me!</button>
</div>
Run Code Online (Sandbox Code Playgroud)

<div style = "display: flex; justify-content: flex-end">
    <button>Click me!</button>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 为您的答案提供更多背景信息将会很有用。 (3认同)

ran*_*ibt 10

正如@günther-jena所指出的,这个解决方案取决于Bootstrap 3

试试<a class="btn text-right">Call to Action</a>.这样,您不需要额外的标记或规则来清除浮动元素.


Aka*_*ash 9

如果按钮是唯一elementblock

.border {
  border: 2px blue dashed;
}

.mr-0 {
  margin-right: 0;
}
.ml-auto {
  margin-left:auto;
}
.d-block {
  display:block;
}
Run Code Online (Sandbox Code Playgroud)
<p class="border">
  <input type="button" class="d-block mr-0 ml-auto" value="The Button">
</p>
Run Code Online (Sandbox Code Playgroud)

如果有其他 elementsblock

.border {
  border: 2px indigo dashed;
}

.d-table {
  display:table;
}

.d-table-cell {
  display:table-cell;
}

.w-100 {
  width: 100%;
}

.tar {
  text-align: right;
}
Run Code Online (Sandbox Code Playgroud)
<div class="border d-table w-100">
  <p class="d-table-cell">The paragraph.....lorem ipsum...etc.</p>
  <div class="d-table-cell tar">
    <button >The Button</button>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

flex-box

.flex-box {
  display:flex;
  justify-content:space-between;
  outline: 2px dashed blue;
}

.flex-box-2 {
  display:flex;
  justify-content: flex-end;
  outline: 2px deeppink dashed;
}
Run Code Online (Sandbox Code Playgroud)
<h1>Button with Text</h1>
<div class="flex-box">
<p>Once upon a time in a ...</p>
<button>Read More...</button>
</div>

<h1>Only Button</h1>
<div class="flex-box-2">
  <button>The Button</button>
</div>

<h1>Multiple Buttons</h1>
<div class="flex-box-2">
  <button>Button 1</button>
  <button>Button 2</button>
</div>
Run Code Online (Sandbox Code Playgroud)

祝好运...

  • `margin-left:auto` 太棒了!`!important` 是最糟糕的,它会在将来引起问题。 (2认同)
  • 这个答案比它得到的荣誉要好......只是不要使用!重要 (2认同)
  • 是的,弹性盒子非常棒。 (2认同)

Tom*_*ito 7

要将按钮保持在页面流中:

<input type="button" value="Click Me" style="margin-left: auto; display: block;" />
Run Code Online (Sandbox Code Playgroud)

(将该样式放在 .css 文件中,不要使用此 html 内联,以便更好地维护)


Dre*_*ADH 7

2019年使用flex-box的现代方法

div标签

<div style="display:flex; justify-content:flex-end; width:100%; padding:0;">
    <input type="button" value="Click Me"/>
</div>
Run Code Online (Sandbox Code Playgroud)

带有跨度标签

<span style="display:flex; justify-content:flex-end; width:100%; padding:0;">
    <input type="button" value="Click Me"/>
</span>
Run Code Online (Sandbox Code Playgroud)


小智 5

另一种可能性是使用面向右侧的绝对定位。你可以这样做:

style="position: absolute; right: 0;"
Run Code Online (Sandbox Code Playgroud)

  • 当然,但如果有一个父`div`,这将强调忽略它的限制。 (2认同)

sch*_*ebe 5

它并不总是那么简单,有时对齐必须在容器中定义,而不是在Button元素本身中定义!

对于您的情况,解决方案是

<div style="text-align:right; width:100%; padding:0;">
    <input type="button" value="Click Me"/>
</div>
Run Code Online (Sandbox Code Playgroud)

我已谨慎指定width=100%以确保<div>占据其容器的整个宽度。

我还添加padding:0了避免与<p>元素之前和之后的空格。

我可以说如果<div>在FSF / Primefaces表的页脚中定义,float:right则不能正常工作,因为Button的高度将变得高于页脚的高度!

在这种Primefaces情况下,唯一可接受的解决方案是text-align:right在容器中使用。

使用此解决方案,如果您有6个要在右侧对齐的按钮,则只能在容器中指定此对齐方式:-)

<div style="text-align:right; width:100%; padding:0;">
    <input type="button" value="Click Me 1"/>
    <input type="button" value="Click Me 2"/>
    <input type="button" value="Click Me 3"/>
    <input type="button" value="Click Me 4"/>
    <input type="button" value="Click Me 5"/>
    <input type="button" value="Click Me 6"/>
</div>
Run Code Online (Sandbox Code Playgroud)