智能流体 JavaScript 导航助手

2024-04-30

我正在尝试创建一个 javascript 算法ul伸出的菜单li元素使用可用宽度 (100%)。

我正在考虑一个具有以下流程的算法:

1. calculate the entire available with
2. substract the total elements width to see what's left
3. iterate the elements and substract 1px from the left width and assign 
   it to the smallest li until the iterator runs out of width

这是一个好方法还是会太滞后,因为它可能意味着几百次迭代?

编辑:提供的评论/答案还没有一个好的答案,因为也许一个或多个元素包含冗长的文本,并且这些元素不应该有任何额外的长度。该问题需要一个算法解决方案,因为每次迭代后只有最小的元素可以被视为剩余像素,因此菜单可以有效地拉伸

更新:对于那些困惑的人,这就是我希望它延伸的方式:

1. A bank has a total bankroll of 100 dollars
2. Jack has a 40% cut, Dennis has 6%, Minny has 1%
3. The bank starts handing out moneyz, 1 dollar each time starting with the
   poorest kid.
4. In the end Jack has 40% while Dennis and Minny have both 30%

Where the cuts stand for the number of characters in a li's child a node

注意:我已经阅读了使用表格显示的纯 css 解决方案,但这确实没有底层那么好<a>元素似乎不会以这种方式与父元素一起拉伸。


您还可以使用纯 css 而不是 javascript 方法来完成此操作,方法是使用display: table财产在ul元素和display: table-cell关于 li 元素:

看看这个小提琴:

http://jsfiddle.net/ERsrf/ http://jsfiddle.net/ERsrf/

如果你想强制li要使元素具有相同的宽度,请将此属性添加到ul元素 :

table-layout:fixed;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

智能流体 JavaScript 导航助手 的相关文章

  • Web 组件 - 服务/非 html 组件

    所以我来自 Angular 想看看如何创建vanilla Web components 现在 从 Angular 开始 我们倾向于将事物分开 组件 充当 HTML CSS 和一些 javascript 然后是 服务 主要负责收集数据和执行不
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 更快地开发和测试打印样式表的方法(避免每次都进行打印预览)?

    这是我现在的流程 保存对 print css 的更改 打开浏览器并刷新页面 右键单击并选择 打印 gt 打印预览 Firefox 但实际上是任何浏览器 第三步让我烦恼 我想知道是否可以通过插件或其他东西将其从流程中删除 只需选择以打印媒体形
  • 如何向 Rails 应用程序添加自定义字体?

    我想在 RoR 应用程序中使用几种字体 但它们的格式主要是 ttf 和 otf 等 我该如何将这些文件嵌入到我的 Rails 应用程序中 也就是说 一旦我将它们放入我的资产文件夹中 将它们嵌入我的 CSS 和 或 LESS 文件中的语法到底
  • IE 中的 HR 标签 - 删除边框

    在除 IE7 及更低版本之外的其他浏览器中 hr 在 hr 标签周围显示边框 但我不希望它出现 我已经尝试过这个解决方案 但它周围似乎仍然有边框 它看起来像这样 我该如何摆脱它 See http webdesign about com od
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • 扩展位置绝对div超出溢出隐藏div

    我已经好几个月没有做过CSS了 所以我可能会错过一些简单的东西 但无论解决方案是什么 我都无法弄清楚 所以问题就在这里 这是我的代码的简化版本 div style height 100 width 200px div style margi
  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • 在 Fabric.js 中按宽度/高度在另一个画布对象内居中和缩放画布对象

    Goal 将一个对象 水平和垂直 置于另一个对象 矩形或组 的中心canvas via Fabric js或者通过Javascript保持原始对象的长宽比相同 但也不超过父对象的宽度 高度比例 父对象 矩形或组 不会居中于canvas元素
  • 如何检测元素内容何时发生变化

    我正在寻找一种方法来监视元素内动态填充 无页面重新加载 内容 以便我可以将类添加到另一个元素 到目前为止我有这个 HTML div class message container div class messages error span
  • 获取点击的的DOM路径

    HTML div class lol a class rightArrow href a div 伪代码 rightArrow click function rightArrowParents this dom dom is the pse
  • 如何处理requireJs超时错误?

    我正在使用 require js 作为加载框架编写一个移动混合应用程序 我遇到加载错误的问题 我想做的是在设备离线且无法下载在屏幕上显示地图所需的 google 地图 API 脚本时设置后备解决方案 我得到的只是 Uncaught Erro
  • 将 CSS 生成的三角形拆分为 2 个水平不同的相同颜色

    正如您应该能够通过此代码看到的那样fiddle http jsfiddle net Xh36r 1 以及下面 我希望能够分割显示在第二个 div 顶部的 CSS 生成的三角形水平均等在 之间orange and green使用的颜色 现在它
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • mozilla pdf.js 没有全视图

    我喜欢这个 pdf 查看器https github com mozilla pdf js https github com mozilla pdf js Demo http mozilla github com pdf js web vie
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定

随机推荐

  • 如何在 Julia 中创建一个数组?

    在许多机器学习用例中 您需要创建一个充满 1 且具有特定维度的数组 在Python中 我会使用np ones 2 1 Julia 中的模拟版本是什么 朱莉娅有一个内置的ones可以使用如下函数 julia gt ones 1 2 1 2 M
  • 如何动态构建JSON对象?

    我是 Python 新手 正在使用 JSON 数据 我想通过向现有 JSON 对象添加一些键值来动态构建 JSON 对象 我尝试了以下但我得到TypeError str object does not support item assign
  • 如何隐藏 IE8 和 IE9 中的下拉箭头?

    我使用下面的 CSS 隐藏 FF safari chrome 中的下拉箭头 并添加我自己的图像进行自定义 select webkit appearance none moz appearance none o appearance none
  • 对测试文件使用 tsconfig 标志,但将其从构建中排除

    我有一个tsconfig json包含显式的文件include模式为src 我也有测试存在于test 但这些仅使用执行ts jest我从来不想把它们编译成我的dist文件夹或在捆绑源代码时包含它们 这工作正常 除了我开始在一些测试文件中收到
  • Spring BeanCreationException:通过工厂方法实例化 Bean 失败嵌套异常

    我正在开始使用 Spring 并尝试使用 Security Hibernate 和 Thymleaf 构建一个应用程序 我有这个错误困扰了我好几天 这是日志 org springframework beans factory BeanCre
  • 通过点表示法访问 NSDictionary?

    有没有办法通过点表示法来访问 NSDictionary 中键的值 NSDictionary returnVal NSDictionary dictionaryWithObjectsAndKeys Saturn name Gas Giant
  • Perl:名称“main::IN”仅使用一次,但实际上已使用

    我编写了一个读取文件的简短 Perl 脚本 看tmp txt 1 gene id XLOC 000001 gene name DDX11L1 oId 1 gene id XLOC 000001 gene name DDX11L1 oId 1
  • 在 Javascript 逻辑中访问 EJS 变量

    我正在开发一个 Node js 应用程序 这是一个游戏 在本例中 我设置了一些代码 以便当一个人访问索引并选择一个房间时 他会被重定向到正确的房间 现在 Express v2 5 8 是这样完成的 server get room name
  • Access 中的 VBA:DoCmd.RunCommand acCmdSaveRecord 如何工作?

    I use DoCmd RunCommand acCmdSaveRecord 保存 但我不确定这实际上是如何工作的 它会保存所有未保存的更改吗 或者无论是否更改它都会保存所有内容吗 还是只保存当前表单 其他形式的相关未保存更改又如何呢 或者
  • MySQL:如果该ip没有任何记录则插入

    I use INSERT INTO rating name user rating section ip VALUES name SESSION user rate section SERVER REMOTE ADDR 我想在 IF 语句中
  • iOS 9.0 以下版本的 Storyboard 参考

    我正在使用新的故事板参考 据苹果公司称文档 https developer apple com library ios recipes xcode help IB storyboard Chapters AddSBReference htm
  • 需要“Ruby 编程语言”中的反射示例帮助

    在这个例子中来自Ruby 编程语言 第270页 我很困惑为什么instance eval示例代码最后一行的方法定义一个类方法 called String empty 你不使用class eval定义一个类方法并instance eval当你
  • Consul 检查 HTTPS 自签名

    我使用 Consul 注册 Web 应用程序 Web应用程序使用Java Consul客户端来注册检查 我可以使用自签名 CA 激活 TLS 和加密 以加密领事代理之间以及我的 web 应用程序和领事代理之间的交换 但我无法使用自签名 CA
  • 更改 django 应用程序名称时迁移历史记录不一致

    我正在尝试重命名 django 网站中的应用程序之一 还有另一个应用程序依赖于它及其 mysql 表 我检查了两个应用程序中的所有文件 并将旧名称的实例更改为新名称 但是 现在我在尝试执行迁移时遇到此错误消息 File Users Limo
  • SignalR - HubContext 和 Hub.Context

    我是 signalR 的新手 正在阅读 API 并使用它 对 Hub 及其上下文有点困惑 那是 Hub Context is not HubContext HubContext我可以从GlobalHost ConnectionManager
  • 向 IEnumerable 等接口添加通用扩展方法

    我一直在努力让我的通用扩展方法发挥作用 但他们只是拒绝 我无法弄清楚why 该线程对我没有帮助 尽管它应该 https stackoverflow com questions 2618271 why is it impossible to
  • 如何避免软键盘显示自动正确建议?

    我不希望我的软键盘显示这些建议和任何符号 例如 要停止提供建议 请将以下属性添加到 XML 中的 EditText android inputType textNoSuggestions 和 或使用添加多种类型 如下 android inp
  • 使用 javascript 在网络浏览器中 Ungzip csv 文件

    我想从网络服务器下载 gzip 压缩的 csv 文件 然后在浏览器中解压 到目前为止我已经尝试使用pako and zlib将文件压缩到我的服务器上 但遇到了各种问题 尝试解压缩 unix gzipped 文件时 我不断收到错误的标头消息
  • RTL 语言的 Kendo PDF 导出问题

    I want to export PDF from Kendo Grid Using ASP MVC that s work fine but when the texts are in RTL mode ex Arabic Persian
  • 智能流体 JavaScript 导航助手

    我正在尝试创建一个 javascript 算法ul伸出的菜单li元素使用可用宽度 100 我正在考虑一个具有以下流程的算法 1 calculate the entire available with 2 substract the tota