如何保持固定元素';孩子的位置固定了吗?(iOS网络)

如何保持固定元素';孩子的位置固定了吗?(iOS网络),ios,css,Ios,Css,我在为iOS设备设计的am移动站点上使用了sidenav上的固定位置。对于熟悉iOS web引擎的开发人员,他们应该知道,一旦父元素设置为具有溢出:隐藏,即使其子元素之一具有溢出:滚动属性,整个元素也将变得不可滚动 <md-sidenav md-component-id="left"> <md-toolbar> <div class="md-toolbar-tools"> <h2>Menu Control Center<

我在为iOS设备设计的am移动站点上使用了sidenav上的固定位置。对于熟悉iOS web引擎的开发人员,他们应该知道,一旦父元素设置为具有
溢出:隐藏
,即使其子元素之一具有
溢出:滚动
属性,整个元素也将变得不可滚动

<md-sidenav md-component-id="left">
  <md-toolbar>
    <div class="md-toolbar-tools">
      <h2>Menu Control Center</h2>
    </div>
  </md-toolbar>
  <section>
    <md-switch id="nsfw">NSFW</md-switch>
    <md-divider></md-divider>
      <md-content  md-ink-ripple><div class='navBtn' layout-align="start center">
        One
      </div></md-content>
      <md-content  md-ink-ripple><div class='navBtn' layout-align="start center">
        Two
      </div></md-content>
      <md-content  md-ink-ripple><div class='navBtn' layout-align="start center">
        Three
      </div></md-content>
      <md-content  md-ink-ripple><div class='navBtn' layout-align="start center">
        Four
      </div></md-content>
      <md-content  md-ink-ripple><div class='navBtn' layout-align="start center">
        Five
      </div></md-content>
    <md-divider></md-divider>
    <md-content id="navFooter">
      <p>© copyright</p>
    </md-content>
  </section>
</md-sidenav>

菜单控制中心
NSFW
一个
两个
三
四
五
©版权所有

因此,
md工具栏
是我喜欢保持在顶部的子元素,而
部分
是用户可以在分辨率非常低的屏幕上滚动的部分。我意识到当设置到固定位置时,
md工具栏将被滚动。在桌面上,我可以将
md工具栏
设置为
溢出:隐藏
,并允许
部分
执行
溢出:滚动
,但在iOS上它将不起作用。其行为是,用户可以滚动整个
md工具栏
,也可以在看到这些元素时滚动其后面的元素,并且
md工具栏
会在他们松开拇指时反弹

对于那些不了解iOS web行为的人,以下是示例:

md toolbar
切换到
overflow:hidden
并允许
部分执行
overflow:scroll
时,您可以看到菜单上的元素没有被滚动,菜单后面的元素就是被滚动的元素


对于那些想看到正确行为的桌面示例的人,请查看此演示页面:

Facebook或Google等主要网站决定不使用固定位置菜单是有充分理由的,因为iOS上的web引擎存在根本性缺陷。但是有一种方法可以解决这个问题,而且只有当你决定将菜单的高度设置为100%时(看起来你是这样的)

在第一步中,将
md sidenav
元素设置为100%高度。然后将
部分
元素也设置为100%高度,然后设置
溢出:滚动
。这将确保iOS不会在
md sidenav
上禁用滚动,同时允许其子元素在发生溢出时滚动


但这一解决方案仍然存在缺陷。例如,如果用户在“菜单控制中心”区域滚动,他们仍将滚动菜单后面的元素,并将菜单从屏幕上滚动。在苹果采取行动之前,这是我们最好的解决方案。

不,你提到的有关IOS溢出属性的内容是错误的。很抱歉,我对IOS设备所说的话。