Search code examples
cssnavigationhoverinternet-explorer-11

IE11 CSS hover rule for list item not triggered


Horizontal navigation, written in CSS.

Expected behaviour: show sub menu when hovering main list items

Problem: IE11 ignores the hover rules for the list items

.desktop-header ul li > ul {
    background: #fff;
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
    visibility: hidden;
    opacity: 0;
    min-width: 100%;
    position: absolute;
    margin-top: 5px;
    left: 0;
    padding-top: 5px;
    display: none;
    padding-bottom: 10px;
}

.desktop-header ul li:hover > ul,
.desktop-header ul li:focus-within > ul,
.desktop-header ul li ul:hover,
.desktop-header ul li ul:focus {
    visibility: visible;
    opacity: 1;
    display: block;
}

jsfiddle: https://jsfiddle.net/dauwrsm2/3/


Solution

  • It appears to be an issue with the focus-within selector. If you change your CSS to the following it works:

    .desktop-header ul li:hover > ul,
    .desktop-header ul li:focus > ul,
    .desktop-header ul li ul:hover,
    .desktop-header ul li ul:focus {
        visibility: visible;
        opacity: 1;
        display: block;
    }