J'ai un problème apparemment facile à résoudre, mais je me bats. Comment aligner ces deux entrées à droite du formulaire sans utiliser l'élément BR?
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
form {
text-align: right;
}
input {
width: 100px;
}
</style>
</head>
<body>
<form>
<input name="declared_first" value="above" />
<br/> <!-- I want to get rid of this -->
<input name="declared_second" value="below" />
</form>
</body>
</html>
Je veux juste que la première entrée apparaisse au-dessus de la deuxième, toutes les deux du côté droit.
Vous pouvez utiliser flottant à droite et les effacer.
form {
overflow: hidden;
}
input {
float: right;
clear: both;
}
<form>
<input name="declared_first" value="above" />
<input name="declared_second" value="below" />
</form>
Vous pouvez également définir une variable direction
de droite à gauche sur le parent et restaurer la valeur par défaut de gauche à droite sur les entrées. Avec display: block
, vous pouvez les forcer à être sur des lignes différentes.
form {
direction: rtl;
}
input {
display: block;
direction: ltr;
}
<form>
<input name="declared_first" value="above" />
<input name="declared_second" value="below" />
</form>
Ou de la manière moderne, mise en page flexbox
form {
display: flex;
flex-direction: column;
align-items: flex-end;
}
<form>
<input name="declared_first" value="above" />
<input name="declared_second" value="below" />
</form>
Essayez d'utiliser ceci:
<html>
<body>
<input type="text" style="direction: rtl;" value="1">
<input type="text" style="direction: rtl;" value="10">
<input type="text" style="direction: rtl;" value="100">
</body>
</html>
input { float: right; clear: both; }
Essaye ça:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
p {
text-align: right;
}
input {
width: 100px;
}
</style>
</head>
<body>
<form>
<p>
<input name="declared_first" value="above" />
</p>
<p>
<input name="declared_second" value="below" />
</p>
</form>
</body>
</html>
Utilisez des balises pour aligner l’élément d’entrée. Alors
<form>
<div>
<input>
<br />
<input>
</div>
</form>
.mydiv
{
width: 500px;
height: 250px;
display: table;
text-align: right;
}
Pour affecter UNIQUEMENT les zones de saisie de type de texte, utilisez le sélecteur d'attribut.
input [type = "text"]
De cette façon, cela n'affectera pas les autres entrées et seulement les entrées de texte.
https://www.w3schools.com/css/css_attribute_selectors.asp
par exemple, utilisez un div et donnez-lui une idée de référence:
#divEntry input[type="text"] {
text-align: right;}
Essayez d'utiliser ceci:
input {
clear: both;
float: right;
margin-bottom: 10px;
width: 100px;
}
J'ai répondu à cette question dans un article de blog: https://wscherphof.wordpress.com/2015/06/17/right-align-form-elements-with-css/ Il fait référence à ce violon: https://jsfiddle.net/wscherphof/9sfcw4ht/9/
Spoiler: float: right;
est la bonne direction, mais il faut juste un peu plus d’attention pour obtenir des résultats nets.