2013-04-19 3 views
1

Я пытаюсь горизонтально и вертикально центрировать это поле ввода внутри контейнера (зеленый ящик)Как вертикально и горизонтально центрировать это поле ввода в контейнере

Есть ли способ сделать это без техники CSS3 Flexbox?

Все, что я пробовал, включая обычные методы центрирования, маржу и авто, а позиционирование не работает.

Ну, проблема с позиционированием в том, что она действительно работает, но должен быть лучший способ ее перемещения.

Любые идеи?

Вот страница: https://dl.dropboxusercontent.com/u/270523/help/new.html

Я пытаюсь центрирование входа с #searchInput ид

+0

вы можете поместить его в таблицу и использовать 'вертикальным align' на элементе тд – VoidKing

+0

ну, я думаю, вертикальные выравнивания является должен работать с встроенными элементами, а не только с td, но это единственный раз, когда я смог успешно их отобразить. – VoidKing

+0

А, я стараюсь не использовать таблицы. Но спасибо. –

ответ

2

Добавить position: relative в контейнер раздела, а затем использовать абсолютное позиционирование для вертикального выравнивания по центру поля ввода с помощью отрицательный запас половины высоты входного:

#input { 
    position: relative; 
} 

#searchInput { 
    position: absolute; 
    top: 50%; 
    margin-top: -0.809rem; 
} 
+0

lol, почему REM? – iConnor

+0

@Connor Я не знал об этом блоке позиционирования до сегодняшнего дня, но поскольку они используют rem как единицу измерения для поля ввода, это казалось подходящим –

+0

см. Http://snook.ca/archives/html_and_css/font- size-with-rem для получения дополнительной информации о rem –

0

Вы можете сделать что-то вроде этого:

<div style="display:table;"> 
    <div style="display:table-cell;vertical-align:middle;text-align:center;">centered box</div> 
</div> 

JSFiddle: http://jsfiddle.net/V8GUn/

-1

Попробуйте добавить это в ваш код

#searchInput { margin-top: 5px; } 
Смежные вопросы