【问题标题】:how to maximize the list to consume max space using css如何使用css最大化列表以消耗最大空间
【发布时间】:2014-07-10 17:23:43
【问题描述】:

这是一个用于菜单目的的列表我想最大化右侧的空间以匹配左侧的空间但是当我增加填充或边距时最后一个菜单下降我应该这样做以匹配左侧的菜单这是我的代码

css:

    #headermenu {
    /*outline: 1px solid red;*/
}
#headermenu ul {

}
#headermenu ul ul {
    display: none;
}

    #headermenu ul li:hover > ul {
        display:inline-block;
    }
#headermenu ul {
    background: #f69b58; 
    /*background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);  
    background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);*/
    padding: 0 20.05px;
    list-style: none;
    position: relative;
    display: inline-block;
}
    #headermenu ul:after {
        content: ""; 
        clear: both; 
        display: block;
    }   

    #headermenu ul li {
        float: left;
    }
    #headermenu ul li:hover {
        background: #3eaee9;
        /*background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
        background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
        background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);*/
    }
        #headermenu ul li:hover a {
            color: #fff;
        }

    #headermenu ul li a {
        display: block; 
        padding: 15px 63.9px;
        color: #552f01; 
        text-decoration: none;
    }   
#headermenu ul ul {
    background: #f69b58; 
    border-radius: 0px; 
    padding: 0;
    position: absolute; 
    top: 100%;
}
    #headermenu ul ul li {
        float: none; 
        /*border-top: 1px solid #6b727c;
        border-bottom: 1px solid #575f6a;*/
        position: relative;
    }
        #headermenu ul ul li a {
            padding: 15px 63.9px;
            color: #fff;
        }   
            #headermenu ul ul li a:hover {
                background: #3eaee9;
            }   
    #headermenu ul ul ul {
        position: absolute; 
        left: 100%; 
        top:0;
    }

列表:

<ul id="menu">
                        <li><a href="#">Home</a></li>
                        <li><a href="#">Town Office</a>
                            <ul class="submenu">
                                <li><a href="#">Sub Menu 1</a></li>
                                <li><a href="#">Sub Menu 2</a></li>
                                <li><a href="#">Sub Menu 3</a>
                                    <ul class="submenu">
                                        <li><a href="#">SubMenu1</a></li>
                                        <li><a href="#">SubMenu2</a></li>
                                        <li><a href="#">SubMenu3</a></li>
                                        <li><a href="#">SubMenu4</a></li>
                                    </ul>
                                </li>
                                <li><a href="#">Sub Menu 4</a></li>
                            </ul>
                        </li>
                        <li ><a href="#">Business</a>
                            <ul class="submenu">
                                <li><a href="#">Sub Menu 1</a></li>
                                <li><a href="#">Sub Menu 2</a></li>
                                <li><a href="#">Sub Menu 3</a></li>
                                <li><a href="#">Sub Menu 4</a></li>
                            </ul>
                        </li>
                        <li ><a href="#">Residents</a>
                            <ul class="submenu">
                                <li><a href="#">Sub Menu 1</a></li>
                                <li><a href="#">Sub Menu 2</a></li>
                                <li><a href="#">Sub Menu 3</a></li>
                                <li><a href="#">Sub Menu 4</a></li>
                            </ul>
                        </li>
                        <li ><a href="#">Tourists</a>
                            <ul class="submenu">
                                <li><a href="#">Sub Menu 1</a></li>
                                <li><a href="#">Sub Menu 2</a></li>
                                <li><a href="#">Sub Menu 3</a></li>
                                <li><a href="#">Sub Menu 4</a></li>
                            </ul>
                        </li>
                    </ul>

使用这种方法... 任何帮助表示赞赏... 是什么导致图像中黑色圆圈中的多余空间

【问题讨论】:

  • 同样的问题,你如何删除列表末尾的空格以及为什么它有那个空格

标签: html css


【解决方案1】:

最简单的方法之一是使用表格单元布局...不,不是实际的表格,而是...

JSfiddle

CSS

#menu ul {
    padding: 0 3px;
    display: table;     /* add this */
    width:100%;     /* add this */
}
#menu-list li {
    height: 45px;
    //width: 180px;     /* remove this */
    list-style: none;
    background-color: #f69b58;
    //float: left;     /* remove this */
    display:table-cell; /* add this */ 
    text-align: center;
    font-family: arial;
    font-size: 14px;
    margin-right: 2px;
}
#menu-list li a {
    display: block;
    padding: 13px;
    color: #ffffff;
    text-decoration: none;
}
}
#menu-list li:active {
    color:black;
    background-color: #3EAEE9;
}
#menu-list li:hover {
    background:#3eaee9;
}
#menu-list li.current {
    background-image: -webkit-linear-gradient(top, rgb(7, 80, 158), rgb(6, 101, 243));
    background-color: #3EAEE9;
}

【讨论】:

  • 有没有办法在不使用表格单元格的情况下最大化空间我有点需要我的工作方法..
  • Javascript 可以为您计算这些宽度,或者您可以只计算列表项的数量并将其宽度设置为总数的百分比。
  • 我尝试使用 % 但问题是最后一个项目下降了..我无法工作,因为悬停时我有另一个列表,当我将大小更改为 % 时它也会影响该列表跨度>
  • 你的意思是说唯一的方法就是调整宽度而已?谢谢你清除这个伙伴我很感激它快乐编码
【解决方案2】:

您应该更改 #menu-list li {display: inline-block;} #menu ul {text-align: center;},删除 float: left 和更改widthli

See Fiddle

但我建议使用display:tabledisplay: table-cell 属性;

See Fiddle

【讨论】:

  • 有没有一种方法可以在不使用表格单元格的情况下最大化空间我有点需要我的工作方法..
  • @Hak Hak 我可以提供解决方案 li {display: inline-block} 和 ul { white-space: nowrap;} jsfiddle.net/dosandk/tLHW4
  • 它工作得非常好,但我需要让它在浮动左侧,因为我打算在悬停时放置另一个列表,如果我在下一级悬停菜单时使用你的代码看起来不是很好
  • @Hak Hak 可以分享二级菜单的代码吗?
猜你喜欢
  • 2019-08-21
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2017-01-04
  • 2014-01-02
相关资源
最近更新 更多