Html IE7<;李>;悬停外的项目符号/编号

Html IE7<;李>;悬停外的项目符号/编号,html,css,internet-explorer,Html,Css,Internet Explorer,以下是另一篇文章的后续内容: 在上一篇文章中,div之外的li元素已经修复,但是现在我发现了另一个带有hover元素的IE7错误。由于无法通过设置悬停元素,如何修复此问题 另外,很明显,我在IE中遇到了一些hasLayout错误,所以如果有人能给我一个很好的解释,我将不胜感激 同样,firefox中的一切都可以正常工作,等等 屏幕截图: 守则: #create_request ol { width: 339px; } #create_request li { display

以下是另一篇文章的后续内容:

在上一篇文章中,div之外的li元素已经修复,但是现在我发现了另一个带有hover元素的IE7错误。由于无法通过设置悬停元素,如何修复此问题

另外,很明显,我在IE中遇到了一些hasLayout错误,所以如果有人能给我一个很好的解释,我将不胜感激

同样,firefox中的一切都可以正常工作,等等

屏幕截图:

守则:

#create_request ol {
    width: 339px;

}

#create_request li {
    display: list-item;
    line-height: 23px;
    background-color: #E3E3E3;
    list-style: decimal;
    list-style-position: inside;
    padding-left: 25px;
    padding-top: 5px;
}

#create_request li.alternate {
    background-color: white;

}

#create_left li:hover {
    width: 356px;
    background: url('/images/list_add.png') 100% 100% no-repeat;
    background-color: #B0B0B0;
    cursor: pointer;
}

我认为您需要在规则中为OL标签声明“列表样式位置”:

#create_request ol {
  list-style-position: inside;
}

不幸的是,如果不在
  • 中引入另一个元素,这是不可能的。当
  • 元素获取布局时,IE6/7中出现错误的
    列表样式位置
    行为。您希望完全避免元素上的hasLayout。
    width
    是hasLayout触发器之一

    我建议在
  • 中放一个
    (是的,如果你想哭,我很抱歉)

    这样,跨度就可以控制
  • 的宽度,而无需为其提供布局。您只需删除
    填充顶部:5px
  • 的CSS中选择code>,并用
    行高将其抵消,否则
    将无法获得完整高度


    如果需要的话,制作一个IE6/7条件样式表。

    我知道你要做什么,但是一旦我添加了块样式,跨度就会被抛出到下一行。我认为display:inline块可以工作,但这并不能起作用。这就是它看起来的样子,这就是为什么我建议将其作为一个条件样式表。啊,误解了你所说的。因此,实现上述更改将破坏Firefox中的功能,而不是IE中的功能。所有功能都使用条件标记。谢谢
    <li><span>Item</span></li>
    
    #create_left li:hover {
        background: #B0B0B0;
        cursor: pointer;
    }
    #create_left li:hover span {
        display: block;
        width: 356px;
        background: #B0B0B0 url('/images/list_add.png') 100% 100% no-repeat;
    }