2013-08-18 15 views
2

У меня есть меню CSS что-то вроде этого ...Положение относительно родителя родителя

<ul> 
    <li><img src="...">Menu item</li> 
    <li><img src="...">Menu item2</li> 
</ul> 

Мой CSS в настоящее время дает мне это ...

enter image description here

То, что я хочу это что-то вроде этого ...

enter image description here

Я попытался урезать CSS к соответствующим битам - дайте мне знать, если я пропустил что-то важное значение ...

ul#menu li ul li { 
    position: relative; 
    display: block; 
    background-color: #fff; 
    border-top: solid 1px #808080; 
} 

ul#menu li ul li:first-child { 
    border-top: none; 
} 

ul#menu li ul li img { 
    position: relative; 
    left: 0px; 
} 

Проблема заключается в том, что изображение является дочерним <li>, который не является полная ширина <ul>, поэтому position: relative; left: 0px; относится к li, а не к ul.

Как разместить изображение относительно ul?

ответ

3

Поскольку эти изображения не являются фактически частью содержимое, удалите t он img элементы из HTML и добавить одну строку в CSS:

ul#menu li ul li { 
    background: url(/Content/images/nav/Left.png) 5px center no-repeat; 
} 

Это установит стрелку как фоновое изображение, которое всегда 5px от левого края и автоматически по центру, даже если пункт меню занимает две строки , как пара из них.

+0

Спасибо, ты прав ... Это не доволен и не принадлежит к html – Basic

1

Одно простое решение

ul#menu li ul li img { 
    float: left; 
    margin-top: 7px; 
} 
1

Установите ваш ul#menu li ul li шириной до 100%

ul#menu li ul li { 
    width: 100%; //Make sure you have a set px width somewhere else in the menu hierarchy 
    position: relative; 
    display: block; 
    background-color: #fff; 
    border-top: solid 1px #808080; 
} 

Затем установите IMG в absolute

ul#menu li ul li img { 
    position: absolute; 
    left: 0px; 
}