Тело моего 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="1000" height="600">
<p>Your browser doesn't support canvas.</p>
</canvas>
</div>
</body>
</html>
margin-left: auto;
но это не сработало, что меня удивило, потому что элемент, который я пытаюсь выровнять вправо, относителен.поплавки в порядке, но проблематично с ie6 & 7.
Я бы предпочел использовать
margin-left:auto; margin-right:0;
на внутреннем div.источник
0
это действительно так, но так же, как и 0px ... аргументируй свою точку зрения, чтобы мы кое-что узнали.display: block;
Старые ответы. Обновление: используйте flexbox, теперь он работает практически во всех браузерах.
И вы можете стать еще более привлекательным, просто:
И любитель:
источник
Другие ответы на этот вопрос не так хороши, так как
float:right
могут выходить за пределы родительского div (иногда может помочь переполнение: скрытый для parent) иmargin-left: auto, margin-right: 0
для меня не работал в сложных вложенных div (я не исследовал почему).Я выяснил, что для определенных элементов
text-align: right
работает, предполагая, что это работает, когда элемент и родитель обаinline
илиinline-block
.Примечание.
text-align
Свойство CSS описывает, как встроенное содержимое, например текст, выравнивается в элементе родительского блока.text-align
не контролирует выравнивание самих элементов блока, только их встроенное содержимое.Пример:
Вот JS Fiddle .
источник
Вы имеете в виду, как это? http://jsfiddle.net/6PyrK/1
Вы можете добавить атрибуты
float:right
иclear:both;
к форме и кнопкеисточник
Если у вас есть несколько div, которые вы хотите выровнять рядом с правым концом родительского div, установите
text-align: right;
родительский div.источник
Вы можете использовать
flexbox
с,flex-grow
чтобы толкнуть последний элемент вправо.источник
Если вам не нужна поддержка IE9 и ниже, вы можете использовать flexbox для решения этой проблемы: codepen
Также есть несколько ошибок с IE10 и 11 ( поддержка flexbox ), но их нет в этом примере
Вы можете выровнять
<button>
и вертикально<form>
, оборачивая их в контейнер сflex-direction: column
. Исходным порядком элементов будет порядок, в котором они отображаются сверху вниз, поэтому я изменил их порядок.Затем вы можете горизонтально выровнять контейнер формы и кнопки с холстом, обернув их в контейнер с помощью
flex-direction: row
. Опять же, исходный порядок элементов будет в том порядке, в котором они отображаются слева направо, поэтому я изменил их порядок.Кроме того, для этого потребуется удалить все правила
position
иfloat
правила стиля из кода, указанного в вопросе.Вот урезанная версия HTML-кода в коде, указанном выше.
А вот соответствующий CSS
источник
Простой ответ здесь:
источник
Вы можете просто использовать padding-left: 60% (например), чтобы выровнять контент по правому краю и одновременно обернуть контент в адаптивный контейнер (в моем случае я использовал navbar), чтобы убедиться, что он работает во всех примерах.
источник
Если вы используете загрузчик, то:
источник
<div class="text-right"></div>
.Я знаю, что это старый пост, но вы не могли бы просто использовать его
<div id=xyz align="right">
правильно.Вы можете просто заменить правое на левое, центрировать и выровнять.
Работал на моем сайте :)
источник
align
атрибут теперь устарел .