2016-11-30 3 views
0

Я работаю над отзывчивой веб-страницей. Я использую настраиваемый navbar, следующим образом;Значок Navbar не отображается в некоторых браузерах

 function myFunction() { 
 
     var x = document.getElementById("myTopnav"); 
 
     if (x.className === "topnav") { 
 
      x.className += " responsive"; 
 
     } else { 
 
      x.className = "topnav"; 
 
     } 
 
     }
/* Remove margins and padding from the list, and add a black background color */ 
 

 
ul.topnav { 
 
    list-style-type: none; 
 
    margin: 10; 
 
    padding: 10; 
 
    overflow: hidden; 
 
} 
 
/* Float the list items side by side */ 
 

 
ul.topnav li { 
 
    float: left; 
 
    margin: 10; 
 
    padding: 10; 
 
} 
 
/* Style the links inside the list items */ 
 

 
ul.topnav li a { 
 
    display: inline-block; 
 
    color: #f2f2f2; 
 
    text-align: center; 
 
    padding: 14px 16px; 
 
    text-decoration: none; 
 
    transition: 0.3s; 
 
    font-size: 40px; 
 
} 
 
/* Change background color of links on hover */ 
 

 
/* ul.topnav li a:hover {background-color: #fff;} 
 
    
 
    /* Hide the list item that contains the link that should open and close the topnav on small screens */ 
 

 
ul.topnav li.icon { 
 
    display: none; 
 
} 
 
/* When the screen is less than 680 pixels wide, hide all list items, except for the first one ("Home"). Show the list item that contains the link to open and close the topnav (li.icon) */ 
 

 
@media screen and (max-width: 680px) { 
 
    ul.topnav li:not(:first-child) { 
 
    display: none; 
 
    } 
 
    ul.topnav li.icon { 
 
    float: right; 
 
    display: inline-block; 
 
    } 
 
} 
 
/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens */ 
 

 
@media screen and (max-width: 680px) { 
 
    ul.topnav.responsive { 
 
    position: relative; 
 
    } 
 
    ul.topnav.responsive li.icon { 
 
    position: absolute; 
 
    right: 0; 
 
    top: 0; 
 
    } 
 
    ul.topnav.responsive li { 
 
    float: none; 
 
    display: inline; 
 
    } 
 
    ul.topnav.responsive li a { 
 
    display: block; 
 
    text-align: left; 
 
    }
<ul class="topnav" id="myTopnav"> 
 
    <li> 
 
    <a href="#news"> 
 
     <img class="img-responsive" width="60px" src="imagenes/botones/logo_hera.png" /> 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#news"> 
 
     <img class="img-responsive" width="180px" src="imagenes/botones/doctores_boton.png" /> 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#news"> 
 
     <img class="img-responsive" width="180px" src="imagenes/botones/hospitales_boton.png" /> 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#news"> 
 
     <img class="img-responsive" width="180px" src="imagenes/botones/farmacias_boton.png" /> 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#news"> 
 
     <img class="img-responsive" width="180px" src="imagenes/botones/laboratorios_boton.png" /> 
 
    </a> 
 
    </li> 
 

 
    <li class="icon"> 
 
    <a href="javascript:void(0);" onclick="myFunction()">&#9776;</a> 
 
    </li> 
 
</ul>

На моем компьютере и моем iPhone, я могу видеть значок NavBar как я хочу:

iPhone Скриншот: enter image description here

Но на моем Android устройства это выглядит следующим образом:

enter image description here

Нет значка навигационной панели.

Что не так в моем коде?

EDIT:

Я знаю значок переключения есть, но не видно. Он работает при прикосновении

+0

попробуйте добавить '! Important' в' display: inline-block; 'строка – khuderm

+0

@khuderm, как это: display: inline-block! Important; ? Никаких изменений, но спасибо – mvasco

+0

, возможно, проблема со средним экраном? Просто гадать здесь. Попробуйте выполнить тестирование с явной шириной и посмотрите, не найдете ли что-нибудь. –

ответ

0

, пожалуйста, используйте этот код в таблице стилей добавить

@media screen and (max-width: 680px) { 
ul.topnav li.icon { 
display: block; 
} 
} 
+0

Спасибо, добавлено в код, но никаких изменений. – mvasco

0

Поскольку вы дали float:rigt на значке это выходит за шириной устройства в андроиде. Добавление правого поля исправило проблему для меня. более

@media screen and (max-width: 680px) 
ul.topnav li.icon { 
    float: right; 
    margin-right: 10%; 
    display: inline-block !important; 
} 

Один недействительно свойством я нашел в ul.topnav является рентабельность и стоимость заполнения только планируются числовыми. Пожалуйста, используйте следующий фрагмент

ul.topnav { 
    list-style-type: none; 
    margin: 0; 
    padding: 10px; 
    width: 100%; 
    display: inline-block; 
} 
+0

Спасибо, никаких изменений с вашим предложением, я знаю, что значок переключения есть, но не отображается. Он срабатывает при касании. – mvasco

+0

Я живу, редактировал ваш URL http://herasalud.com/#news. Его работа прекрасна. Может быть, очистить кеш;) –

+0

Я знаю, что он отлично работает на большинстве устройств, но не на 5,5-дюймовом Android-мобиле. На моем ПК, на моем Mac, на моем iPhone он отлично работает. – mvasco

0

Попробуйте это -

@media screen and (max-width: 680px) { 
    ul.topnav li:not(:first-child) { 
    display: none; 
    } 

    ul.topnav li { 
    float:right; 
    } 

    ul.topnav li.icon { 
    display: inline-block; 
    } 
} 

https://jsfiddle.net/chris2001/Lc57jw4c/1/

Не уверен, если это то, что вы хотите, хотя.

+0

Спасибо, но значок переключения не отображается на Android-устройстве 5.5inch – mvasco

Смежные вопросы