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 之外,我在桌面版和移动版的页脚下没有任何空间。我已经搞砸了media
、calc(100vh - height)
overflow
、position
等,但似乎没有任何效果。我读到一个建议是将所有内容放入容器中,然后将页脚设置为 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
。
还有助于将html
和body
设置为窗口高度的最小高度。
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)模式踩坑记