Я хочу расположить все элементы div так, чтобы они были влево по одной и той же координате x, чтобы они выглядели хорошо.
Обратите внимание на рисунок ниже, показывающий, как в зависимости от количества вложенных категорий div (и его содержимое) отображаются в несколько разных координатах x. Мне нужно, чтобы линия div была точно такой же координатой x, независимо от того, насколько глубоко она вложена. Обратите внимание, что в самой нижней категории всегда есть div для содержимого, но этот div должен находиться внутри последнего
.
Я использую неупорядоченный список для отображения меню и подумал, что лучшим решением было бы захватить корневую категорию (Cat 2 и mCat1) и получить их левое смещение с помощью jquery, а затем просто использовать это значение для обновления позиционирования Div ... но я не мог заставить его работать правильно. Буду признателен за любые советы или помощь, которые вы готовы оказать.
Вот HTML
<ul id="nav>
<li>Cat 2
<ul>
<li>sub cat2</li>
</ul>
</li>
<li>mCat1
<ul>
<li>Subcat A
<ul>
<li>Subcat A.1
<ul>
<li>Annie</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
Вот некоторые jquery, которые я пытался (я вставил div внутри этого цикла .each (), чтобы получить некоторые значения, но в основном этот селектор захватывает последний
в дереве меню и помещает div после это и есть тот div, который я хочу позиционировать. Значение 245 было тем, с чем я играл, чтобы увидеть, как можно выстроить вещи в ряд, и я знаю, что это не в порядке, но проблема все та же, неважно что я делаю:
$("#nav li:not(:has(li))").each(function () {
var self = $(this);
self.after( '<div id="' + self.attr('p_node') + '_p_cont_div" class="property_position" style="display:none;" /> ' );
});
//ROOT - Retrieve the position of the root element in order to place the div in the right spot
var p = $("#nav li:first");
var position = p.offset();
var xbaseLeft = Math.round(position.left);
$("#nav li:not(:has(li))>div").css('left', xbaseLeft);
Вот ксс:
.property_position{
float:left;
position: relative;
top: 0px;
padding-top:5px;
padding-bottom:10px;
}
/* MENU NAVIGATION (<UL><LI> LISTS
****************************************/
ul#nav{
/* This handles the main root <ul> */
margin-left:0;
padding-left:0px;
text-indent:15px;
}
ul#nav div{
overflow: hidden;
}
#nav li>a:hover {
cursor: pointer;
}
#nav ul {
/* This handles any nested <ul>'s inside an id of "#nav" */
display:none;
margin-left:0px;
padding-left:15px;
text-indent:15px;
margin:0px;
}
#nav li {
list-style-type:none;
vertical-align: top;
list-style-image: none;
left:0px;
text-align:left;
clear: both;
margin:0px;
}
альтернативный текст http://www.redsandstech.com/Untitled2.jpg