DOM new node размещение
Привет js'ерам!
Мне очень интересно решение следующей задачи: Допустим у нас существует какая-то форма с известным id. К примеру такая:
<div id="overlay">
<div>
<form id = 'forma' method=" " action=" ">
<input type='file'/>
<input id= 'ok'type='button' value='OK'/>
</form>
</div>
</div>
Нужно ее динамически заполнить различными элементами(button, radio, text,etc.) Для заполнения я воспользовался следующим:
var input = document.createElement("input");
input.setAttribute("type", "button");
input.setAttribute("value", "wow!");
forma.appendChild(input);
Но таким способом кнопка добавляется "в конец", а необходимо, чтобы она добавлялась в определенной позиции на форму, например на расстоянии 30px от нижней границы формы. Я пробовал input.style.position = 'inherit'; input.style.bottom = '20px'; Но результат меня не обрадовал. Буду рад опробовать ваши идеи. P.S.: может быть ошибся темой.. вроде бы вопрос интерфейса, но и DOM тут замешан. |
так это вопрос по верстке. Попробуй либо margin-bottom для кнопки, либо padding-bottom для формы, без всяких position, bottom
и что значит динамически заполнить? Сразу после загрузки страницы? Тогда на сервере это делать надо |
динамически.. да, после загрузки, в зависимости от каких-то событий удаляем из формы элементы и заполняем её неким количеством новых (разных по типу) элементов, возможно на самой форме тоже будут кнопки для создания текстовых полей и проч.
Все что вы тут наговорили для меня малоинформативно.. если на padding-bottom я еще могу построить ассоциацию CSS. (слабо представляю решение, но попробую), то о серверной стороне я вообще пока ничего не знаю. Я думаю, в моем случае добавление/удаление элементов через DOM - это 100% клиент. Но я еще нуб и чаще знаю "как проще", а не как "надо". Что там с сервером? |
значит не на сервере
|
Попробовал менять:
-padding у формы в css -input.style-margin-left = '10px'
input.setAttribute('style','margin-left:20px; margin-top:10px')
Последнее помогло размещать элементы относительно друг друга, но все-таки позиционирование относительно границ формы было бы понятней и проще, спасибо. |
как же проще, если до сих пор не получилось? Не знаю, что там за форма, но отступы между элементами логичнее регулировать с помощью отступов
setAttribute редко используется, обычно input.style.marginLeft = '20px'... |
Тогда уж лучше
input.style.cssText="margin-left:20px; margin-top:10px" |
| Часовой пояс GMT +3, время: 16:18. |