Ipad中100vh 和 100%踩坑记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ipad中100vh 和 100%踩坑记相关的知识,希望对你有一定的参考价值。

参考技术A

自己尝试的解决方案

后来发现,是css属性值的问题。

即, flex容器中的绝对定位子元素会脱离flex布局流 ,也就是说flex: 1对子元素来说已经失效了。因此他的高度为绝对定位中的100%设置的高度,但是又设置了overflow:hidden,因此才会在虚拟键盘隐藏时出现一部分空白,从而导致了导航条的隐藏。

如何从 iPhone X 和 iPad 版本中删除页脚下的空白?

【中文标题】如何从 iPhone X 和 iPad 版本中删除页脚下的空白?【英文标题】:How do I remove the white space under footer from the iPhone X and iPad version? 【发布时间】:2021-10-20 01:55:04 【问题描述】:

除了 iPhone X 和 iPad 之外,我在桌面版和移动版的页脚下没有任何空间。我已经搞砸了mediacalc(100vh - height)overflowposition 等,但似乎没有任何效果。我读到一个建议是将所有内容放入容器中,然后将页脚设置为 position: absolute,但我不确定这将如何影响我的网格。

html,
body,
div,
footer,
header,
nav,
section,
time,
mark,
audio,
video 
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;


footer,
header,
nav,
section 
  display: block;


body 
  line-height: 1;
  background-color: #f3f3f3;


.services-wrapper 
  display: grid;
  width: auto;
  grid-template-rows: auto 3fr;
  grid-row-gap: 20px;
  height: calc(100vh - 30px);


.services-grid 
  padding-bottom: 30px;
  overflow: auto;


.services-grid>div 
  background-color: white;
  vertical-align: middle;
  padding: 25px;
  margin: 30px;


footer 
  position: relative;
  padding-top: 5px;
  margin-top: -30px;
  background-color: white;
  height: 30px;
  width: 100%;
  overflow: hidden;
  clear: both;
<header></header>
<main>
  <section class="services-banner">
    <div class="services-vertical-center">
    </div>
  </section>
  <section class="services-grid-wrapper">
    <div class="services-grid">
      <div class="services-grid-desc">
      </div>
      <div class="services-grid-desc">
      </div>
      <div class="services-grid-desc">
      </div>
    </div>
  </section>
</main>
<footer></footer>

Edit:
After applying the following suggestion:

html, body 
min-height: 100vh;


body 
display: flex;
flex-direction: column;


footer 
margin-top: auto;

This is what I'm trying to fix now, removing all this excess space above the footer 

[![screenshot inspecting iPad][1]][1]

【问题讨论】:

【参考方案1】:

您可以尝试将正文设置为flex

还有助于将htmlbody 设置为窗口高度的最小高度。

html, body 
  min-height: 100vh;


body 
  display: flex;
  flex-direction: column;


footer 
  margin-top: auto;

【讨论】:

感谢回复,现在页脚在底部,但现在页脚上方有多余的空间,我无法摆脱 你能分享你得到的输出和你想要的输出的截图吗? 我刚刚发布了一个,但不确定它是否有效@Nishant【参考方案2】:

我认为您正在寻找这样的东西:

    
    html,  div, header, nav, section,
    time, mark, audio, video 
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    
    
    
    footer,header,nav,section 
    display:block;
    
    

    .services-wrapper 
    display: grid;
    width: auto;
    grid-template-rows: auto 3fr;
    grid-row-gap: 20px;
    height: calc(100vh - 30px);
    
    
    
    .services-grid 
    padding-bottom: 30px;
    overflow: auto;
    
    
    .services-grid > div 
    background-color: white;
    vertical-align: middle;
    padding: 25px;
    margin: 30px;
    
    
    body
        background-color:rgb(39, 39, 39);
          
    .footer 
       position: fixed;
       left: 0;
       bottom: 0;
       width: 100%;
       background-color: black;
       color: white;
       text-align: center;
       padding: 17px;
    
    a
      padding: 20px;
      font-size: 18px;
      color:white;
      text-decoration:none;
    
<body>
    <header>
    </header>
    <main>
        <section class="services-banner">
            <div class="services-vertical-center">          
            </div>
        </section>
        <section class="services-grid-wrapper">
            <div class="services-grid">
                <div class="services-grid-desc">                  
                </div>
                <div class="services-grid-desc">                 
                </div>
                <div class="services-grid-desc">                   
                </div>
            </div>
        </section>
    </main>
    <div class="footer">
        <a href="">Terms
       </a>
       <a href="">Privacy policy</a>
       <a href="">About</a>
       <a href="">Contact Us</a>
    
        </div>
    </body>

如果对你有帮助,请告诉我。

【讨论】:

如果您需要其他内容,请分享您想要的输出的屏幕截图。 请解释你在代码中做了什么,以便阅读它的人可以理解。 非常感谢您的回答。它确实将页脚向下移动,但现在它被锁定在底部,并且页脚上方有我无法摆脱的所有这些多余空间。我想要底部的页脚,但只有在向下滚动到底部后才能看到

以上是关于Ipad中100vh 和 100%踩坑记的主要内容,如果未能解决你的问题,请参考以下文章

rsyslog磁盘辅助(Disk-Assisted)模式踩坑记

Spring @Transactional踩坑记

踩坑记

HttpWebRequest 改为 HttpClient 踩坑记-请求头设置

踩坑记

FastDFS踩坑记