html - "chevron"CSS 和浏览器缩放问题中的样式导航栏

标签 html css

我一直在尝试制作带有人字形列表项的 HTML/CSS 导航栏。我已经在此处提供了我的代码:https://github.com/twslankard/css-chevron-bar/blob/master/index.html

由于我的问题相当具体,我将代码作为公共(public)领域提供,以防你们中的一位 CSS 向导能帮助我。 :)

现在是我的问题。我一直在尝试设计栏以使其适当缩放,例如当有人修改 ul.chevronbar li 的字体大小属性或当用户在浏览器中点击 Control+Control- 时。

我尝试使用两种不同的 CSS 重置,Eric Meyers Reset CSS 2.0 和 YUI 3。但是,在 Firefox 中缩放/缩放“大部分”有效,而在 Chrome 中它不起作用(尤其是在放大时)。如果可能的话,我想要一些关于如何让它在 Chrome 中更好地工作的建议。

这是一张说明问题的图片。非常感谢您的帮助。

enter image description here

编辑:这就是我最终得到的结果。请原谅凌乱的 CSS。我稍后会抽空清理它。

https://github.com/twslankard/css-chevron-bar-2

编辑 2:另一个人在这里慷慨地提供了他们对这个问题的解决方案:http://jsfiddle.net/pXBTK/3/

最佳答案

实际上,诀窍是如何使尖部分的高度与它后面的菜单项的高度相匹配,从而避免锯齿状的外观。

我猜是这样的事情导致了问题:

  • 计算出的菜单项高度为 5 个物理屏幕像素
  • 产生箭头的每个顶部和底部边框必须是 5 的 50%
  • 因为你不能显示半个像素,所以都四舍五入,比如 3 个像素
  • 加在一起,箭头变成 6 个像素高,但菜单项只有 5 个

看来很明显,解决方法就是按照说明简单地 overflow hidden 。对原始文件真正必要的唯一更改是:

ul.chevronbar {
  ...
  overflow: hidden; /* Add this line */
}

它还需要调整大小以更接近原始外观,但没有它也能工作。实际上不需要固定高度。

这个简化的示例通过突出显示部分箭头说明了箭头的概念:

<head><style type="text/css">
ul {
  background-color: lightgray;
  font-size: xx-large;
  overflow: hidden;
  position: relative;
}
li {
  display: inline-block;
  background-color: gray;
  margin-right: 1.5em;
}
li:after {
  content: '';
  border: 0.85em solid blue;
  border-left-color: red;
  border-right-color: red;
  height: 0;
  position: absolute;
  top: -0.2em;
}
</style></head>
<body><ul>
  <li>Lorem Ipsum</li> <li>Foobar</li>
</ul></body>

关于html - "chevron"CSS 和浏览器缩放问题中的样式导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801266/

相关文章:

javascript - 如何调整光滑轨道上图像的宽度

URL 较长时 CSS 背景图片加载失败

html - 使用 html 在图像上添加文本 - div 元素中的多个图像?

html - <a> 标签的空间不适合它的内容,如 <img> 标签

javascript - 如何将注销按钮重定向到特定页面

jquery - 无法为 bxSlider 'next/prev' 控件设置图像

html - Bootstrap CSS,网格问题

html - 控制两个 float div的宽度以相反的顺序显示,无论div中内容的宽度如何

javascript - 有条件地绘制 HTML5 Canvas

HTML 视口(viewport)与媒体查询