필드 세트 너비를 컨트롤만큼 넓게 만드는 방법이 있습니까?


80

fieldset의 기본값은 컨테이너 너비의 100 % 인 것 같습니다. 필드 세트 내에서 가장 넓은 컨트롤만큼 크게 필드 세트를 설정할 수있는 방법이 있습니까?

답변:


128

display: inline-block실제로 인라인으로 표시되지 않도록하려면 DIV 안에 래핑해야하지만을 사용하십시오 . Safari에서 테스트되었습니다.

<style type="text/css">
    .fieldset-auto-width {
         display: inline-block;
    }
</style>
<div>
  <fieldset class="fieldset-auto-width">
      <legend>Blah</legend>
      ...
  </fieldset>
</div>

4
이것은 상대 n00b에 대한 가장 명확한 대답이었고 동일한 문제를 해결했습니다. 감사.
Mawg는 분석 재개 모니카 말한다

예, 관심있는 모든 브라우저에서 작동하는 경우 제 답변보다 더 좋고 / 간단한 아이디어입니다.

3
참고 : display: inline-block;iE6 및 IE7에서는 작동하지 않습니다. 당신이 그들을 신경 쓸 필요가 없다면 행복합니다. :)
Diemo 2011

IE8 및 Firefox 10에서 잘 작동합니다!
Ed Bayiates 2012

div와 부두교는 무엇입니까? 필요한 것 같지만 그 이유는 무엇입니까?
superluminary

14

fieldset {display:inline} 또는 fieldset {display:inline-block}

두 개의 필드 세트를 세로로 분리하려면 둘 <br/>사이 에 하나 를 사용하십시오 . 이것은 의미 상 정확하고 필요한 것보다 어렵지 않습니다.


IE 11, 디스플레이 : 인라인 작동했지만 표시하지 : 인라인 - 블록
게이브 Halsmer

8

당신은 그것을 띄울 수 있습니다, 그러면 그것은 그 내용물만큼만 넓을 것입니다. 그러나 당신은 그 수레들을 지워야합니다.


1

이것도 작동합니다. 

fieldset {
  width:0px;
}

1
동일한 줄에 표시되어야하는 필드 세트 내에 여러 요소가있는 경우에는 작동하지 않습니다.
Matthew Schinckel 2011 년

블록 요소를 사용하여 래핑하거나 nowrap 및 명시 적 중단의 조합을 사용하면 물론 그렇습니다.
dan.s.ward 2015 년

1

안타깝게도 Internet Explorer 8 display:inline-block까지도 width:0px작동 하지 않습니다. Internet Explorer 9를 사용 해보지 않았습니다. Internet Explorer를 무시하고 싶지만 그렇게 할 수 없습니다.

Firefox 및 Internet Explorer 8에서 작동하는 유일한 옵션은 float:left. 유일한 단점은 clear:both양식을 따르는 요소 에 사용하는 것을 기억해야 한다는 것입니다. 물론 잊어 버리면 아주 분명해집니다 ;-)


0

항상 CSS를 사용하여 필드 세트의 너비를 제한 할 수 있으며, 이는 내부 컨트롤도 제한합니다.

종종 select컨트롤 의 너비를 제한해야합니다. 그렇지 않으면 정말 긴 옵션 텍스트로 인해 완전히 관리 할 수 ​​없게됩니다.


하지만
필드 셋

0
 fieldset {

    min-width: 0;

    max-width: 100%;

    width: 100%;
 }

3
일부 explainations을 추가하세요
Rarblack

Tim Berners-Lee조차도이 일이 왜 작동하는지 말할 수는 없지만 똥은 작동합니다.
lucasjohnson

0

이 시도

<fieldset>
   <legend style="max-width: max-content;" >Blah</legend>
</fieldset>

-1

범례 스타일을 아래와 같이 재정 의하여 문제를 해결했습니다.

.ui-fieldset-legend
{
  font-size: 1.2em;
  font-weight: bold;
  display: inline-block;
  width: auto;`enter code here`
}

-2

Mihai 솔루션을 더 나아가 브라우저 간 왼쪽 정렬 :

<TABLE>
  <TR>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>

브라우저 간 오른쪽 정렬 :

<TABLE>
  <TR>
    <TD WIDTH=100%></TD>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>

2
레이아웃이 힘 작업하는 동안, 테이블은 일반적으로 간주되지 않습니다 좋은 연습 ... stackoverflow.com/questions/83073/...
StackExchange 도대체

1
5 개의 필드 셋에 대해 이것을 상상해보십시오. 10? 15 ??! 하지마!
Taylor Brown

1
여기에 오는 새로운 개발자를 위해. 이러지마 필요한 것보다 10 배 더 많은 코드를 사용하게됩니다.
superluminary

-2
            <table style="position: relative; top: -0px; left: 0px;">
                <tr>
                    <td>
                        <div>   
                            <fieldset style="width:0px">
                                <legend>A legend</legend>
                                <br/>
                                <table cellspacing="0" align="left">
                                    <tbody>
                                        <tr>
                                            <td align='left' style="white-space: nowrap;">
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </fieldset>
                        </div>
                    </td>
                </tr>
            </table>

-3

다음과 같이 테이블 안에 fieldset을 넣을 수도 있습니다.

<table>
    <tr>
       <td>
           <fieldset>
           .......
           </fieldset>
       </td>
    </tr>
</table>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.