有什么方法可以让字段集的宽度只与其中的控件一样宽吗?

问题描述 投票:0回答:13

似乎 fieldset 默认为其容器的 100% 宽度。有什么方法可以让字段集与字段集中最宽的控件一样大?

html css fieldset
13个回答
133
投票

使用

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>

16
投票

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

如果要垂直分隔两个字段集,请在它们之间使用一个

<br/>
。这在语义上是正确的,并不比它必须的更难。


8
投票

你可以浮动它,然后它只会和它的内容一样宽,但你必须确保清除那些浮动。


1
投票

这也行。

fieldset {
  width:0px;
}

1
投票

不幸的是,

display:inline-block
width:0px
在 Internet Explorer 8 之前的版本中都不起作用。我没有尝试过 Internet Explorer 9。尽管我很想忽略 Internet Explorer,但我不能。

唯一适用于 Firefox 和 Internet Explorer 8 的选项是

float:left
。唯一的小缺点是您必须记住在表单后面的元素上使用
clear:both
。当然,忘记了会很明显;-)


1
投票

试试这个

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

0
投票

你总是可以使用 CSS 来限制字段集的宽度,这也会限制里面的控件。

我发现我经常需要限制

select
控件的宽度,否则太长的选项文本将使其完全无法管理。


0
投票
 fieldset {

    min-width: 0;

    max-width: 100%;

    width: 100%;
 }

0
投票

width: fit-content;
有效。


-1
投票

我通过如下覆盖图例样式解决了我的问题

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

-2
投票

更进一步的米海解决方案,跨浏览器左对齐:

<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
投票
            <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
投票

你也可以把字段集放在一个表里,像这样:

<table>
    <tr>
       <td>
           <fieldset>
           .......
           </fieldset>
       </td>
    </tr>
</table>
© www.soinside.com 2019 - 2024. All rights reserved.