已找到解决方案。事实证明,截至 9.0.2 的 iOS 9 UIWebView 已经破坏了 ~(波浪号)选择器。
为了解决这个问题,我的代码必须不那么通用,并使用 CSS +(加号)选择器来获取我需要做的事情的选择器才能工作。
这是我作为菜单工作的一个非常基本的表示。
<input type="checkbox" class="nav-trigger" id="nav-trigger" />
<nav class="MobileMenu" />
<div class="Content">
<label for="nav-trigger"/>
</div>
iOS9之前控制它的样式
<style>
.Content
{
width: 100%;
height: 100%; /*background-color: #fff;*/
position: relative;
top: 0;
bottom: 100%;
left: 0;
z-index: 1;
}
nav.MobileMenu
{
list-style: none;
width: 60%;
height: 100%;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 0;
}
nav.MobileMenu
{
display: none;
overflow-y: scroll;
}
label[for="nav-trigger"]
{
position: absolute;
margin: 7px 0 0 10px;
width: 30px;
height: 30px;
cursor: pointer;
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='https://www.w3.org/1999/xlink' version='1.1' x='0px' y='0px' width='30px' height='30px' viewBox='0 0 30 30' enable-background='new 0 0 30 30' xml:space='preserve'><rect width='30' height='6'/><rect y='24' width='30' height='6'/><rect y='12' width='30' height='6'/></svg>");
background-size: contain;
}
.nav-trigger:checked ~ nav.MobileMenu
{
display: block;
}
.nav-trigger:checked ~ div.NotMenu
{
-webkit-transform: translate(60%,0);
-moz-transform: translate(60%,0);
-ms-transform: translate(60%,0);
-o-transform: translate(60%,0); /*transform: translate(60%,0);*/
transform: translate(60%,0); /*left: 60%;*/
box-shadow: 0 0 5px 5px rgba(0,0,0,0.5);
}
.nav-triggerLink:checked ~ ul.level0
{
visibility: hidden;
}
.NotMenu
{
-webkit-transition: -webkit-transform 0.3s ease-out;
-moz-transition: transform 0.3s ease-out;
-o-transition: transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
</style>
改变了CSS
.nav-trigger:checked + nav.MobileMenu
{
display: block;
}
.nav-trigger:checked + nav.MobileMenu + div.Content
{
-webkit-transform: translate(60%,0);
-moz-transform: translate(60%,0);
-ms-transform: translate(60%,0);
-o-transform: translate(60%,0); /*transform: translate(60%,0);*/
transform: translate(60%,0); /*left: 60%;*/
box-shadow: 0 0 5px 5px rgba(0,0,0,0.5);
}