Каков наилучший способ использования встроенного CSS для позиционирования элементов вокруг блока, заданного внешней таблицей стилей?
Как указать позицию для сгенерированной формы части этой страницы, а затем использовать встроенный CSS для размещения элементов вокруг нее? https://org2.democracyinaction.org/o/6351/p/salsa/event/common/public/?event_KEY=50926
Наше временное решение, состоящее из полусыры, использует несколько элементов Absolute. К сожалению, они работают по-разному в разных браузерах и особенно плохо работают на мобильных устройствах (что приводит к переполнению и прокрутке элементов страницы).
Вот мое дополнение к внешней таблице стилей, чтобы переместить сгенерированное поле регистрации вверх и влево:
#regForm {width: 400px; position:absolute; clear:left; top:315px; }
Вот мои встроенные попытки расположить элементы div вокруг него:
<div> top element (quotes)
</div>
<div style="height:2400px"></div>
//I put this in to keep the bottom page border from overlapping the absolute divs
<div style="position: absolute; top: 350px; left: 450px; width: 520px;
overflow: auto; margin: 0px; padding: 0px;">
right column (of explanation text) </div>
<p></p>
<div style="position: absolute; top: 815px; left: 15px; width: 400px;
overflow: auto; margin: 0px; padding: 0px;">
left column (more info about the #regForm box above, plus images) </div>
Чего нам нужно добиться:
[ top element ]
[#regForm div] [right column ]
[left column ]
Ограничения: мы переформатируем сгенерированную страницу. У меня есть одна панель ввода, где мы можем добавить HTML-контент на страницу и использовать встроенный CSS. У нас также есть доступ для добавления элементов переопределения во внешнюю таблицу стилей CSS, но не для прямого редактирования всей таблицы стилей.
tl: dr version: как вы используете CSS для перемещения элемента (в данном случае #regForm) вверх на странице, когда у вас нет доступа для редактирования HTML-кода, генерирующего этот элемент? Без стилизации элемент #regForm просто добавляется до конца.
1 ответ
Если вы хотите, чтобы страница работала правильно, и чтобы #regdiv отображался первым, вы можете перемещать столбцы и форму, а затем перемещать форму вверх в дереве документа с помощью jQuery.
Пример в jsFiddle: http://jsfiddle.net/TjDmw/11/
HTML:
<div id="container">
<div id="rightcol"></div>
<div id="leftcol"></div>
<div id="regdiv"></div><!--Last in HTML, but moved up with jQuery-->
</div>
CSS:
#container {
border:2px black solid;
width:400px;
float:left;
}
#rightcol{
background:red;
width:200px;
height:400px;
float:right;
}
#leftcol{
background:blue;
width:160px;
height:450px;
float:left;
}
#regdiv{
background:green;
width:140px;
height:220px;
float:left;
}
JS:
$('#regdiv').insertBefore('#rightcol');