2009-06-07 6 views
2

Comment puis-je trop-plein cachés dans les cas où le code html go en dehors de l'écrandébordement de jeu caché dans certains cas

En ce moment, je mets html {overflow: hidden;} dans la balise head la page. Donc, il est caché tout le temps

Dans mon cas particulier les erreurs que je montre dans le processus d'enregistrement ne peut pas être vu sur mon ordinateur portable 13inch, mais je ne veux pas montrer les barres de défilement tout le temps.

C'est pourquoi je veux qu'il se règle (ou non) en fonction du fait qu'il y ait débordement ou non.

Quel serait le meilleur moyen?

merci, Richard

Répondre

0

Que diriez-vous quelque chose comme ceci:

<div id="overflowHidden" style="overflow:hidden;"> 
    <div id="contentContainer"> 
     Content goes here 
    </div> 
</div> 

Définir une hauteur sur #overflowHidden et, lorsque les changements de contenu dans #contentContainer, vérifiez la hauteur par rapport à celle de #overflowHidden et régler le trop-plein Attribuez le #overflowHidden selon le cas.

Pas la solution la plus élégante, mais il serait assez facile à allumer et éteindre (pour tester la production).

+0

mais, je dois prendre en compte une autre variable ici. Le fait que je ne veux rien faire (garder caché), si elle correspond à l'écran. –

0

Est-ce que 'débordement: auto' ne suffit pas?

http://www.w3.org/TR/CSS2/visufx.html

auto: Le comportement de la 'auto' valeur dépend de l'agent utilisateur, mais devrait provoquer un mécanisme de défilement pour être prévu pour les boîtes débordants

+0

oui, mais j'ai utilisé divs avec la propriété left définie sur quelque chose comme 700. Cela va toujours faire apparaître les barres de défilement et c'est un problème, peut-être aussi dans ma mise en page, mais c'est autre chose. –

+0

hmm, peut-être repenser votre stratégie de mise en page? Peut-être que vous essayez de résoudre un problème qui n'existerait pas si la structure de votre page était différente. Juste une pensée. Bonne chance! – cjuk

+0

oui, je le sais, mais cela causera plus de maux de tête alors ce problème, car je sais l'avoir comme je le veux. Si je ne trouve pas de solution de travail, je pourrais le faire, ou je déplacerais le mot d'erreur. –

0

Ne serait-il aide si vous définissez uniquement la barre de défilement pour le défilement vertical?

Vous pouvez le faire en utilisant overflow-y: auto; et overflow-x: caché;

Ceci montrera une barre de défilement verticale (seulement quand vous en avez besoin), mais n'affichera pas une barre de défilement horizontale. De cette façon, les divs cachés avec la propriété négative ne s'afficheront pas, même si vous décidez d'afficher les barres de défilement.

+0

merci, cela aide. Mayby, je peux aussi faire quelque chose avec document.height() ou window.height(), si nécessaire. Est-ce que vous définissez ceux avec jquery comme $ ('body'). Css ("overflow-y", "auto") ?? –

+0

Vous pourriez le mettre avec jquery, mais je pensais plus dans les lignes de css simples dans la partie tête de la page. Tout comme lorsque vous avez html {overflow: hidden;}, vous pouvez mettre body {overflow-x: hidden; overflow-y: automatique;}. – ylebre

+0

Je dois le faire avec jquery, parce que le haut de la page est un modèle. Ça a marché. Peut-être que je peux le détailler plus en utilisant document.height() –

Questions connexes