2010-11-08 3 views
4

У меня есть UL, вложенный внутри DIV, с DIV с заполнением, установленным на «0 20px». Я хотел бы, чтобы этот один дочерний UL переполнялся над родительским DIV и выходил на страницу слева и справа. Как я могу это сделать?Как переопределить отступ родительского элемента от дочернего элемента

ответ

6

, если вы хотите, чтобы UL расширить из контейнера DIV то вам нужно установить UL для абсолютной позиции. Не забудьте установить верхние и левые стили, чтобы получить UL не быть наглухо против DIV в положении абсолютного обыкновения покоряются контейнеры Дивых отступов

+0

Я установил его как абсолютное, а слева - 0, но теперь я не могу получить элементы под ним, чтобы перестать обертывать. Должен ли я их стилизовать или добавить в разделитель div? – Nathan

+0

это произойдет, когда элемент станет абсолютным, просто представьте, что он выскочит на новую плоскость над контентом, но привязан к элементу ниже левым и верхним атрибутами. Если вы знаете, какова будет ваша высота навигации, вы можете взять эту высоту и поместить ее на верхнюю часть контейнера div. Но если ваша навигация динамична и может меняться по высоте, и у вас есть контент ниже навигации, то абсолютное позиционирование - это не путь. Если у вас есть демо-URL или какой-то код для показа, я бы посоветовал лучше всего продвинуться вперед. – Brady

+0

. Содержимое динамическое, но я понял, что он довольно легко понял. Я могу предсказать размер содержимого через php, поэтому я передаю этот размер разделителю div, и он держит все, что выглядит очень красиво. Спасибо за помощь. :) – Nathan

12

Если вы просто пытаетесь компенсировать отступы на DIV, может быть, вы могли бы добиться того, чтобы делать что-то вроде этого на UL:

margin:0 -20px; 
+5

Уже пробовал это, я мог заставить его отдохнуть с левой стороны, но справа было место. Я попытался добавить маржу и дополнение справа и не смог закрыть ее. – Nathan

+0

Это просто не сработает. Если у вас есть элемент со 100% шириной, и вы пытаетесь использовать его для удаления прокладки со всех сторон, это не сделает ширину элемента больше, и их по-прежнему будет разрыв. – Iscariot

1

Он работает следующим образом:

#parent { 
position: relative; /* important */ 
padding: 0 25px; 
} 


#child { 
position: absolute; /* important */ 
width: 100%; 
margin-left: -25px; 
} 
+0

Это не работает. –

Смежные вопросы