菜单图标在 Chrome 中可见,但在 Android 的标准浏览器中不可见
Menu icon visible in Chrome but not in Android's standard browser
菜单 "hamburger" 图标在 Android 的标准浏览器中不可见(已在 Samsung S5 和 Samsung Note 2 上测试)。但它确实出现在 Chrome 中并且一切正常。
使用 svg 图标。
<header class="header">
<div class="header__inner">
<img class="header__logo" src="images/city.png" alt="iconic view of a cityscape">
<h1 class="header__title">
The Brighton Times
</h1>
<a id="menu" class="header__menu">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M2 6h20v3H2zm0 5h20v3H2zm0 5h20v3H2z"/>
</svg>
</a>
</div>
</header>
<nav id="drawer" class="nav">
<ul class="nav__list">
<li class="nav__item"><a href="#">News</a></li>
<li class="nav__item"><a href="#">Events</a></li>
<li class="nav__item"><a href="#">Culture</a></li>
<li class="nav__item"><a href="#">Blog</a></li>
</ul>
</nav>
以及 responsive.css 中的代码下方。
@media screen and (max-width: 549px) {
.header__logo {height: 48px;
margin-right: 0.5em;
}
.header__title {
margin-left: 0;
font-size: 2em;
vertical-align: bottom;
}
.nav {
z-index: 10;
background-color: #fff;
width: 300px;
position: absolute;
/* This trasform moves the drawer off canvas. */
-webkit-transform: translate(-300px, 0);
transform: translate(-300px, 0);
/* Optionally, we animate the drawer. */
transition: transform 0.3s ease;
}
.nav.open {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
.nav__item {
display: list-item;
border-bottom: 1px solid #E0E0E0;
width: 100%;
text-align: left;
}
.header__menu {
display: inline-block;
position: absolute;
right: 0;
padding: 1em;
}
.header__menu svg {
width: 32px;
fill: #000000;
}
}
哦,之前我忘记了标准浏览器中的整个右侧是 clickable/tappable。所以无论你点击哪里(只要它在屏幕的右侧),菜单(抽屉)都会出现。
我似乎无法解决这个问题。
经过搜索、阅读、等待,我终于找到了自己问题的答案。如果 png 是更好的选择,谁愿意使用 svg 图标?解决方案:
而不是
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M2 6h20v3H2zm0 5h20v3H2zm0 5h20v3H2z"/>
</svg>
只需使用
<img src="/images/icon.png" height="32" width="32">
对于像我这样的菜鸟。您可以从 iconfinder.com 下载一个汉堡包图标,将其另存为 png(提示:至少 128px 并将其缩小(参见 img src 代码))。
好了。适用于所有浏览器。问题已解决。
并认为此代码来自 Google 发起的课程。这很讽刺,因为他们自己的设计在他们自己的 Android 的浏览器中不能很好地工作。
菜单 "hamburger" 图标在 Android 的标准浏览器中不可见(已在 Samsung S5 和 Samsung Note 2 上测试)。但它确实出现在 Chrome 中并且一切正常。
使用 svg 图标。
<header class="header">
<div class="header__inner">
<img class="header__logo" src="images/city.png" alt="iconic view of a cityscape">
<h1 class="header__title">
The Brighton Times
</h1>
<a id="menu" class="header__menu">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M2 6h20v3H2zm0 5h20v3H2zm0 5h20v3H2z"/>
</svg>
</a>
</div>
</header>
<nav id="drawer" class="nav">
<ul class="nav__list">
<li class="nav__item"><a href="#">News</a></li>
<li class="nav__item"><a href="#">Events</a></li>
<li class="nav__item"><a href="#">Culture</a></li>
<li class="nav__item"><a href="#">Blog</a></li>
</ul>
</nav>
以及 responsive.css 中的代码下方。
@media screen and (max-width: 549px) {
.header__logo {height: 48px;
margin-right: 0.5em;
}
.header__title {
margin-left: 0;
font-size: 2em;
vertical-align: bottom;
}
.nav {
z-index: 10;
background-color: #fff;
width: 300px;
position: absolute;
/* This trasform moves the drawer off canvas. */
-webkit-transform: translate(-300px, 0);
transform: translate(-300px, 0);
/* Optionally, we animate the drawer. */
transition: transform 0.3s ease;
}
.nav.open {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
.nav__item {
display: list-item;
border-bottom: 1px solid #E0E0E0;
width: 100%;
text-align: left;
}
.header__menu {
display: inline-block;
position: absolute;
right: 0;
padding: 1em;
}
.header__menu svg {
width: 32px;
fill: #000000;
}
}
哦,之前我忘记了标准浏览器中的整个右侧是 clickable/tappable。所以无论你点击哪里(只要它在屏幕的右侧),菜单(抽屉)都会出现。
我似乎无法解决这个问题。
经过搜索、阅读、等待,我终于找到了自己问题的答案。如果 png 是更好的选择,谁愿意使用 svg 图标?解决方案:
而不是
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M2 6h20v3H2zm0 5h20v3H2zm0 5h20v3H2z"/>
</svg>
只需使用
<img src="/images/icon.png" height="32" width="32">
对于像我这样的菜鸟。您可以从 iconfinder.com 下载一个汉堡包图标,将其另存为 png(提示:至少 128px 并将其缩小(参见 img src 代码))。
好了。适用于所有浏览器。问题已解决。
并认为此代码来自 Google 发起的课程。这很讽刺,因为他们自己的设计在他们自己的 Android 的浏览器中不能很好地工作。