如何在输入中对齐文本?


208

对于所有默认输入,您要填充的文本从左侧开始。您如何使它从右边开始?


2
这是为了更改字段以与从右到左语言兼容?
S. Albano

输入{text-align:right; }
Rasika

Answers:


327

在CSS中使用text-align属性:

input { 
    text-align: right; 
}

这将在页面的所有输入中生效。
否则,如果只想对齐一个输入的文本,请设置内联样式:

<input type="text" style="text-align:right;"/> 

24

在您的CSS中尝试一下:

input {
text-align: right;
}

要将文本居中对齐:

input {
text-align: center;
}

但是,应将其左对齐,因为这是默认设置-似乎对用户最友好。



9

此处接受的答案是正确的,但我想添加一些信息。如果您正在使用引导程序之类的库/框架,则可能为此内置了类。例如,引导程序使用text-right该类。像这样使用它:

<input type="text" class="text-right"/> 
<input type="number" class="text-right"/>

注意,这也适用于其他输入类型,例如上面显示的数字。

如果您没有使用引导程序之类的好框架,则可以自己创建此帮助程序类的版本。与其他答案类似,但我们不会将其直接添加到输入类中,因此它不会应用于您的网站或页面上的每个输入,这可能不是您期望的行为。因此,这将创建一个简单易用的CSS类,以使内容正确对齐,而无需内联样式或影响每个输入框。

.text-right{
    text-align: right;
}

现在,您可以使用与上述输入完全相同的类class="text-right"。我知道并不会节省很多按键,但是可以使您的代码更整洁。


3

如果要在文本失去焦点后使其与右侧对齐,可以尝试使用方向修饰符。失去焦点后,这将显示文本的右侧。例如,如果要在大路径中显示文件名,则很有用。

input.rightAligned {
  direction:ltr;
  overflow:hidden;
}
input.rightAligned:not(:focus) {
  direction:rtl;
  text-align: left;
  unicode-bidi: plaintext;
  text-overflow: ellipsis;
}
<form>
    <input type="text" class="rightAligned" name="name" value="">
</form>

当前不支持选择器:浏览器支持


0

@ Html.TextBoxFor(model => model.IssueDate,new {@class =“ form-control”,name =“ inv_issue_date”,id =“ inv_issue_date”,标题=“ Select Invoice Issue Date”,占位符=“ dd / mm / yyyy“,样式=” text-align:center;“})


-5

没有CSS:使用文本输入的STYLE属性

STYLE =“ text-align:right;”


11
这仍然是CSS,只是内联CSS。
马丁·汉森

2
Style属性用于创建内联CSS。该代码text-align:right绝对是CSS。
罗恩
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.