문제

제목과 도구 버튼이 들어있는 헤더 바가있는 간단한 상자를 만들고 싶습니다. 다음 마크 업이 있습니다.

<div style="float:left">
    <div style="background-color:blue; padding: 1px; height: 20px;">
        <div style="float: left; background-color:green;">title</div>
        <div style="float: right; background-color:yellow;">toolbar</div>
    </div>
    <div style="clear: both; width: 200px; background-color: red;">content</div>
</div>

이것은 Firefox와 Chrome에서 잘 렌더링됩니다.

http://www.boplicity.nl/images/firefox.jpg

그러나 IE7은 완전히 엉망이되어 오른쪽 플로트 요소를 페이지의 오른쪽에 놓습니다.

http://www.boplicity.nl/images/ie7.jpg

이 문제를 해결할 수 있습니까?

도움이 되었습니까?

해결책

가장 바깥 쪽 div에서 너비를 지정합니다. 콘텐츠 DIV의 폭이 상자의 총 너비라는 것을 의미하는 경우 가장 바깥 쪽 DIV에 추가하여 (선택적으로) 컨텐츠에서 제거하십시오.

<div style="float:left; width: 200px;">
    <div style="background-color:blue; padding: 1px; height: 20px;">
        <div style="float: left; background-color:green;">title</div>
        <div style="float: right; background-color:yellow;">toolbar</div>
    </div>
    <div style="clear: both; background-color: red;">content</div>
</div>

다른 팁

이것은 단지 빠른 답변이므로, 제대로 작동하지 않으면 손을 잡고 있습니다. 너비보다 최소 폭을 추가하면 Marko의 솔루션이 작동 할 것이라고 생각합니다. IE6을 수용하려는 경우 최소 폭이 IE6에 의해 지원되지 않고 후손이므로 해킹을 사용해야 할 수도 있습니다.

따라서 이것은 IE7 및 기타 현대 브라우저와 함께 작동해야합니다. 최소 폭을 적절한 것으로 설정하십시오.

<div style="float:left; min-width: 200px;">
    <div style="background-color:blue; padding: 1px; height: 20px;">
        <div style="float: left; background-color:green;">title</div>
        <div style="float: right; background-color:yellow;">toolbar</div>
    </div>
    <div style="clear: both; background-color: red;">content</div>
</div>

jQuery를 사용하여 비이 브라우저의 동작을 모방했습니다.

    // IE fix for div widths - size header to width of content
    if (!$.support.cssFloat) {
        $("div:has(.boxheader) > table").each(function () {
                $(this).parent().width($(this).width());
        });
    }

넣어보십시오 position:relative; 부모 요소 및 아동 요소에. 그것은 나에게 문제를 해결했다.

최근에 오른쪽으로 떠 다니는 요소가 다른 요소 앞에 DIV와 함께 추가되어야한다는 것을 알아야합니다. 이것은 변화 라인을 추가하지 않고 가장 쉬운 수정입니다.

<div style="background-color:blue; padding: 1px; height: 20px;">
    <div style="float: right; background-color:green;">title</div>
    <div style="float: left; background-color:yellow;">toolbar</div>
</div>

이것을 만드십시오 <div style="background-color:blue; padding: 1px; height: 20px;> 2 개의 떠 다니는 div의 부모 clear:all

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top