专业编程基础技术教程

网站首页 > 基础教程 正文

移动端浏览器软键盘收起后被顶起的页面不回落

ccvgpt 2024-08-04 12:09:53 基础教程 17 ℃

在移动端浏览器中,父元素使用绝对定位占满整个屏幕时,

如果子元素的总高度不能触发滚动;收回软键盘时,被顶起的页面不会复原

移动端浏览器软键盘收起后被顶起的页面不回落

index.tsx

import styles from './index.less';

export default function IndexPage() {
  return (
    <div className={styles.page}>
      <h3>标题1</h3>
      <h3>标题2</h3>
      <h3>标题3</h3>
      <h3>标题4</h3>
      <h3>标题5</h3>
      <input type="text" placeholder="请输入文本"/>
    </div>
  );
}

index.less

.page{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow-y: auto;
  background-color: #ededed;
}

input{
  margin: 0 auto;
  margin-top: 300px;
  display: block;
  line-height: 1.5em;
}

错误示例:

解决方法:将绝对定位的父元素 bottom 值改为 -0.1px。这样父元素永远能触发滚动,但因为只多了 0.1px 界面上又不会显示出来。

修改 index.less 将 bottom 改为 -0.1px

.page{
  position: absolute;
  top: 0;
  right: 0;
  bottom: -0.1px;
  left: 0;
  overflow-y: auto;
  background-color: #ededed;
}

input{
  margin: 0 auto;
  margin-top: 300px;
  display: block;
  line-height: 1.5em;
}

正确示例:



Tags:

最近发表
标签列表