Barre défilement verticale dans une balise iframe
Résolu
heliconius
Messages postés
539
Date d'inscription
Statut
Membre
Dernière intervention
-
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
heliconius Messages postés 539 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
J'ai une page qui contient une balise iframe
La page tarifcat.php affiche ici les tarifs de la catégorie de produits n° 6 mais elle peut aussi bien afficher une autre catégorie de produits. Certaines catégories contiennent peu de produits, d'autres beaucoup.
iframe me place systématiquement une barre de défilement verticale, même s'il n'y a que deux produits à afficher. Dans ce cas, la barre de défilement verticale est inutile.
J'aimerais que cette barre de défilement verticale ne soit affichée qu'en cas de nécessité. J'ai lu sur une doc qu'on pouvait ajouter l'attribut scrolling="no|yes|auto".
scrolling="auto" est inopérant.
En effet, le W3C ( https://www.w3schools.com/tags/tag_iframe.asp ) précise que l'attribut scrolling n'est pas supporté en HTML5.
J'ai lu par ailleurs d'autres propositions CSS telles que overflow:hidden. La barre disparait et c'est bien mais le défilement, lorsqu'il est nécessaire, est impossible. Il y a l'attribut CSS overflow-y: hidden|scroll mais pas auto.
Mon souhait :
- si la page affichée dans l'iframe est courte -> pas de barre de défilement verticale
- si la page affichée dans l'iframe est longue -> affichage de cette barre de défilement.
Quelqu'un a-t-il une solution ? (avec iframe ou un autre moyen)
Merci beaucoup pour votre aide et vos réponses
J'ai une page qui contient une balise iframe
<iframe src="tarifcat.php?cat=6"
name="tarifcat"
width="800"
height="370"
frameborder="0"></iframe>
La page tarifcat.php affiche ici les tarifs de la catégorie de produits n° 6 mais elle peut aussi bien afficher une autre catégorie de produits. Certaines catégories contiennent peu de produits, d'autres beaucoup.
iframe me place systématiquement une barre de défilement verticale, même s'il n'y a que deux produits à afficher. Dans ce cas, la barre de défilement verticale est inutile.
J'aimerais que cette barre de défilement verticale ne soit affichée qu'en cas de nécessité. J'ai lu sur une doc qu'on pouvait ajouter l'attribut scrolling="no|yes|auto".
scrolling="auto" est inopérant.
En effet, le W3C ( https://www.w3schools.com/tags/tag_iframe.asp ) précise que l'attribut scrolling n'est pas supporté en HTML5.
J'ai lu par ailleurs d'autres propositions CSS telles que overflow:hidden. La barre disparait et c'est bien mais le défilement, lorsqu'il est nécessaire, est impossible. Il y a l'attribut CSS overflow-y: hidden|scroll mais pas auto.
Mon souhait :
- si la page affichée dans l'iframe est courte -> pas de barre de défilement verticale
- si la page affichée dans l'iframe est longue -> affichage de cette barre de défilement.
Quelqu'un a-t-il une solution ? (avec iframe ou un autre moyen)
Merci beaucoup pour votre aide et vos réponses
A voir également:
- Barre défilement verticale dans une balise iframe
- Problème barre de défilement verticale - Guide
- Barre verticale clavier ✓ - Forum MacOS
- Barre verticale mac ✓ - Forum MacOS
- Svp faire une barre verticale avec clavier - Forum Clavier
- Balise br ✓ - Forum Webmastering
2 réponses
Bonjour,
J'ai indiqué cela dans mon message initial. "overflow: hidden" fait disparaître cette barre de défilement. Mais...
Supposons que, pour rester dans l'espace de la page, l'iframe doive afficher 20 lignes au maximum. Si le nombre d'articles dans la catégorie de produit est inférieur à 20, tout va très bien puisque "overflow: hidden" fait disparaître cette barre de défilement qui devient inutile puisque tout est affiché. Il n'y a effectivement pas besoin de faire défiler.
En revanche, si le nombre d'article est supérieur à 20 (admettons 30 pour l'exemple), seuls les 20 premiers seront affichés et, puisque "overflow: hidden" fait disparaître cette barre de défilement, je n'ai alors plus le moyen de faire défiler le cadre dans l'iframe pour voir les 10 derniers articles.
J'ai trouvé la solution là : https://www.zonecss.fr/proprietes-css/overflow-css.html
"overflow : auto" ne fonctionne pas avec iframe mais avec une div dimensionnée. Volià la solution trouvée et fonctionnelle :
Finalement, pour ce que je voulais faire, c'est nettement mieux qu'une iframe ; ça m'évite un fichier php "producteur de lignes" pour alimenter l'iframe. Tout est dans la page.
Un problème sans solution est un problème mal posé. (Albert Einstein)
J'ai indiqué cela dans mon message initial. "overflow: hidden" fait disparaître cette barre de défilement. Mais...
Supposons que, pour rester dans l'espace de la page, l'iframe doive afficher 20 lignes au maximum. Si le nombre d'articles dans la catégorie de produit est inférieur à 20, tout va très bien puisque "overflow: hidden" fait disparaître cette barre de défilement qui devient inutile puisque tout est affiché. Il n'y a effectivement pas besoin de faire défiler.
En revanche, si le nombre d'article est supérieur à 20 (admettons 30 pour l'exemple), seuls les 20 premiers seront affichés et, puisque "overflow: hidden" fait disparaître cette barre de défilement, je n'ai alors plus le moyen de faire défiler le cadre dans l'iframe pour voir les 10 derniers articles.
J'ai trouvé la solution là : https://www.zonecss.fr/proprietes-css/overflow-css.html
"overflow : auto" ne fonctionne pas avec iframe mais avec une div dimensionnée. Volià la solution trouvée et fonctionnelle :
<div style="display:block; width:800px; height:370px; overflow:auto">
<table border="0" cellspacing="0" cellpadding="0" width="750">
...
PHP: Production des lignes d'articles de la catégorie
...
</table>
</div>
Finalement, pour ce que je voulais faire, c'est nettement mieux qu'une iframe ; ça m'évite un fichier php "producteur de lignes" pour alimenter l'iframe. Tout est dans la page.
Un problème sans solution est un problème mal posé. (Albert Einstein)