Der Hauptteil meines HTML-Dokuments besteht aus 3 Elementen, einer Schaltfläche, einem Formular und einer Zeichenfläche. 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, sie nicht mehr aufeinander folgen und stattdessen horizontal nebeneinander liegen. Hier ist der Code, den ich bisher habe. Ich möchte, dass das Formular direkt nach der Schaltfläche rechts folgt ohne Platz dazwischen.
#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="1000" height="600">
<p>Your browser doesn't support canvas.</p>
</canvas>
</div>
</body>
</html>
margin-left: auto;
aber das hat nicht funktioniert, was mich überrascht hat, weil das Element, das ich nach rechts ausrichten möchte, relativ ist.Floats sind in Ordnung, aber problematisch mit IE6 & 7.
Ich würde es vorziehen,
margin-left:auto; margin-right:0;
auf der inneren Div zu verwenden.quelle
0
es gültig ist, aber 0px auch ... argumentieren Sie Ihren Standpunkt, damit wir etwas lernen.display: block;
Alte Antworten. Ein Update: Verwenden Sie Flexbox, funktioniert jetzt so ziemlich in allen Browsern.
Und Sie können einfach noch schicker werden:
Und schicker:
quelle
Andere Antworten auf diese Frage sind nicht so gut, da
float:right
sie außerhalb eines übergeordnetenmargin-left: auto, margin-right: 0
Divs liegen können ( Überlauf: Versteckt für Eltern kann manchmal helfen) und für mich nicht in komplexen verschachtelten Divs gearbeitet haben (ich habe nicht untersucht, warum).Ich habe herausgefunden, dass dies für bestimmte Elemente
text-align: right
funktioniert, vorausgesetzt, dies funktioniert, wenn das Element und das übergeordnete Element beideinline
oder sindinline-block
.Hinweis: Die
text-align
CSS-Eigenschaft beschreibt, wie Inline-Inhalte wie Text in ihrem übergeordneten Blockelement ausgerichtet werden.text-align
steuert nicht die Ausrichtung der Blockelemente selbst, sondern nur deren Inline-Inhalt.Ein Beispiel:
Hier ist eine JS-Geige .
quelle
Meinst du so? http://jsfiddle.net/6PyrK/1
Sie können die Attribute von
float:right
undclear:both;
zum Formular und zur Schaltfläche hinzufügenquelle
Wenn Sie mehrere Divs haben, die am rechten Ende des übergeordneten Div nebeneinander ausgerichtet werden sollen, setzen Sie sie
text-align: right;
auf das übergeordnete Div.quelle
Sie können verwendet werden
flexbox
mitflex-grow
dem letzten Element nach rechts zu schieben.quelle
Wenn Sie IE9 und niedriger nicht unterstützen müssen, können Sie dies mit flexbox lösen: codepen
Es gibt auch einige Fehler mit IE10 und 11 ( Flexbox-Unterstützung ), die in diesem Beispiel jedoch nicht vorhanden sind
Sie können das
<button>
und das vertikal ausrichten,<form>
indem Sie sie in einen Behälter mit einwickelnflex-direction: column
. Die Quellreihenfolge der Elemente ist die Reihenfolge, in der sie von oben nach unten angezeigt werden, sodass ich sie neu angeordnet habe.Sie können dann den Formular- und Schaltflächencontainer horizontal an der Leinwand ausrichten, indem Sie sie in einen Container mit einwickeln
flex-direction: row
. Wieder ist die Quellreihenfolge der Elemente die Reihenfolge, in der sie von links nach rechts angezeigt werden, sodass ich sie neu angeordnet habe.Dies würde auch erfordern, dass Sie alle
position
undfloat
Stilregeln aus dem in der Frage verknüpften Code entfernen .Hier ist eine abgespeckte Version des HTML-Codes im oben verlinkten Codepen.
Und hier ist das relevante CSS
quelle
Einfache Antwort ist hier:
quelle
Sie können einfach padding-left: 60% (zum Beispiel) verwenden, um Ihren Inhalt nach rechts auszurichten und gleichzeitig den Inhalt in einen reaktionsfähigen Container zu verpacken (in meinem Fall benötigte ich eine Navigationsleiste), um sicherzustellen, dass er in allen Beispielen funktioniert.
quelle
Wenn Sie Bootstrap verwenden, dann:
quelle
<div class="text-right"></div>
.Ich weiß, dass dies ein alter Beitrag ist, aber Sie können ihn nicht einfach verwenden
<div id=xyz align="right">
richtig verwenden.Sie können einfach rechts durch links ersetzen, zentrieren und ausrichten.
Arbeitete auf meiner Seite :)
quelle
align
Attribut jetzt veraltet .