如何创建一个水平菜单,其中每个项目的宽度和间距相等?

2023-11-30

这是我到目前为止所得到的:fiddle

但它有两个问题:

  1. 我已经硬编码了每个的宽度li to 33%,我不想这样做,这样我就可以轻松添加更多项目。
  2. 我想在每个项目之间放置一些间距(背景颜色中的间隙),但是一旦我添加边距,一个项目就会沿着一条线向下移动。我该如何解决这个问题?

#main-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    overflow:  auto;
}
#main-nav li {
    float: left;
    width: 33%;
    height: 25px;
    text-align: center;
}
#main-nav li a {
    width: 100%;
    display: block;
    height: 100%;
    line-height: 25px;
    text-decoration: none;
    background-color: #e0e0f0;
    font-weight: bold;
    color: #021020;
}
#main-nav li a:hover {
    background-color: #498cd5;
    color: #ddeeee;
}
<ul id="main-nav">
    <li><a href="#">one</a></li>
    <li><a href="#">two</a></li>
    <li><a href="#">three</a></li>
</ul>

See: http://jsfiddle.net/f6qmm/

display: table被用来均匀地分布动态数量的lis。不幸的是,那不起作用在IE7中,所以*float: left使用(仅适用于 IE7 及更低版本),因此至少它们都在一行上 - 尽管它看起来仍然很可怕。

padding-left: 5px被应用到每一个li, then li:first-child { padding-left: 0 }仅删除第一个li.

#main-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
    display: table;
    table-layout: fixed;
    overflow: hidden
}
#main-nav li {
    display: table-cell;
    *float: left; /* improve IE7 */
    height: 25px;
    text-align: center;
    padding-left: 5px
}
#main-nav li:first-child {
    padding-left: 0
}
#main-nav li a {
    width: 100%;
    display: block;
    height: 100%;
    line-height: 25px;
    text-decoration: none;
    background-color: #e0e0f0;
    font-weight: bold;
    color: #021020;
}
#main-nav li a:hover {
    background-color: #498cd5;
    color: #ddeeee;
}
<ul id="main-nav">
    <li><a href="#">one</a></li>
    <li><a href="#">two</a></li>
    <li><a href="#">three</a></li>
</ul>

<hr />

<ul id="main-nav">
    <li><a href="#">one</a></li>
    <li><a href="#">two</a></li>
    <li><a href="#">three</a></li>
    <li><a href="#">four</a></li>
    <li><a href="#">five</a></li>
</ul>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建一个水平菜单,其中每个项目的宽度和间距相等? 的相关文章

  • 如何让 Twitter Bootstraps 移动导航栏覆盖页面上的内容而不是将其向下推?

    我正在使用 Twitter Bootstrap 并且想修改移动导航栏 以便在展开时下拉菜单覆盖页面上的内容 而不是将其向下推 我知道我可能需要制作包含 div 绝对定位 增加它的 z index 并定位外部 div 相对而言 但我似乎无法让
  • 平板电脑在第一次单击时悬停,在第二次单击时单击

    发布这个问题主要是希望证实我对该行为的怀疑 从而为其他程序员记录下来 因为我在网上没有找到任何记录 我正在构建一个网站 其导航栏具有以下属性 水平截面是 ul of li 和一些 li li s 两者都有 A n a 元素带您进入该主题 触
  • 可编辑的 Div 插入位置

    我有一个可编辑的 div 我正在使用一个按钮将图像插入到该 div 中 现在 我只是在做 document getElementById elementid innerHTML 为了将图像添加到 div 的末尾 我想输入插入符号所在的图像
  • 标题的固定高度和更改宽度(HTML 表格)

    我需要确保表格标题的高度是固定的 并且宽度是根据标题单元格内容进行调整的 标题文本最多显示两行 我们如何使用样式来做到这一点 另外 我想确保表行的宽度与标题行的宽度相同 即标题行决定宽度 注 目前 交易部门负责人别名 是按行排列的 它需要分
  • Phonegap(应用程序错误...发生网络错误)

    我已经使用phonegap 创建了一个版本 在index html 文件中 我编写了一个简单的iframe 用于加载网站 当我从phonegap获取本地url时它就起作用了 但如果我将整个构建作为 zip 文件上传到 PhoneGap 中
  • IE8/9 - CSS 文件的最大字节数

    我目前正在开发的应用程序有过多的 CSS 样式 我们似乎已经达到了 IE8 9 以及它可以加载的 CSS 数量的某种限制 在某些时候 它会停止解释 CSS 从而破坏某些页面上的样式 我们正在使用 Combres 来压缩 缩小导致 CSS 文
  • 复制 Chrome 默认输入的轮廓样式

    如何设置默认 Chrome 输入的轮廓样式 焦点上为橙色 使其在每个浏览器中看起来都相同 Chrome 风格似乎是textarea focus outline rgb 229 151 0 auto 5px outline offset 2p
  • 在 HTML TextArea 中设置(或读取)光标/插入符的值

    我正在尝试 但失败了 在 HTML 文本区域中实现拖放机制 使用 jQuery 或 Scriptaculous 我们都使用 拖放机制相对容易 因此我愿意接受使用这两者之一的答案 问题是 我似乎找不到读取或设置插入点的方法 我最终想要做的是确
  • 为什么Disabled = true对于html有效?

    我注意到我们的代码中有一个disabled ture 我是锚标签的源代码 我想知道为什么它在 IE 中有效 我也在互联网上进行了搜索 通过网络搜索 它也被用于很多源代码中 我一直在搜索if ture 拼写错误的true也可以被IE使用 有人
  • 使用 jQuery 的 .trigger('dragstart') 实现 HTML5 的拖放功能时如何 .setData/.getData

    当使用 jQuery 的 trigger dragstart 在具有 ondragstart drag event 属性的元素上触发函数时 如何使用 setData getData 实现 HTML5 在触摸设备上的拖放 流程示例 用户通过
  • 调整大小后获取实际图像大小

    我有一个充满缩略图的页面 用 css 调整大小150x150 当我单击缩略图时 页面变暗 并且图像以其真实尺寸显示 目前 我必须手动创建一个包含所有图像的实际高度的数组 为了解决设计问题 减少画廊的手动操作 我需要在调整图像大小 CSS 后
  • 如何使单词中的每个字母在悬停时发生变化

    假设我的网站上某个段落中有一个单词 IamGreat 我希望它在悬停时更改为 Good4you 但是 我不想更改整个单词 而是希望每个字母单独更改 因此 如果我将鼠标悬停在字母 I 上 它将变成字母 G 字母 r 将变成数字 4 等 这两个
  • 如何使链接悬停时的背景图像模糊?

    当您用鼠标光标悬停链接时 我想让我的背景图像模糊 5 像素 有什么简单的方法可以实现这一点吗 我有点纠结于类和 id 在这里 pic background url http www metalinjection net wp content
  • Jquery 关注下一个带有类的元素

    我正在尝试创建一个函数 当按下 Enter 键时 会选择带有类的下一个输入 我已经设法 focus 同一行中的下一个元素 但是 如果我需要选择下一行的下一个输入 它将无法继续 下一行中的第一个 quantity 文本框需要获得焦点 控制台没
  • 输入元素可滚动并启用文本溢出省略号

    当我添加text overflow ellipsis对于输入元素 该元素是可滚动的 当我将光标放在元素上时 我可以左右滚动 就好像文本是全宽并且没有被截断一样 尽管后面没有文本 我该如何阻止这种行为 input width 180px te
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 如何使网站适应用户的屏幕分辨率?

    我正在使用 1024x768 屏幕分辨率来设计我的网站 当您从屏幕分辨率较小 较大的计算机上的浏览器中查看网站时 网站开始变形 无论用户的屏幕分辨率是什么 如何使网站适应用户的屏幕分辨率 我相信通过 JavaScript 或 CSS 是可能
  • 使 div 的大小与其内部图像的大小相同

    我有一个带有以下代码的div HTML div img src img logo png div CSS div imgContainer width 250px height 250px padding 13px 问题是用户可以编辑图像大
  • 使用js获取选择选项的onclick事件

    我有一个非常令人沮丧的问题 我有这个代码 它过滤掉我的结果并将它们输入到选择框中 var syn
  • HTML 布局:向现有网站添加侧边栏

    我有一个网站 其正文如下所示 div div div div div div 这些中没有使用绝对 相对定位技巧divs 但是有很多floats clears margins and padding这些风格divs 及其内部元素 所有这些都会

随机推荐

  • 将矩形扩展 100px

    我在 C 中使用 OpenCV 2 4 4 并且有 矩形 我想将其放大 x 像素 OpenCV 文档提供很好的例子 寻找 将矩形扩大或缩小一定量 如何在图像中使用它http opencv willowgarage com documenta
  • 对于指向同一单元格的两个范围变量,“Is”运算符不会返回 true

    我有一个名为的自定义类imera其中我包含一个名为的范围属性date cell 创建 imera 集合时 每个 imera 的 date cell 都设置为引用 Excel 中的特定单元格 尝试按 date cell 在集合中搜索时 Opt
  • iPhone如何在按音量键时隐藏音量覆盖

    我做了很多事情来解决这个问题 比如添加MPVolumeView 有人说系统音量HUD 如果您在当前添加 MPVolumeView 实例 则会隐藏 但这不起作用 我添加观察者来观察体积的变化 并拍照 但现在我不知道如何隐藏音量HUD 我尝试过
  • 将数字划分为显示在用户表单标签中的唯一排序数字

    我想将数字分成唯一的排序数字 例如 数字可以是 127425 我希望结果为 12457 这意味着已排序并删除了重复项 我认为最好是用例子来解释 Number Result 127425 12457 2784425 24578 121 12
  • 限制 Java 中的文本字段

    有没有办法限制文本字段只允许数字 0 100 从而排除字母 符号等 我找到了一种方法 但它比看起来必要的要复杂得多 如果必须使用文本字段 则应该使用JFormattedTextField with a 数字格式化程序 您可以设置 Numbe
  • Pharo 中的彩色窗口主题?

    如何在 Pharo 中切换到彩色窗口主题 不确定你指的是哪个主题 但你尝试过吗 世界菜单 gt 系统 gt 设置 gt 外观 gt 形态 gt 用户界面主题 选择框将让您选择窗口颜色主题
  • Git "git config --global user.name" 为什么存在这个选项?

    Git 初学者警报 我有一个基本问题 为什么 GIT 允许更改用户名作为配置选项 git config global user name trojan 这个选项是否会为提交者冒充并在历史 日志中造成混乱打开大门 为什么不像从用于连接 GIT
  • 在运行时(动态)创建简单的 POJO 类(字节码)

    我有以下场景 我正在编写一些工具 可以对数据库运行用户输入的查询并返回结果 最简单的方法是将结果返回为 List
  • 将 NiFi 中同一列中的字符串值替换为整数值

    我想更换一个 字符串值 并将该值输入为整数值使用 Nifi ReplaceText 我不知道如何在 NiFi 中实现这一点 所以我的场景如下 我将有一个 CSV 文件 其中包含几个带有整数的字段和几个作为字符串总值的字段 对于具有字符串值的
  • onclick 显示 div,但在单击其他 div 时隐藏

    我正在使用本主题答案 1 中的代码 显示 div onclick 并隐藏触发它的图像 img src Icons note add png then the function would apply a display none to it
  • 将阿拉伯语文本转换为 HTML 代码字符

    我正在尝试发送一封包含阿拉伯文本的电子邮件 我的问题是 当我将阿拉伯文本添加到电子邮件中时 它会将其更改为随机字母 与电子邮件的字符编码有关 我无法更改 是否有内置函数或自定义函数可以用来将阿拉伯语转换为 HTML 代码 以便它随后出现在我
  • BigQuery 中的“立即关注”页面路径

    我正在 BigQuery 中工作 以了解有多少用户完成了特定的页面路径 在会话中的任何时刻 假设页面路径是第 1 页 gt 第 2 页 gt 第 3 页 页面必须按顺序排列 我可以使用 BQ 建立页面路径 但此方法仅适用于识别在会话中的任何
  • 如何在 Windows 服务中为 Clearcase View 映射网络驱动器?

    我想在 Windows 服务内的网络驱动器上映射 Clearcase 视图 我尝试过net use命令 但无法正常工作 您应该能够运行与该命令相同类型的命令当路径太长时使用 即subst subst X c path to my View
  • 将指针传递给函数值不会改变[重复]

    这个问题在这里已经有答案了 include
  • Spring Integration - 以编程方式创建/拆卸通道

    是否可以以编程方式创建 拆卸 Spring Integration 通道 而不是在 Spring 配置中静态声明它们 我的情况是这样的 我有一个需要推送通知的网络应用程序 因此我使用长轮询 这些长轮询调用需要在服务器上阻塞 直到收到事件 我
  • JavaScript(ES6):在条件表达式中使用扩展运算符(?-运算符)[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 可以使用以下方法将数组与另一个数组合并 扩展 运算符如下 1 2 3 4 5 6 gt 1 2 3 4 5 6 但是 似乎没有资格在三元内部使用扩展运算符 表达 true 1 2 3
  • 对 URL 参数进行解码

    我正在与一个服务器交谈 该服务器过去向我发送如下 HTTP 字符串 path to my handler action query id 112 type vca info ch 0 type event ev16 sts begin 因此
  • 打开时仅展开 viewPanel 中的一些分类列

    我正在使用 ViewPanel 来显示分类视图 该视图有 4 列类别 总计还有 3 个附加列 我想打开此视图 以便展开前 3 个分类列 并折叠第 4 个分类列 是否有某种类型的 SSJS CSJS 我可以添加到可以执行此操作的视图中 在 v
  • 如何跨两个不同的域使用 cookie?

    我需要使用 cookie 在两个不同域之间共享 SSO 信息 这可以在 PHP 中完成吗 如何实现 在两个域上 放置从另一个域中提取的图像或其他 Web 元素 使用 URL 通知其他域用户 X 位于域 A 上 并让域 B 将该用户 ID 与
  • 如何创建一个水平菜单,其中每个项目的宽度和间距相等?

    这是我到目前为止所得到的 fiddle 但它有两个问题 我已经硬编码了每个的宽度li to 33 我不想这样做 这样我就可以轻松添加更多项目 我想在每个项目之间放置一些间距 背景颜色中的间隙 但是一旦我添加边距 一个项目就会沿着一条线向下移