Le corps de mon document html se compose de 3 éléments, un bouton, un formulaire et un canevas. Je veux que le bouton et le formulaire soient alignés à droite et la toile à gauche. Le problème est que lorsque j'essaie d'aligner les deux premiers éléments, ils ne se suivent plus et sont à côté l'un de l'autre horizontalement ?, voici le code que j'ai jusqu'à présent, je veux que le formulaire suive directement après le bouton à droite sans espace entre les deux.
#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;
mais cela n'a pas fonctionné, ce qui m'a surpris car l'élément que j'essaie d'aligner à droite est relatif.les flotteurs sont ok, mais problématiques avec ie6 & 7.
je préfère utiliser
margin-left:auto; margin-right:0;
sur le div intérieur.la source
0
c'est valable, mais 0px l'est aussi ... argumentez votre point pour que nous apprenions quelque chose.display: block;
Anciennes réponses. Une mise à jour: utilisez flexbox, fonctionne à peu près dans tous les navigateurs maintenant.
Et vous pouvez devenir encore plus chic, simplement:
Et plus amateur:
la source
Les autres réponses à cette question ne sont pas aussi bonnes car
float:right
peuvent aller en dehors d'un div parent (débordement: caché pour le parent peut parfois aider) etmargin-left: auto, margin-right: 0
pour moi ne fonctionnait pas dans les div complexes imbriqués (je n'ai pas cherché pourquoi).J'ai compris que pour certains éléments
text-align: right
, cela fonctionne, en supposant que cela fonctionne lorsque l'élément et le parent sont à la foisinline
ouinline-block
.Remarque: la
text-align
propriété CSS décrit comment le contenu en ligne comme le texte est aligné dans son élément de bloc parent.text-align
ne contrôle pas l'alignement des éléments de bloc lui-même, mais uniquement leur contenu en ligne.Un exemple:
Voici un JS Fiddle .
la source
Voulez-vous dire comme ça? http://jsfiddle.net/6PyrK/1
Vous pouvez ajouter les attributs de
float:right
etclear:both;
au formulaire et au boutonla source
Si vous avez plusieurs divisions que vous souhaitez aligner côte à côte à l'extrémité droite de la division parent, définissez-la
text-align: right;
sur la division parent.la source
Vous pouvez utiliser
flexbox
avecflex-grow
pour pousser le dernier élément vers la droite.la source
Si vous n'avez pas à prendre en charge IE9 et ci-dessous, vous pouvez utiliser flexbox pour résoudre ce problème: codepen
Il y a aussi quelques bugs avec IE10 et 11 ( support flexbox ), mais ils ne sont pas présents dans cet exemple
Vous pouvez aligner verticalement le
<button>
et le<form>
en les enveloppant dans un conteneur avecflex-direction: column
. L'ordre source des éléments sera l'ordre dans lequel ils sont affichés de haut en bas, je les ai donc réorganisés.Vous pouvez ensuite aligner horizontalement le conteneur de formulaire et de bouton sur la toile en les enveloppant dans un conteneur avec
flex-direction: row
. Encore une fois, l'ordre source des éléments sera l'ordre dans lequel ils sont affichés de gauche à droite, je les ai donc réorganisés.En outre, il faudrait que vous supprimez tous
position
et desfloat
règles de style à partir du code lié à la question.Voici une version réduite du HTML dans le codepen lié ci-dessus.
Et voici le CSS pertinent
la source
La réponse simple est ici:
la source
Vous pouvez simplement utiliser padding-left: 60% (par exemple) pour aligner votre contenu à droite et envelopper simultanément le contenu dans un conteneur réactif (j'avais besoin de la barre de navigation dans mon cas) pour vous assurer qu'il fonctionne dans tous les exemples.
la source
Si vous utilisez le bootstrap, alors:
la source
<div class="text-right"></div>
.Je sais que c'est un ancien poste, mais ne pourriez-vous pas simplement utiliser
<div id=xyz align="right">
à bon .Vous pouvez simplement remplacer la droite par la gauche, centrer et justifier.
A travaillé sur mon site :)
la source
align
attribut est désormais obsolète .