简体   繁体   中英

CSS menu is different in Safari on iOS, OK in Firefox & IE

I have created a new custom Wordpress theme. Stripping out the Wordpress drag and drop menu stuff, I have this html:

<div id="navbar">
 <div id="navholder">
  <div id="navbarleft">
  <ul class="sf-menu">
  <li><a href="http://mydomain.com">Home</a></li>
  <li><a href="http://mydomain.com/privacy/">Privacy</a></li>
  </ul>
  </div>
 </div>
</div>

and this CSS:

#navholder {
    float:              left;
    width:              100%;
    font-weight: bold;
}
#navbar {
    width: 960px;
    height: 33px; 
    font-size: 18px;
    color: #eee;
    margin: 0px auto;
    padding: 0px;
    }
#navbarleft {
    width: 950px;
    float: left;
    margin: 0px;
    padding: 0px;
    }
.sf-menu, .sf-menu * {
    margin:         0;
    padding:        0;
    font-size:13px;
    list-style:     none;
}
.sf-menu {

    float:left;
        width:100%;
}
.sf-menu ul {
    position:absolute;
    top:-999em;
    width:15em; 
}
.sf-menu ul li, .topsf-menu ul li {
    width:100%;
}
.sf-menu li:hover, .topsf-menu li:hover {
    visibility:inherit; /* fixes IE7 'sticky bug' */
}
.sf-menu li {
    float:left;
    position:relative;
    background:transparent;
}
.sf-menu a {
    display:block;
    position:relative;
    color: #CCC !important;
    padding:9px 15px;
    text-decoration:none;
    text-transform:uppercase; 
}
.sf-menu li:hover ul, .sf-menu li.sfHover ul {
    left:           0;
    top:            2.5em; 
    z-index:        99;
}
ul.sf-menu li:hover li ul, ul.sf-menu li.sfHover li ul, ul.topsf-menu li:hover li ul, ul.topsf-menu li.sfHover li ul {
    top:            -999em;
}
ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul, ul.topsf-menu li li:hover ul, ul.topsf-menu li li.sfHover ul {
    left:           15em; /* match ul width */
    top:            0;
}
ul.sf-menu li li:hover li ul, ul.sf-menu li li.sfHover li ul, ul.topsf-menu li li:hover li ul, ul.topsf-menu li li.sfHover li ul {
    top:            -999em;
}
ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul, ul.topsf-menu li li li:hover ul, ul.topsf-menu li li li.sfHover ul {
    left:           15em; /* match ul width */
    top:            0;
}
.sf-menu ul li a {
    color:              #eee;
    padding:            5px 15px;
    text-decoration:    none;
    border:             1px solid #777;
}
.sf-menu li li {
    background:         #162934;
}
.sf-menu li li li {
    background:         #999;
}
.sf-menu li:hover, .sf-menu li.sfHover, .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
    background:         #162934;
    outline:            0;
}

The menu displays fine in Firefox and IE but Safari places the menu's text too low.

NOTE: THIS IS ONLY SAFARI ON iOS.

Any ideas why this may be happening?

JSFiddle Demo

Update: Please note, the fiddle demo appears fine on iOS Safari, but the problem happens on this live site with similar template here: http://www.badassgamereview.com

I dont see any problems except that in Safar PRIVACY looks kinda like PRIV ACY with a little space but that could be because of the browser cause every browser reads a font differently. you can add line-height: 18px but i'm really not sure what is your problem

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM