色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

iOS Safari在輸入焦點(diǎn)上覆蓋100vh:在DOM下面注入空白空間

李中冰2年前8瀏覽0評論

當(dāng)在iOS Safari上選擇一個(gè)輸入字段時(shí),大約會(huì)在DOM之外的HTML標(biāo)簽下面注入大約150px

enter image description here

在上面的截圖中,綠色邊框被應(yīng)用于HTML元素——下面的黑色可滾動(dòng)區(qū)域只有在輸入字段被聚焦時(shí)才能在iOS safari上訪問。而HTML元素保留其100vh/svh屬性

您可以看到& ltHTML & gt當(dāng)我將鼠標(biāo)懸停在控制臺(tái)中的元素上時(shí),標(biāo)簽會(huì)變成藍(lán)色...我這樣做是為了幫助表明空白空間與網(wǎng)頁本身無關(guān)

預(yù)期的功能是讓鍵盤不要在鍵盤下方插入這個(gè)空格…就像iOS上的其他瀏覽器一樣

enter image description here

我花了一些時(shí)間,使用JS和CSS,使用不同的高度值(在我的實(shí)例中,SVH是首選)和溢出樣式設(shè)置,但這些都沒有影響,因?yàn)樘砑拥骄W(wǎng)頁的空間似乎與DOM無關(guān),并且無法通過控制臺(tái)訪問

具體來說,我已經(jīng)試驗(yàn)過在頁面加載時(shí)計(jì)算實(shí)際的視口高度,然后在頁面的整個(gè)生命周期中使用這個(gè)固定值——通過將這個(gè)固定值應(yīng)用到body/ html元素來確保在顯示鍵盤時(shí)底部不會(huì)增加額外的空間

半鑄鋼?鋼性鑄鐵(Cast Semi-Steel)

body {
  --vh: 100vh; /* Fallback for browsers that do not support Custom Properties */
  height: calc(var(--vh, 1vh) * 100);
  overflow: auto;
}

射流研究…

useEffect(() => {
  let vh = window.innerHeight * 0.01;
  document.documentElement.style.setProperty('--vh', `${vh}px`);
  
  window.addEventListener('resize', () => {
    let vh = window.innerHeight * 0.01;
    document.documentElement.style.setProperty('--vh', `${vh}px`);
  });

  return () => {
    window.removeEventListener('resize', () => {
      let vh = window.innerHeight * 0.01;
      document.documentElement.style.setProperty('--vh', `${vh}px`);
    });
  };
}, []);

但是由于注入的空間似乎不是DOM的一部分——更新& ltHTML & gt或者& ltbody & gt標(biāo)簽并不能真正解決問題。

有人找到解決這個(gè)問題的方法了嗎?

代碼沙箱(代碼) 代碼沙箱(演示) 屏幕錄制 另一個(gè)(未解決的)SO線程討論相同的問題 我試著用DevTools修復(fù)你的css。 我設(shè)法通過添加框大小來修復(fù)它:邊框;

我希望這有所幫助。

第一個(gè)解決方案是用下面的代碼更新html標(biāo)簽樣式

html {
border: 5px solid green;
max-height: 100svh;
max-width: 100vw;
height: 100vh;
width: 100vw;
overflow: hidden;
box-sizing: border-box; //Add this

}

第二個(gè)解決方案是給定高度100vh - 10px,寬度100vw - 10px,因?yàn)檫吙蛟趯挾群透叨壬险加?5 + 5)個(gè)像素,所以從寬度和高度上減少它的使用

html {
    border: 5px solid green;
    max-height: 100svh;
    max-width: 100vw;
    height: calc(100vh - 10px); //reduce 10px from height (5px + 5px) border of top and bottom
    width: calc(100vw - 10px);  //reduce 10px from width (5px + 5px) border of left and right
    overflow: hidden;
}

也給文本區(qū)域字段css屬性

textarea {
width: 100%;
max-width: 100%;
resize: none;  //It will disable option to resize textarea by textarea bottom-right corner
}

試試看,讓我知道它是否有效 謝謝你

我建議嘗試:

body {
  height: 100%;
  overflow: auto;
}

我不知道這是否可行,因?yàn)槲覜]有看到任何實(shí)際的html