只有清除缓存后页面才能正确显示

Page only displays correctly when cache cleared

我有一个浮动列表菜单,只有在通过菜单或使用 Ctrl + F5 清除缓存后,它才能直接在 firefox 中正确显示。我一刷新页面,菜单又坏了

列表元素中的链接比文本宽,但我没有设置任何宽度。当我右键单击这些链接时,宽度似乎更新为正确的值。

有什么想法吗?

您可以使用这个 fiddle:https://jsfiddle.net/cc43r3nm/2/ 注意 firefox 中每个主要项目后的额外 space,当您右键单击它并移动鼠标时它会消失。

出于某种原因,Whosebug 剪下的东西没有正确呈现它。

.navigation {
  position: relative;
  top: 45px;
  left: -50%;
  z-index: 800;
}
.navcontainer {
  float: right;
  position: relative;
  top: 4px;
  font-size: 16px;
}
.first_row {
  margin-bottom: 10px;
}
ul.category_nav {
  position: relative;
  left: 50%;
  list-style: none outside;
}
ul.category_nav ul li {
  background-image: none;
}
ul.category_nav ul {
  display: none;
  position: absolute;
  z-index: 10000;
  width: 190px;
  background-color: white;
  margin-left: -10px;
  border-top: 0;
  list-style: none;
  padding: 20px 0 10px 0;
  -webkit-box-shadow: 0 5px 4px 2px rgba(0, 0, 0, 0.1);
  /* WebKit */
  -moz-box-shadow: 0 5px 4px 2px rgba(0, 0, 0, 0.1);
  /* Firefox */
  box-shadow: 0 5px 4px 2px rgba(0, 0, 0, 0.1);
  /* Standard */
}
.no-boxshadow ul.category_nav ul {
  border: 1px solid #888;
}
ul.category_nav ul a {
  text-transform: none;
  display: block;
  font-size: 0.75em;
  line-height: normal;
}
ul.category_nav ul a:first-letter {
  text-transform: none;
}
ul.category_nav ul ul {
  top: auto;
  list-style: none;
}
ul.category_nav ul li:hover a {
  color: #999;
}
ul.category_nav li:hover ul ul,
ul.category_nav li:hover ul ul ul,
ul.category_nav li:hover ul ul ul ul,
.no-touch ul.category_nav li.hover ul ul,
.no-touch ul.category_nav li.hover ul ul ul,
.no-touch ul.category_nav li.hover ul ul ul ul {
  display: none;
}
ul.category_nav li:hover ul,
ul.category_nav li li:hover ul,
ul.category_nav li li li:hover ul,
ul.category_nav li li li li:hover ul,
.no-touch ul.category_nav li.hover ul,
.no-touch ul.category_nav li li.hover ul,
.no-touch ul.category_nav li li li.hover ul,
.no-touch ul.category_nav li li li li.hover ul {
  display: block;
}
ul.category_nav li {
  position: relative;
  float: left;
  padding: 2px 10px 2px 15px;
  background: transparent url('http://i.imgur.com/QVCbAqk.png') no-repeat 0 13px;
  line-height: 28px;
}
ul.category_nav li.first_navcontainer {
  padding-left: 0;
  background-image: none;
}
.category_nav li a:first-letter {
  font-size: 15px;
}
.category_nav li li a:first-letter {
  font-size: inherit;
}
.category_nav li li {
  float: none;
}
.category_nav a {
  display: block;
  font-weight: 400;
  font-family: 'Lato', sans-serif;
  color: black;
  text-decoration: none;
  text-transform: uppercase;
  font-size: 13px;
  letter-spacing: 2px;
  height: 28px;
  line-height: 28px;
}

Html:

<div class="navigation">
    <div class="navcontainer" class="first_row">
        <ul class="category_nav">
            <li class="first_navcontainer">
                <a href="">Example 1</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Example 2</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Longer Example 3</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Example 4</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Longer Example 5</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
        </ul>
    </div>

    <div class="navcontainer" class="second_row">
        <ul class="category_nav">
            <li class="first_navcontainer">
                <a href="">Example 6</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Example 7</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Example 8</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Longer Example 9</a>
                <ul class="">
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
            <li class="">
                <a href="">Example 10</a>
                <ul class=""><li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                    <li><a href="">Link</a></li>
                </ul>
            </li>
        </ul>
    </div>
</div>

你的例子并没有把问题说得很清楚,因为它有很多额外的样式和标记,实际上没有做任何事情。

但是将代码简化为显示问题所需的最低限度,就是这样:

如果浮动元素的第一个字母具有不同的字体大小,浏览器会计算其宽度,就好像整个元素具有该大小一样。 (除非该元素是 a 并且它具有焦点,例如通过右键单击它。)

span {
    float:left;
}
span::first-letter {
    font-size:1.5em
}
<span>This text has a larger first letter</span> This is the rest of the text

这听起来像是 Firefox 中的错误。现在我对 Bugzilla 很糟糕,所以我找不到它,但如果以前没有人找到它,我会感到惊讶。

所以没有解决方案(除非等到错误被修复),但作为解决方法,从您的 CSS 中删除 ::first-letter 样式。这就是我所能提供的。