当前位置: 首页 > 面试题库 >

如何*真正*证明HTML + CSS中的水平菜单?

周威
2023-03-14
问题内容

您可以在HTML的菜单栏上找到很多教程,但是对于这种特定的(虽然是恕我直言)通用案例,我没有找到任何合适的解决方案

#  THE MENU ITEMS    SHOULD BE    JUSTIFIED     JUST AS    PLAIN TEXT     WOULD BE  #
#  ^                                                                             ^  #
  • 纯文本菜单项数量不一,页面布局也很流畅。
  • 第一个菜单项应左对齐,最后一个菜单项应右对齐。
  • 其余项目应在菜单栏上进行最佳分配。
  • 数字是变化的,因此没有机会预先计算出最佳宽度。

请注意,TABLE在这里也无法正常工作:

  • 如果将所有TD居中,则第一项和最后一项未正确对齐。
  • 如果左对齐,右对齐第一个。最后一项,间隔将不是最佳的。

没有明显的方法可以通过使用HTML和CSS干净地实现这一点,这很奇怪吗?


问题答案:

现代方法[-Flexbox](https://developer.mozilla.org/en-

US/docs/Web/Guide/CSS/Flexible_boxes)!

现在CSS3 flexbox具有更好的浏览器支持,我们中的一些人终于可以开始使用它们了。只需添加其他供应商前缀即可获得更多浏览器覆盖。

在这种情况下,您只需将父元素设置displayflex,然后将该justify- content属性更改为space-betweenspace- around,以便在子级flexbox项之间或周围添加空间。

使用justify-content: space-between - (
此处为示例)

ul {

    list-style: none;

    padding: 0;

    margin: 0;

}

.menu {

    display: flex;

    justify-content: space-between;

}


<ul class="menu">

    <li>Item One</li>

    <li>Item Two</li>

    <li>Item Three Longer</li>

    <li>Item Four</li>

</ul>

使用justify-content: space-around -
(此处为示例)

ul {

    list-style: none;

    padding: 0;

    margin: 0;

}

.menu {

    display: flex;

    justify-content: space-around;

}


<ul class="menu">

    <li>Item One</li>

    <li>Item Two</li>

    <li>Item Three Longer</li>

    <li>Item Four</li>

</ul>


 类似资料:
  • 问题内容: 我有一个水平导航栏,如下所示: 我使用CSS删除项目符号点并使其水平。 我试图证明文本的合理性,以便每个链接均匀分布,以填满整个的空间。我尝试添加到都和选择,但他们仍然是左对齐。 这很奇怪,因为如果使用,它的行为将达到预期。 如何平均分配链接? 问题答案: 现代方法-CSS3 Flexboxes 现在我们有了CSS3 flexboxes,您不再需要使用技巧和变通方法来实现此目的。幸运的

  • 问题内容: 我需要居中对齐水平菜单。 我尝试了各种解决方案,包括/ / 等等的组合,但是没有成功。 这是我的代码: 更新 我知道如何中心对齐的内部。可以使用Sarfraz的建议来完成。但是列表项仍然浮动在内。 我需要Java语言来完成此操作吗? 问题答案: 前提很简单,基本上只涉及一个无宽度的浮动包装,该浮动包装浮动到左侧,然后从屏幕上移到左侧的宽度位置。左:-50%。接下来,将嵌套的内部元素反转

  • 我有一个很大的html项目到期工作,我只需要添加最后一个触摸。我正在尝试创建一个水平图标列表在我的页面,但一直遇到问题。这是一张我需要创作的图片。请给我指出正确的方向或发送一些代码来尝试。谢谢

  • 我在stackoverflow上搜索此问题,但找不到任何内容。 我一直在用CSS制作一个下拉菜单。将鼠标悬停在下拉菜单上时,下拉项将水平显示,而不是垂直显示。 HTML CSS 如何垂直获取下拉列表项?

  • 问题内容: 我有一个这样的清单: 和以下CSS: 我试图强制列表项从左到右显示,即 我的问题: 这样做会给我两行,每行两项。 问题: 是否有一种CSS方式可以将列表项强制全部放在一行中,以便可以使用水平滚动?现在,如果我设置了 overflow:auto, 我只会得到垂直滚动条,这是我不想要的。 我不想在包装div上设置此设置。我很好奇,是否有一个CSS解决方案可以单独在列表中使用。 感谢帮助!

  • 我有一个带有字体图标的表格,我想将文本左对齐,并将图标居中。我试过使用居中