Я создаю форму с помощью dojo и хочу поле ввода чисел с ограниченным диапазоном. Поэтому я использую это:
<input
id = "sample_input"
type = "text"
dojoType = "dijit.form.NumberTextBox"
name = "sample_input"
value = "27"
constraints = "{min:1,max:30,places:0}"
promptMessage = "Enter a value"
required = "true"
invalidMessage = "Invalid value."
/>
Это работает, но оно слишком широкое, а содержимое выровнено по левому краю.
Ни одна из этих строк, добавленных в мой элемент INPUT, похоже, не имеет значения:
width = "60"
text-align = "right"
Это вопрос сам по себе, но это нормально, я знаю, что я должен использовать CSS вместо HTML. Поэтому я добавляю это в раздел HEAD:
<style type="text/css">
.NARROW {width:60px;}
.RIGHT_JUSTIFIED {text-align:right;}
</style>
и это для элемента INPUT:
class = "NARROW RIGHT_JUSTIFIED"
и это решает ширину, но не текстовое обоснование.
Чтобы решить текстовое обоснование, я должен вместо этого сделать:
<style type="text/css">
.NARROW {width:60px;}
input {text-align:right;}
</style>
Указание свойства width
в стиле input
также не работает.
Так что это мой вопрос. Почему в этом случае не работают встроенные стили и почему я должен использовать селектор класса для ширины, а селектор элемента для выравнивания текста? И как я могу предвидеть, когда какой селектор будет применим?