Нет недостатка в вопросах и ответах по поводу центрирования, но я не смог заставить его работать, учитывая мои конкретные обстоятельства, которые включают плавание.
Я хочу центрировать контейнер DIV, который содержит три всплывающих элемента ввода (кнопка разделения, текст, флажок), чтобы при изменении размера моей страницы они выглядели так:
||.....[ ][v] [ ] [ ] label .....||
к этому
||......................[ ][v] [ ] [ ] label.......................||
Они хорошо плавают, но когда страница становится шире, они остаются слева:
||.....[ ][v] [ ] [ ] label .......................................||
Если я удаляю число с плавающей точкой так, чтобы входные элементы были сложены, а не рядом:
[ ][v]
[ ]
[ ] label
тогда они действительно центрируются правильно при изменении размера страницы. Так что это float, применяемый к элементам DIV # hbox внутри контейнера, который портит центрирование. Разве то, что я хочу сделать, невозможно из-за того, как float предназначен для работы?
Вот мой DOCTYPE, и разметка действительно проверяется на w3c:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Вот моя разметка:
<div id="term1-container">
<div class="hbox">
<div>
<button id="operator1" class="operator-split-button">equals</button>
<button id="operator1drop">show all operators</button>
</div>
<div><input type="text" id="term1"></input></div>
<div><input type="checkbox" id="meta2"></input><label for="meta2" class="tinylabel">meta</label></div>
</div>
</div>
А вот (неработающий) CSS:
#term1-container {text-align: center}
.hbox {margin: 0 auto;}
.hbox div {float:left; }
Я также пытался применить display: inline-block к плавающей кнопке, вводу текста и флажку; и хотя я думаю, что это применимо только к тексту, я также попытался применить пробел: nowrap к DIV # term1-container, основываясь на сообщениях, которые я видел здесь на SO.
И чтобы быть чуть более полным, вот jQuery, который создает кнопку разделения:
$(".operator-split-button").button().click( function() {
alert( "foo" );
}).next().button( {
text: false,
icons: {
primary: "ui-icon-triangle-1-s"
}
}).click( function(){positionOperatorsMenu();} )
})