2013-02-22 2 views
0

вот пример http://jsfiddle.net/FW38N/1/CSS об абсолютном положении

, как я могу сделать DIV (контейнер) с высотой: авто вместо того, чтобы его с фиксированной высотой

 .container{ 
     width:auto; 
     height:auto; 
     background-color:black; 
     position:relative; 
    } 

    .text { 
     position:absolute; 
     width:50px; 
     height:50px; 
     background-color:red; 
    } 

<div class='container'> 
     <div class='text'> 

     </div></div> 
+1

Я думаю, что это не Возможное с помощью CSS только , потому что «текст» является абсолютным, как в «другом измерении», а «контейнер» не знает о его размерах. Возможно, включить JavaScript для получения «текстового» размера и применить этот размер (высота) к «контейнеру». –

ответ

0

Я не верю, что есть способ для этого без использования JavaScript или jQuery.

Когда элемент имеет position:absolute, он не занимает пространство внутри родителя. Он отделен от макета и потока страницы (например, всплывающего окна). В приведенном выше примере родитель будет иметь ноль, потому что в нем нет ничего занимающего место. Это фундаментальная часть того, как ведет себя абсолютное позиционирование.

По этой причине очень сложно использовать абсолютное позиционирование для контента, который отличается по высоте (за исключением таких, как всплывающие окна и выпадающие меню, которые в любом случае не являются частью главной страницы). Фактически, каждый элемент с абсолютным позиционированием является своего рода всплывающим окном.

Если у родителя был position:absolute вместо ребенка, то родитель мог иметь height:auto.

0

просто написать height:100%; он установит высоту дел до размера текста + полях

+0

'min-height: 100%' будет работать лучше –

0

вы также можете попробовать

<p class="text"> 
    Lorem ipsum dolor sit amet ... 
</p> 

, а не DIV

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