Javítás a Webkit 100 Vh-jához a Tailwind-ben

Hogyan lehet kijavítani a 100vh viselkedést a Tailwind-ben

A WebKit és a 100vh magasság javítása

A nézetablak magasságának 100 százalékos alkalmazásakor a WebKit és ezért a Safari elméletileg remekül kezeli a stílusot. De ha tiszteletben akarja tartani a biztonságos terület betétjeit, amelyek nagyon fontosak a mobilon, akkor vizuális inkonzitencia válik láthatóvá.

Image 65e06f472edb

Image e8b139616bb2

Mivel ez a progresszív webalkalmazás a Tailwind.css fájlt használja, megmutatom, hogyan kell helyesen használni a 100vh-t a Safari, illetve a WebKit alkalmazásban, tiszteletben tartva a biztonságos területet is, hogy webalkalmazása minden képernyőn pompásnak tűnjön.

PostCSS-plugin használatával

Javaslom a „postcss-100vh-fix” plugin használatát. Mivel a Tailwind inicializálásával már beállított egy postcss-config konfigurációt, ez a megoldás teljesen természetes, és a legkevesebb időt vesz igénybe a nézetablak magasságával kapcsolatos problémák megoldására.

// 1. Install the dependency
// npm i postcss-100vh-fix
//
// Then use a custom PostCSS-config.
// This example assumes you only have
// one custom plugin, which leads to
// the following config.
module.exports = {
  plugins: [
    require("postcss-100vh-fix")  
  ],
};

Megjegyzés az összes Next.js-felhasználó számára

Ha a Tailwind alkalmazást használja a Next.js-sel, akkor egy apró módosítást kell végrehajtania a PostCSS-config-on a dolgok működése érdekében. Ahelyett, hogy importálná a „megkövetelést”, a csomag nevét karakterláncként kell használnia a beépülő modulok tömbjében. Ezenkívül nem kell feltüntetnie a Tailwind összes alapértelmezett beépülő modulját, mivel a Tailwind automatikusan hozzáfűzi őket.

// Effectively the same config,
// but now compatible with Next.js,
// which only accepts strings for
// plugins, where they represent their
// package name.
module.exports = {
  plugins: ["tailwindcss","autoprefixer","postcss-100vh-fix"],
};

// ... in your app ...

// Now all that's left to do is 
// apply the screen-height, which
// results in a '100vh'-value:
//
// ... <div class="h-screen"> ...

Egy másik vitathatatlanul csúnyább megoldás

Bár az alábbiak biztosan nem ajánlottak, csak megmutatom, hogy ez technikailag hogyan lehetséges más módon is. A következő kód nem igényel bővítményeket vagy módosításokat a postcss-config-ban, de szükség van némi Javascriptre, és kitör a Tailwind szintaxisából, legalábbis ebben a példában optimalizálás nélkül.

// Manually setting the 'style':
//
function View(){
  const isMobileWebKit = useIsMobileWebkit();
  
  return (
    <div 
      style={{
        height: isMobileWebKit ? "-webkit-fill-available" : "100vh"
    }}> /* ... */ </div>;
}
/*
<div 
  style={{
    height: isMobileWebKit ? "-webkit-fill-available" : "100vh"
  }}> ...
*/

// This is the hook to determine
// if we're in a WebKit-env:
export function useIsMobileWebkit() {
  const [flag, setFlag] = useState(false);
  useEffect(() => setFlag(isMobileWebkit()), []);
  return flag;
}

És készen vagyunk

Ez a cikk gyors útmutatót nyújt arról, hogyan lehet kijavítani egy kicsi, de vitathatatlanul idegesítő vizuális hibát a WebKit-en, amikor a nézetablak magasságának 100 százalékát használja, miközben tiszteletben tartja a biztonságos terület betétjeit is. Remélem, tetszett ez a cikk, feltétlenül nézzen meg más érdekes útmutatókat és példákat, amelyek az alábbiakban szerepelnek.

Javaslatok

Kapcsolódó

Kiegészítés

Nyelvek