2009-11-11 3 views
8

fieldset 안에 스크롤 가능한 상자를 넣고 싶지만 주위를 돌면서 자신의 길을 찾아 낼 수 없습니다. 스크롤 할 수있는 divfieldset 안에 넣으면 fieldset이 스크롤 가능한 요소 스크롤을 만드는 대신 확장됩니다.HTML 필드 세트를 사용하면 어린이가 무기한 확장 할 수 있습니다

여기에 a test case입니다. 무한정 팽창을 다음 (야유) :

<div style="width: 300px; overflow: hidden;"> 
    <div> 
     <div style="overflow: scroll; white-space: nowrap;"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem arcu, sodales non gravida eget, vehicula vitae nulla. Quisque turpis justo, consectetur ut egestas at, pulvinar nec diam. Donec porttitor lobortis elit quis scelerisque. Proin at mollis nibh. Nulla nisi dolor, rutrum nec rhoncus congue, cursus at urna. Curabitur adipiscing euismod nisl nec consequat. Aliquam justo justo, bibendum id molestie eget, dignissim sit amet sapien. Phasellus non erat nulla, quis auctor eros. Proin pellentesque turpis eu ipsum venenatis egestas non eget lacus. Vestibulum ante diam, posuere ut fringilla nec, pretium ac metus. Integer laoreet fringilla ipsum, vel interdum urna pellentesque a. Donec lobortis tincidunt nisi, ac tristique massa pretium ac. Ut vel magna erat, et hendrerit sem. Curabitur vulputate, tellus quis pellentesque pretium, felis odio aliquam sapien, sit amet hendrerit arcu orci ut nulla. Vestibulum suscipit rhoncus arcu, ut aliquam eros sagittis a. Suspendisse eros elit, bibendum venenatis pulvinar at, scelerisque vel quam. 
     </div> 
    </div> 
</div> 

가 어떻게이 fieldsetdiv처럼 행동하는 얻을 수 있습니다 : 예상대로

<div style="width: 300px; overflow: hidden;"> 
    <fieldset> 
     <div style="overflow: scroll; white-space: nowrap;"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem arcu, sodales non gravida eget, vehicula vitae nulla. Quisque turpis justo, consectetur ut egestas at, pulvinar nec diam. Donec porttitor lobortis elit quis scelerisque. Proin at mollis nibh. Nulla nisi dolor, rutrum nec rhoncus congue, cursus at urna. Curabitur adipiscing euismod nisl nec consequat. Aliquam justo justo, bibendum id molestie eget, dignissim sit amet sapien. Phasellus non erat nulla, quis auctor eros. Proin pellentesque turpis eu ipsum venenatis egestas non eget lacus. Vestibulum ante diam, posuere ut fringilla nec, pretium ac metus. Integer laoreet fringilla ipsum, vel interdum urna pellentesque a. Donec lobortis tincidunt nisi, ac tristique massa pretium ac. Ut vel magna erat, et hendrerit sem. Curabitur vulputate, tellus quis pellentesque pretium, felis odio aliquam sapien, sit amet hendrerit arcu orci ut nulla. Vestibulum suscipit rhoncus arcu, ut aliquam eros sagittis a. Suspendisse eros elit, bibendum venenatis pulvinar at, scelerisque vel quam. 
     </div> 
    </fieldset> 
</div> 

그러나 if you use a div, 그것은 (! 만세) 작동?

+0

P.S.의 마음에 계속있을거야 그 테이블 셀 : 절대 디스플레이 작동하지 않습니다 스크롤 가능한 요소에 정적 너비를 넣음으로써 문제를 해결할 수 있다는 것을 알고 있지만 절대적으로 원하지는 않으므로 제안하지 마십시오. – spudly

+0

Fieldset을 사용해야합니까? 필요한 것은 모두 fieldset처럼 보이는 것입니다. mabye는 두 번째 코드 스 니펫과 같은 div를 사용하고 필드 세트처럼 보일 수 있도록 테두리를 추가합니다. – Upgradingdave

답변

0

이 문제에 대한 실행 가능한 해결책이없는 것처럼 보입니다. 실제로 필드 세트를 원한다면 div를 사용하고 필드 세트처럼 보이도록 스타일을 지정할 수 있습니다.하지만 브라우저 간 문제와 두통을 겪을 수 있습니다. 최상의 솔루션 : 필드 세트를 더 이상 사용하지 않도록 양식을 리팩터링하십시오.

+0

슬프게도 IE에서 IE가 "예상 됨"으로 오버플로되지만 크롬이나 Firefox에서는 오버플로되지 않습니다. – row1

0

나는 당신이 것을 원하는 경우 잘 모르겠지만,이 노력하고 있습니다 :

<div style="width: 300px; overflow: auto;"> 
    <fieldset> 
     <div style="overflow: auto; white-space: nowrap;"> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem arcu, sodales non gravida eget, vehicula vitae nulla. Quisque turpis justo, consectetur ut egestas at, pulvinar nec diam. Donec porttitor lobortis elit quis scelerisque. Proin at mollis nibh. Nulla nisi dolor, rutrum nec rhoncus congue, cursus at urna. Curabitur adipiscing euismod nisl nec consequat. Aliquam justo justo, bibendum id molestie eget, dignissim sit amet sapien. Phasellus non erat nulla, quis auctor eros. Proin pellentesque turpis eu ipsum venenatis egestas non eget lacus. Vestibulum ante diam, posuere ut fringilla nec, pretium ac metus. Integer laoreet fringilla ipsum, vel interdum urna pellentesque a. Donec lobortis tincidunt nisi, ac tristique massa pretium ac. Ut vel magna erat, et hendrerit sem. Curabitur vulputate, tellus quis pellentesque pretium, felis odio aliquam sapien, sit amet hendrerit arcu orci ut nulla. Vestibulum suscipit rhoncus arcu, ut aliquam eros sagittis a. Suspendisse eros elit, bibendum venenatis pulvinar at, scelerisque vel quam. 
     </div> 
    </fieldset> 
</div> 

당신은 너무 루트 DIV를 제거 할 수 있습니다, 그것은 여전히 ​​작동합니다.

+0

'겁내지 않습니다. 나는 외부 div를 제어 할 수 없다. 내가해야 할 일은 fieldset에 외부 div의 실제 너비와 관계없이 외부 div의 전체 너비를 차지하게하는 것입니다. – spudly

+0

나는 내 코드를 편집하고 오버플로를 변경했다 : 숨김; 오버플로 : 자동; 이게 도움이되는거야? –

+0

이것은 : http://i29.tinypic.com/2hzi83q.png 당신이 말하는 문제의 종류입니까? – Franz

0

이게 당신이 쓴거야?

<div style="overflow: auto; width: 300px; height: 55px;"> 
    <fieldset style="overflow: scroll; width: 100%; white-space: nowrap;"> 
     <div> 
     Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed lorem arcu, sodales non gravida eget, vehicula vitae nulla. Quisque turpis justo, consectetur ut egestas at, pulvinar nec diam. Donec porttitor lobortis elit quis scelerisque. Proin at mollis nibh. Nulla nisi dolor, rutrum nec rhoncus congue, cursus at urna. Curabitur adipiscing euismod nisl nec consequat. Aliquam justo justo, bibendum id molestie eget, dignissim sit amet sapien. Phasellus non erat nulla, quis auctor eros. Proin pellentesque turpis eu ipsum venenatis egestas non eget lacus. Vestibulum ante diam, posuere ut fringilla nec, pretium ac metus. Integer laoreet fringilla ipsum, vel interdum urna pellentesque a. Donec lobortis tincidunt nisi, ac tristique massa pretium ac. Ut vel magna erat, et hendrerit sem. Curabitur vulputate, tellus quis pellentesque pretium, felis odio aliquam sapien, sit amet hendrerit arcu orci ut nulla. Vestibulum suscipit rhoncus arcu, ut aliquam eros sagittis a. Suspendisse eros elit, bibendum venenatis pulvinar at, scelerisque vel quam. 
     </div> 
    </fieldset> 
</div> 
+1

아닙니다. 사용자가 제공하는 솔루션은 바깥 쪽 div와 필드 세트 모두에 스크롤 막대를 추가합니다. 나는 fieldset의 div 만 스크롤하기를 원합니다. 솔루션을 테스트 했습니까? – spudly

10

웹킷과 파이어 폭스는 그 내용의 계산 된 폭을 기반으로 "암시"폭을 갖도록 필드 셋을 제한. 각각을 재정의하는 방법은 다음과 같습니다.

  • WebKit은 비교적 쉽습니다. 이 동작은 기본 스타일 시트에 정의되어 있으므로 fieldset에 min-width: 0을 지정하여 재정의 할 수 있습니다. FIELDSET 폭 제약 게코 레이아웃 코드에 깊은 시행되기 때문에

  • 파이어 폭스는 강하다 너트입니다. 다행히도 Gecko 전용 규칙을 추가하여 fieldset의 display 속성을 여러 내부 테이블 요소 중 하나에 해당하는 값으로 설정합니다.

는 모두 함께 퍼팅 :

fieldset { min-width: 0; } 

@-moz-document url-prefix() { /* Only target Gecko. (Breaks layout in IE.) */ 
    fieldset { display: table-cell; } 
} 

jsFiddle demo합니다.


my answerrelated question (A)에에 기초한다; 파이어 폭스에 대한 픽스와 관련된 브라우저 내부의 정보를 포함하여 더 자세한 설명을 위해이를 참조 할 수 있습니다.

+1

매우 유용합니다. 감사합니다. – philfreo

+0

작동합니다! 나는 받아 들여진 대답을 좋아하지 않는다 ... IE에서 레이아웃을 망가 뜨리는 경우 누가 신경을 쓸까? –

-1

위치를 기억 : 내가 시도는 플렉스 레이아웃을 디버깅 할 때

그래서 그냥

관련 문제