我的html文档的主体由3个元素组成,一个按钮、一个表单和一个画布。我想按钮和形式是右对齐和画布保持左对齐。问题是当我尝试对齐前两个元素时,它们不再相互跟随,而是水平地相互挨着?,这里的代码,我有到目前为止,我想形式遵循直接在右边的按钮之间没有空格。

#cTask { background-color: lightgreen; } #button { position: relative; float: right; } #addEventForm { position: relative; float: right; border: 2px solid #003B62; font-family: verdana; background-color: #B5CFE0; padding-left: 10px; } <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> <script type="text/javascript" src="timeline.js"></script> <link rel="stylesheet" href="master.css" type="text/css" media="screen" /> </head> <body bgcolor="000" TEXT="FFFFFF"> <div id="button"> <button onclick="showForm()" type="button" id="cTask"> Create Task </button> </div> <div id="addEventForm"> <form> <p><label>Customer name: <input></label></p> <p><label>Telephone: <input type=tel></label></p> <p><label>E-mail address: <input type=email></label></p> </form> </div> <div> <canvas id="myBoard" width="600" height="600" style="background:lightgray;"> <p>Your browser doesn't support canvas.</p> </canvas> </div> </body> </html>


你可以创建一个包含表单和按钮的div,然后通过设置float: right;使div向右浮动。


你是说像这样吗?http://jsfiddle.net/6PyrK/1

你可以添加属性float:right和clear:both;到窗体和按钮


浮动是可以的,但是在ie6和ie7中有问题。 我更喜欢在内部div上使用以下方法:

margin-left: auto; 
margin-right: 0;

关于原因,请参阅IE的双边距漏洞。


我知道这是一个旧帖子,但你不能用<div id=xyz align="right">来表示对吗?

你可以用左、中、右来代替右。

在我的网站工作:)


这个问题的其他答案不是很好,因为float:right可以到父div之外(溢出:隐藏为父有时可能会有帮助)和margin-left: auto, margin-right: 0对我来说,在复杂的嵌套div中不起作用(我没有调查为什么)。

我已经发现,对于某些元素text-align: right可以工作,假设当元素和父元素都是内联或内联块时,这可以工作。

注意:text-align CSS属性描述了内联内容(如文本)如何在其父块元素中对齐。Text-align不控制块元素本身的对齐方式,只控制它们的内联内容。

一个例子:

<div style="display: block; width: 80%; min-width: 400px; background-color: #caa;">
    <div style="display: block; width: 100%">
        I'm parent
    </div>
    <div style="display: inline-block; text-align: right; width: 100%">
        Caption for parent
    </div>
</div>

这是一个JS小提琴。


如果你不需要支持IE9及以下版本,你可以使用flexbox来解决这个问题:代码依赖

IE10和11(支持flexbox)也有一些bug,但在本例中不存在

通过使用flex-direction: column将<按钮>和<窗体>包装在容器中,可以垂直对齐它们。元素的源顺序将是它们从上到下显示的顺序,所以我重新排列了它们。

然后,您可以将窗体和按钮容器与画布水平对齐,方法是使用flex-direction: row将它们包装在容器中。同样,元素的源顺序将是它们从左到右显示的顺序,所以我重新排序了它们。

此外,这将要求您从问题中链接的代码中删除所有的位置和浮动样式规则。

下面是上面链接的代码依赖中的HTML删减版。

<div id="mainContainer">
  <div>
    <canvas></canvas>
  </div>
  <div id="formContainer">
    <div id="addEventForm"> 
      <form></form>
    </div>
    <div id="button">
      <button></button>
    </div>
  </div>
</div>

这里是相关的CSS

#mainContainer {
  display: flex;
  flex-direction: row;
} 

#formContainer {
  display: flex;
  flex-direction: column;
}

如果你有多个div,你想并排对齐在父div的右端,设置text-align: right;在父div上。


旧的答案。更新:使用flexbox,现在几乎适用于所有浏览器。

< span style=" font - family:宋体;justify-content: flex-end”> <div>我在右边</div> < / div >

你还可以更花哨,简单地说:

< span style=" font - family:宋体;justify-content:空间”> 左< div > < / div > < div >对< / div > < / div >

和爱好者:

< span style=" font - family:宋体;justify-content:空间”> 左< div > < / div > 中间< div > < / div > < div >对< / div > < / div >


你可以简单地使用padding-left:60% (for ex)来将你的内容向右对齐,同时将内容包装在响应容器中(在我的情况下,我需要导航栏) 确保它在所有例子中都适用。


如果你正在使用bootstrap,那么:

<div class="pull-right"></div>

您可以使用带有flex-grow的flexbox将最后一个元素推到右边。

<div style="display: flex;">
  <div style="flex-grow: 1;">Left</div>
  <div>Right</div>
</div>

简单的答案是:

<div style="text-align: right;">
    anything:
    <select id="locality-dropdown" name="locality" class="cls" style="width: 200px; height: 28px; overflow:auto;">
    </select>
</div>

也许只是:

  margin: auto 0 auto auto;

你可以简单地添加这样的css: (适用于IE11)

< div > <!减去你的元素宽度——> <span style="margin-left: font - family:宋体">对< / span > < / div >


一种方法是为那些需要向右拉的元素设置一个父div,并像下面的例子中显示的那样做其余的事情,使它们向右对齐:

.parent-div { 显示:flex; 浮:正确; } /*下面:child-div样式不需要用于此目的!这只是为了演示:*/ .child-div { text-align:中心; 背景颜色:浅蓝色; Margin: auto 10px; 身高:100 px; 宽度:50 px; } <div class="">CANVAS div </div> . < div class = "父div”> <div class="child-div">child 1</div> <div class="child-div">child 2</div> < div class = " child-div " >…< / div > <div class="child-div">child n</div> < / div >


display: flex;
justify-content: space-between;

没有被提及。如果有2个元素(即使其中一个是空div),它会将一个放在左边,一个放在右边。

< span style=" font - family:宋体;justify-content:之间的空间;" > < div id = " emptyDiv " > < / div > <div>我在右边</div> < / div >


有时float: left会导致设计问题,在这种情况下,你可以像这样使用display flex:

铃声{ 显示:flex; justify-content: flex-end; margin-left:汽车; margin-right: 0; } < div > < div class = "对" >对< / div > < / div >