Это происходит из-за этого:
.controls-row [class*="span"]+[class*="span"] {
margin-left: 20px;
}
будет применяться Это свойство только если элемент с классом, содержащим слово span
, перед которым предшествует другой элемент, содержащий это же слово и находящийся внутри объекта с классом controls-row
.
(http://www.w3.org/TR/CSS21/selector.html#adjacent-selectors)
Это работает при загрузке страницы:
<div class="controls controls-row">
<input type="text" name="email" id="inputEmail" placeholder="Email" class="span3">
<input type="password" name="password" id="inputEmail" placeholder="Password" class="span2">
</div>
Но как только вы вызываете машинописный, добавляется новый HTML элемент:
<div class="controls controls-row">
<input type="text" name="email" id="inputEmail" placeholder="Email" class="span3">
<ul class="typeahead dropdown-menu" style="top: 90px; left: 210px; display: none;">
<li data-value="gmail.com" class="active"><a href="#">gmail.com</a></li>
</ul>
<input type="password" name="password" id="inputEmail" placeholder="Password" class="span2">
</div>
</div>
Вы можете это исправить добавив в ваш css что-то вроде:
@media (min-width: 768px) {
#inputPassword {
margin-left: 20px;
}
}
См для рабочего примера: http://jsfiddle.net/wcQKP/2/
Примечание: Я изменил идентификатор для ввода пароля от inputEmail
к
Очень здорово, спасибо! –
'@media (min-width: 768px) {#password {margin-left: 20px}} @media (min-width: 1200px) {#password {margin-left: 30px}} ' –
ЗДЕСЬ КОНЕЦ -Все ОТВЕТ: '@media (мин-ширина: 768px) { .controls-строка * + [класс = "диапазон"] { Запас левого: 20px }} @media (мин-ширина: 1200px) { .controls-row * + [класс * = "span"] { margin-left: 30px } } ' –