664 Stimmen

Wie kann ich div-Elemente rechts ausrichten?

Der Textkörper meines Html-Dokuments besteht aus 3 Elementen, einer Schaltfläche, einem Formular und einer Leinwand. Ich möchte, dass die Schaltfläche und das Formular rechtsbündig sind und die Leinwand linksbündig bleibt. Das Problem ist, wenn ich versuche, die ersten beiden Elemente auszurichten, folgen sie nicht mehr einander und sind stattdessen nebeneinander horizontal , hier ist der Code, den ich bisher habe, ich möchte das Formular direkt nach der Schaltfläche auf der rechten Seite ohne Zwischenraum zu folgen.

#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>

9voto

Ali Safari Punkte 1122

Eine Möglichkeit wäre die Festlegung eines übergeordnete Div für die Elemente, die nach rechts gezogen werden müssen, und machen Sie den Rest wie im Beispiel unten gezeigt, um sie rechtsbündig zu machen:

.parent-div {
  display: flex;
  float: right;
}

/*Below: child-div styling is not needed for this purpose! this is just for demonstration:*/

.child-div {
  text-align: center;
  background-color: powderblue;
  margin: auto 10px;
  height: 100px;
  width: 50px;
}

<div class="">CANVAS div </div>
<div class="parent-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>

4voto

anil shrestha Punkte 1143

Wenn Sie Bootstrap verwenden, dann:

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

3voto

Jevon Punkte 265
display: flex;
justify-content: space-between;

wurde nicht erwähnt. Wenn es 2 Elemente gibt (auch wenn eines ein leeres div ist), wird es eines links und eines rechts platzieren.

<div style="display: flex; justify-content: space-between;">
  <div id="emptyDiv"></div>
  <div>I'm on the right</div>
</div>

2voto

Bates550 Punkte 29

Wenn Sie IE9 und darunter nicht unterstützen müssen, können Sie Flexbox verwenden, um dieses Problem zu lösen: codepen

Es gibt auch ein paar Bugs mit IE10 und 11 ( Flexbox-Unterstützung ), aber sie sind in diesem Beispiel nicht vorhanden

Sie können die <button> et le <form> indem sie in einen Behälter mit flex-direction: column . Die Reihenfolge der Elemente in der Quelle wird die Reihenfolge sein, in der sie von oben nach unten angezeigt werden, also habe ich sie neu geordnet.

Sie können dann das Formular und den Schaltflächencontainer horizontal an der Leinwand ausrichten, indem Sie sie in einen Container mit flex-direction: row . Auch hier wird die Reihenfolge der Elemente in der Quelle die Reihenfolge sein, in der sie von links nach rechts angezeigt werden, also habe ich sie neu geordnet.

Außerdem müssten Sie dazu alle position y float Stilregeln aus dem in der Frage verlinkten Code.

Hier ist eine gekürzte Version des HTML-Satzes aus dem oben verlinkten Codepen.

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

Und hier ist das entsprechende CSS

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

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

0voto

Leevansha Punkte 11

Sie können einfach padding-left:60% (z.B.) verwenden, um Ihren Inhalt nach rechts auszurichten und gleichzeitig den Inhalt in einem responsiven Container zu verpacken (in meinem Fall benötigte ich die Navbar) um sicherzustellen, dass es in allen Beispielen funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X