// OUTIL GRATUIT · VISIONNEUSE HTML

Visionneuse HTML

Ouvrez un fichier .html ou collez le code, et voyez-le rendu ici même : dans un cadre isolé, en largeur téléphone, tablette ou bureau, avec tout ce qui se comporterait mal listé par numéro de ligne. Gratuit, immédiat, sans inscription, et le fichier ne quitte jamais votre navigateur.

GratuitImmédiatSans inscriptionRien n’est envoyé

Aussi enEnglishDeutschEspañolFrançais日本語한국어Português (Brasil)繁體中文

visionneuse html · isolée
Ouvrir un fichier

Faites glisser un fichier .html n’importe où sur cette zone, ou choisissez-en un. Il est lu avec FileReader, dans cet onglet, et n’ira pas plus loin.

Le rendu suit votre frappe avec un tiers de seconde de retard. Les remarques, elles, s’actualisent tout de suite.

Rendu

Un cadre isolé, scripts autorisés et sans accès au même origine : le code peut s’exécuter sans toucher à cette page. Choisissez une largeur pour voir la mise en page qu’aurait un téléphone ou une tablette.

Remarques sur ce code

    Comment visualiser un fichier HTML dans le navigateur

    Trois étapes, aucune n’envoie quoi que ce soit. Le moteur de rendu et les remarques tiennent dans un seul script de cette page : cela fonctionne donc aussi réseau coupé.

    1. Ouvrez le code. Faites glisser le fichier .html sur la zone, passez par le sélecteur de fichiers, ou collez directement le balisage. Les fichiers sont lus avec l’API FileReader du navigateur : rien n’est transféré nulle part.
    2. Regardez-le, puis regardez-le étroit. Le rendu apparaît dans un cadre isolé. Passez-le à 360 px pour un téléphone et à 768 px pour une tablette : le même code, aux largeurs où les mises en page s’effondrent d’habitude.
    3. Lisez les remarques en dessous. Chaque remarque porte la ligne d’où elle vient : références que le cadre ne peut pas atteindre, image chargée en http qu’une page sécurisée laisse tomber, viewport manquant qui fait mentir l’aperçu étroit.

    Comment cette visionneuse rend votre fichier

    Le balisage part directement dans une iframe via srcdoc, avec sandbox="allow-scripts" et délibérément sans allow-same-origin. En pratique, cela veut dire trois choses. Vos scripts s’exécutent : une page qui se construit toute seule au chargement se construit vraiment. Le cadre vit dans son propre origine opaque, donc rien de ce qu’il contient ne peut lire cette page, son stockage ou ses cookies. Et le CSS, les polices et les images servis par des hôtes publics se chargent normalement : une page bâtie sur un CDN ressemble à ce qu’un visiteur verra.

    Deux catégories ne se résolvent volontairement pas, et les remarques le disent plutôt que de vous laisser deviner. Les références aux fichiers voisins de l’original — style.css, img/entete.png — n’ont aucun dossier contre lequel se résoudre à l’intérieur du cadre. Les références à votre propre système de fichiers ne se chargent dans aucun onglet de navigateur : cette restriction vient du navigateur, pas de nous. Si la mise en page paraît sans style, lisez les remarques avant d’aller fouiller le CSS.

    Voir la page en largeur téléphone

    La plupart des visionneuses vous donnent une colonne à la largeur qu’a la fenêtre. Celle-ci en donne trois au cadre : 360 px, à peu près un téléphone en portrait ; 768 px, une petite tablette ; et pleine largeur, ce que permet la colonne. Le cadre est un vrai contexte de navigation : les media queries, les container queries et le retour à la ligne de flexbox répondent donc à la largeur que vous choisissez, pas à celle de votre écran.

    Une réserve que les remarques soulèvent pour vous : sans <meta name="viewport" content="width=device-width, initial-scale=1">, un téléphone ne rend pas du tout en 360 pixels CSS. Il met la page en page vers 980 puis réduit le résultat : le texte devient minuscule et vos styles mobiles soigneusement écrits ne se déclenchent jamais. L’aperçu étroit n’est honnête que si cette balise est présente — c’est exactement pour cela qu’elle est signalée sous le cadre.

    Pourquoi une page traduite en français casse à 360 px

    C’est le défaut le plus courant des pages françaises issues d’un gabarit anglais, et c’est aussi le seul qu’un aperçu étroit rend visible en une seconde. Le français est en moyenne 20 à 30 % plus long que l’anglais, et l’écart se concentre pile là où la place manque : les boutons, les onglets, les intitulés de formulaire.

    AnglaisFrançaisCaractères
    Add to cartAjouter au panier11 → 17
    Log outSe déconnecter7 → 14
    SettingsParamètres8 → 10
    Forgot password?Mot de passe oublié ?16 → 21
    Sign up freeCréer un compte gratuit12 → 23

    En pleine largeur, rien ne se voit : la maquette a été dessinée avec les libellés anglais et il reste de la marge. À 360 px, le bouton passe sur deux lignes et déborde de sa boîte, l’en-tête de tableau tombe en escalier, la barre de navigation crée une barre de défilement horizontale sur toute la page. Basculez le cadre entre Pleine et 360 px avec votre propre page : si quelque chose doit casser, c’est là que ça se verra.

    Deux détails aggravent le phénomène en français. D’abord l’espace insécable avant ! ? ; : et à l’intérieur des guillemets « » : elle interdit au navigateur de couper à cet endroit, donc « Mot de passe oublié ?» reste d’un seul tenant même quand la place manque. Ensuite les mots simplement longs — Renseignements, Abonnement, Confidentialité — qui n’ont aucun point de coupure naturel. Les correctifs sont connus et tiennent en trois lignes de CSS : min-width: 0 sur les enfants de flex qui refusent de rétrécir, overflow-wrap: anywhere sur les libellés vraiment longs, et une taille de bouton exprimée en padding plutôt qu’en width fixe.

    Une remarque honnête sur ce que fait l’outil : il ne mesure pas la longueur de vos libellés et ne détecte pas les débordements. Il vous donne le cadre à la bonne largeur, et vos yeux font le reste — c’est déjà ce que la plupart des visionneuses en ligne ne proposent pas.

    Les remarques sous le cadre, et pourquoi une visionneuse n’en a d’habitude aucune

    Le rendu répond à « est-ce que ça a l’air correct ». Il ne peut pas répondre à « est-ce que ce sera encore correct ailleurs », et c’est là que vivent la plupart des surprises. Chaque remarque est donc rattachée à un numéro de ligne et à une conséquence concrète :

    • Une image en http:// est abandonnée par toute page sécurisée. Si l’exemple est chargé, vous en regardez une en ce moment : le logo manque au-dessus et la remarque pointe la ligne.
    • Un chemin vers votre propre disque s’affiche sur votre machine et nulle part ailleurs. Dans ce cadre isolé il ne s’affiche pas non plus, ce qui est un aperçu honnête de l’expérience des autres.
    • Un <!DOCTYPE html> manquant place le navigateur en mode quirks, où le modèle de boîte et les hauteurs de ligne héritées suivent des règles d’avant 2001. L’aperçu ci-dessus n’est alors l’aperçu de rien de souhaitable.
    • Un module plutôt qu’un document — du code qui commence par import ou export default — n’est pas rendable du tout. Mieux vaut se l’entendre dire que fixer un cadre vide.

    Si votre fichier vise une vraie adresse plutôt qu’un simple coup d’œil, la page héberger un fichier HTML fait les mêmes vérifications et enchaîne sur les deux commandes qui publient le dossier.

    // Questions fréquentes

    Comment visualiser un fichier HTML sans le téléverser ?

    Utilisez une visionneuse qui lit le fichier en local. Sur cette page il est lu avec l’API FileReader du navigateur et rendu dans une iframe isolée du même onglet : le contenu n’atteint donc jamais un serveur. Vous pouvez aussi simplement double-cliquer sur le fichier pour l’ouvrir dans votre navigateur ; la différence, c’est que cette page vous dit en plus quelles parties se comporteront autrement quand le fichier ne sera plus sur votre disque.

    Puis-je voir la page telle qu’elle apparaîtrait sur un téléphone ?

    Oui : réglez le cadre sur 360 px pour un téléphone ou 768 px pour une tablette. Les media queries répondent à la largeur du cadre, la mise en page que vous voyez est donc la mise en page à cette largeur. Une réserve : si le fichier n’a pas de balise viewport, un vrai téléphone n’utilisera pas 360 pixels CSS et l’aperçu étroit sera plus flatteur que la réalité. Les remarques signalent ce cas.

    Pourquoi mes boutons débordent-ils en français et pas en anglais ?

    Parce qu’un texte français fait en moyenne 20 à 30 % de caractères de plus que l’anglais dont le gabarit est issu : Add to cart devient Ajouter au panier, Log out devient Se déconnecter. En pleine largeur la marge absorbe l’écart, à 360 px non. Basculez le cadre entre pleine largeur et 360 px : si un libellé doit casser sa boîte, il le fait là. L’outil ne mesure pas ces débordements, il vous donne la bonne largeur pour les voir.

    Pourquoi mon CSS ou mes images n’apparaissent-ils pas dans l’aperçu ?

    Parce que le cadre n’a aucun dossier contre lequel résoudre les chemins relatifs. Une référence comme style.css ou img/entete.png désigne un fichier posé à côté de votre original, que le navigateur ne peut pas atteindre depuis une iframe srcdoc. Les feuilles de style et les images servies depuis une URL https, elles, apparaissent. Les remarques sous le cadre listent chaque référence non résolue avec sa ligne.

    Est-il prudent de coller du HTML contenant des scripts dans cette visionneuse ?

    Le cadre exécute les scripts volontairement, sans quoi une page qui se construit au chargement n’afficherait rien. Il est isolé et sans accès au même origine : le code qu’il contient ne peut ni lire cette page, ni son stockage, ni ses cookies, ni changer d’adresse dans l’onglet. Il peut en revanche faire des requêtes vers des hôtes publics, exactement comme dans un onglet normal : traitez du balisage inconnu avec la prudence habituelle.

    Cette visionneuse HTML fonctionne-t-elle hors ligne ?

    Oui. Tout tient dans un seul script de la page, sans appel réseau qui lui soit propre. Une fois la page chargée, vous pouvez vous déconnecter et continuer à ouvrir des fichiers. Un balisage qui va chercher ses scripts ou ses polices sur un CDN sera bien sûr rendu sans eux.

    Comment transformer ce que je regarde en page ouvrable par d’autres ?

    Enregistrez-le sous index.html dans un dossier, puis publiez ce dossier : clize claim votrenom réserve l’identifiant gratuit votrenom.clize.app, et clize deploy ./dossier --domain votrenom.clize.app le met en ligne en HTTPS. Il n’y a pas d’éditeur où déménager ni d’étape d’export : les octets que vous avez vus sont les octets servis.

    clize claim + clize deploy — le lien que cet aperçu n’a pas

    Donnez-lui maintenant une URL que quelqu’un d’autre peut ouvrir.

    Le rendu ci-dessus ne vit que dans votre onglet. Deux commandes transforment le même fichier en une adresse HTTPS que vous pouvez coller dans un message : identifiant gratuit, certificat automatique, autant de redéploiements que vous voulez.

    $ npm i -g @clize/clize && clize login
    $ clize claim votrenom
    $ clize deploy ./dossier --domain votrenom.clize.app
    [ Sites by Clize → ]