2010-11-25 5 views
0

다른 div 내에 부동 div 컬렉션이 있습니다. 하위 div는 가변 너비와 높이입니다. 즉, 내가 제어 할 수없는 동적 데이터를 사용하여 채워집니다. 이제는 마지막 div가 다른 div에서 작은 너비로 강제되기 때문에 텍스트의 벽과 함께 엄청난 높이가있는 경우가 발생합니다. 이것은 IE 6, 7, 8에서만 발생합니다 - FF3.6은 올바르게 처리합니다. 큰 폭의 줄 바꿈 후에 거대한 div가 시작되도록합니다.CSS를 사용하여 마지막으로 떠있는 요소 지우기?

IE와 동일한 동작을 강제 할 수 있습니까?

+0

오류를 재현 해 볼 수 있습니까? 높이가 다른 여러 개의 수레를 겹쳐 쌓는 것은 일반적으로 혼란을 막는 방법이므로 실제로 실행중인 내용을 정확하게 말하기는 어렵습니다. 코드를 게시 할 경우 코드를 재현하여 IE가 왜 그런 식으로 표시하는지 설명 할 수 있습니다. –

답변

1

실제로 float div의 너비를 지정하면 해당 너비가 사용됩니다. 그렇지 않으면 떠 다니는 div가 내용으로 "축소됩니다". 그래서 당신은 그것을 시도 할 수 있습니다, 또는 당신은 플로트이 스타일을 사용할 수 있습니다 : 당신이 모든 자체 페이지에 걸쳐 수 있도록하려면

#the-last-div { clear: both; float: left } 

당신은 또는하지 않을 수가 떴다 할 수 있습니다.

+0

어떤 div가 마지막 div가 될지 알 수 없습니다. 모든 div에는 동적 콘텐츠가 들어 있습니다. 콘텐츠가없는 일부 div가 있습니다. –

+0

그런 다음 300px 또는 그와 같은 너비를 지정 하시겠습니까? 그렇지 않으면 오른쪽에있는 마지막으로 떠있는 div가 60px이면 페이지 전체에 남아 있기 때문에 정상이며, 300 단어가 들어 있으면 너무 크고 이상합니다. –

+0

'min-width' 시도해도되지만 IE 7 지원은 버그가 있습니다 : http://reference.sitepoint.com/css/min-width –

1

유일한 해결 방법은 clear : both를 지정하거나 기본 너비를 지정하거나 jquery/javascript를 사용하여 동적 또는 동적으로 둘 중 하나를 지정하는 것입니다. 내용에서 높이와 너비를 결정하게되면 문제가 발생합니다.

clear : both; 모든 div에서 각 플로트를 고유 행에 배치합니다. 이것은 당신이 원하는 것과 같지 않습니다.

너비를 지정하는 것이 가장 예측 가능합니다. 브라우저는 너비를 존중하며 충분한 공간이 없으면 다음 행으로 지울 것입니다.

특정 너비가 필요한 내용을 동적으로로드하는 경우에는 포함 된 div 너비를 적절하게 동적으로 조정하는 것이 중요합니다. 콘텐츠가 너무 길면 콘텐츠 길이를 확인하고 콘텐츠를 수신하는 div에 너비를 지정할 수 있습니다. 코드가 없으므로 길이와 너비를 올바르게 설정해야합니다.

로드하는 콘텐츠가 간단한 텍스트이거나 div 및 기타 블록 수준 요소가 포함되어 있습니까? 어떻게 떠 다니는가? 그것은 float : left; 부유물 : 오른쪽; ? 아니면 한쪽으로 모두 가는가?

관련 문제