【问题标题】:How can I force menu items to fit to column width?如何强制菜单项适合列宽?
【发布时间】:2013-01-25 16:11:39
【问题描述】:

我有一个这样的左侧菜单:

    <table table-layout="fixed" width="800px">
        <tr valign="top">
            <td width="140px" overflow="hidden">
                 <div class="link-list">
                    <ul class="tablist">
                        <li> <a href="/url1/">Short</a> </li>
                        <li> <a href="/url2/">MediumItem</a> </li>
                        <li> <a href="/url3/">ThisIsALongWidthItem</a></li>
                    </ul>
                </div>
            </td>  
            <td>
                  the page main content here                                        
            </td>      
        </tr>   
    </table>

CSS 是这样的:

.tablist 
{
list-style:none; 
height:2em;
padding:0; 
margin:0; 
border: none;
white-space:nowrap;
}

.tablist li 
{
float:left; 
margin-right:0.13em;     
}

.tablist li a 
{
display:block;
padding:0.5em 3em;    /*I'm trying to set this value*/
text-decoration:none;
border:0.06em solid #000;
border-bottom:0;
}

我想让项目填满左栏的整个宽度。当将填充设置为较小的值时,它们会在右侧留下空间,因为项目的宽度不同。因此,我试图将其设置为较大的值(希望它可以填充空白空间),但它们超出了列边距并与右侧 col 的内容混合。 如何将其定界为列宽??

【问题讨论】:

  • &lt;table table-layout="fixed" width="800px"&gt; 更改为&lt;table style="table-layout:fixed; width:800px"&gt;&lt;td width="140px" overflow="hidden"&gt; 更改为&lt;td style="width:140px; overflow:hidden"&gt;
  • 非常感谢。我真的错过了这个技巧。它有效,但@Matt Steele 提供的解决方案也可以。

标签: html css web-applications


【解决方案1】:

您可以在 li 上设置一个最大宽度,以确保它不会进一步成为父容器。

max-width: 100%;

我不确定这是否是您的意思。最好能设置一个 JSFiddle 来模拟这个问题。

看起来您可能在同时使用 li 和 a 作为宽度时遇到了问题。

【讨论】:

    【解决方案2】:

    使用常规盒子模型很难计算填充和边框,因为它们被添加到声明的宽度中,因此您必须进行计算以从宽度中减去它们。 最好的选择是回到原始的 IE 框模型,其中包括宽度中的填充和边框(所以当您声明宽度 100% 时,您知道它始终是 100%,包括边框和填充)。 为此,请使用以下 CSS 规则集:

    * {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        -ms-box-sizing: border-box;
        box-sizing: border-box; 
    }
    

    【讨论】:

    • 是的,我也同意这一点。设置box-size:边框框;是驯服盒子模型的好方法。它只支持 IE8 及更高版本,因此如果您需要支持旧 IE,请确保使用 Modernizr 进行说明。
    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多