IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Cacher une élément


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 20
    Par défaut Cacher une élément
    Bonjour,

    Je cherche depuis pas mal de temps à cacher un élément présent dans une div si celui-ci est en dehors.

    Je m'explique, par exemple voici ce bout de code :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="principale">
    	<div id="contenu">
    	    <p>Hey!!</p>
    	</div>
    </div>

    Lorsque la taille de l'Id "Principal" est trop petit pour afficher "Hey!!" il faudrait que celui-ci soit masqué. Je modifie la taille de la div au fur et a mesure à l'aide de JS.
    Seulement je ne trouve pas de solution...

    Merci d'avance pour votre aide!!

  2. #2
    Membre actif
    Avatar de Mell
    Femme Profil pro
    Développeuse Front-end
    Inscrit en
    Janvier 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeuse Front-end
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2011
    Messages : 107
    Par défaut
    dirige toi vers la propriété CSS overflow:hidden

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par seb_92 Voir le message
    Je modifie la taille de la div au fur et a mesure à l'aide de JS.
    Dans ce cas, en JS, il est possible de comparer les tailles des div.

    En jQuery, ça donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if( $('#contenu').width()>$('#principale').width() ){
       $('#contenu').css('display','none');
    } else {
       $('#contenu').css('display','block');
    }
    Dernière modification par Invité ; 14/12/2012 à 18h35.

  4. #4
    Membre averti
    Inscrit en
    Septembre 2012
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2012
    Messages : 20
    Par défaut
    Merci pour votre aide.

    Pour ce qui est de la propriété overflow:hidden, je pense en avoir fait le tour sinon je n'aurais pas posé la question mais cela ne fonctionne pas...

    Et pour ce qui est de la fonction JS que tu me proposes, j'ai regardé mais je ne pense pas que cela convienne...

    Je redonne un code un peu plus explicite :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Mon site</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   <link rel ="stylesheet" type="text/css" href="menu5_css.css">
     
    	       <script type="text/javascript">
     <!--
               function agrandir() {    
    document.getElementById("principale" ).style.height += 530;  
    }  
    // -->
        </script>
       </head>
     
    	<body  onLoad="agrandir()">
    	<div id="tete">
    		<div id="logo"></div>
    		<div id="titre">
    			<p>Application de gestion</p>
    	        </div>
    	</div>
     
    	<ul id="menu"></ul>
     
            <div id="principale" style="height: 20px;">
    	     <p id="coucou" style="margin-top: 200px;">coucouuuuuuuuuuuuuu</p>
    	<div id="footer">
    		<p>Copyright</p>
    	</div>
    </div>
    </body>
    </html>

    Mon but serait de cacher la balise p contenue dans l'Id principale tant que celui-ci n'est pas arrivé a la hauteur de la balise p.
    J'espère être clair...

    Merci

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Bonsoir,
    Pour ce qui est de la propriété overflow:hidden, je pense en avoir fait le tour(...)
    quel heureux homme tu fais!

    La propriété overflow:hidden présente un avantage non négligeable qui permet d'avoir 2 propriétés de l'objet bien distinctes et potentiellement différentes à savoir offset/clientHeight et scrollHeight.

    Si une partie n'est pas affichée alors scrollHeight sera plus grand que offset/clientHeight.

    Une autre chose à prendre en compte dans ton cas c'est la non utilisation de la propriété display:none, qui ôtera toutes dimensions à l'élément devant être masqué et pourra entrainer des aberrations, il te faut donc utiliser la propriété visibility:hidden qui masque sans supprimer du flux.

    Il est ensuite un jeux d'enfant que de comparer les 2 valeurs et de basculer la visibility de l’élément à afficher.

    Autres remarques
    - il est franchement dommage de se priver d'un DOCTYPE
    - il faut mettre les unités aux valeurs objet.style.height = 100 +'px';.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2013, 14h35
  2. Cacher un élément dans le layout depuis une page
    Par hadakamatcho dans le forum Tapestry
    Réponses: 2
    Dernier message: 23/08/2012, 11h13
  3. Cacher un élément d'une frame parente
    Par ryodo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 19
    Dernier message: 10/09/2010, 07h37
  4. Cacher des éléments dans une zone de liste
    Par toto10 dans le forum IHM
    Réponses: 11
    Dernier message: 19/07/2006, 15h03
  5. Cacher les éléments d'une ComboBox ?
    Par Alexino2 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/05/2006, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo