Вы можете использовать медиазапрос, чтобы отобразить кнопку в строке с вводом текста для экранов большей ширины и показать текстовое поле над кнопкой отправки для экранов меньшей ширины:
form .ui-input-text {
display : inline-block;
width : 65%;
vertical-align : middle;
}
form > .ui-btn {
display : inline-block;
width : 25%;
vertical-align : middle;
}
@media all and (max-width:480px) {
form .ui-input-text {
width : 100%;
}
form > .ui-btn {
width : 100%;
}
}
Вот демоверсия: http://jsfiddle.net/fmJGR/
Я использую классы, добавленные jQuery Mobile, для нацеливания на элементы, это особенно полезно для работы с кнопкой отправки, поскольку ее HTML-структура после инициализации jQuery Mobile не похожа на перинициализированный элемент.
Вот то, во что превращается HTML-код кнопки отправки после того, как jQuery Mobile его инициализирует:
<div data-theme="c" class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" aria-disabled="false">
<span class="ui-btn-inner ui-btn-corner-all" aria-hidden="true">
<span class="ui-btn-text">Add</span>
<span class="ui-icon ui-icon-plus ui-icon-shadow"></span>
</span>
<input type="submit" value="Add" data-icon="plus" data-type="button" class="ui-btn-hidden" aria-disabled="false">
</div>
Если вы хотите поддерживать IE7, вам нужно добавить следующий код, потому что IE7 не понимает display : inline-block
:
form .ui-input-text {
display : inline-block;
width : 65%;
vertical-align : middle;
/*Fix for IE7*/
*display : inline;
zoom : 1;
}
form > .ui-btn {
display : inline-block;
width : 25%;
vertical-align : middle;
/*Fix for IE7*/
*display : inline;
zoom : 1;
}