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 :

étirer du texte sans provoquer un décalage


Sujet :

CSS

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut étirer du texte sans provoquer un décalage
    Bonjour,

    je dispose de 2 "div" avec une fonction "expand" ; par contre, si j'"expande" (ou étire pour parler français) le 1er "div", il s'affiche étiré mais le 2e se décale pour s'afficher à la suite ; voici mon code actuel :
    Code : 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
    <!DOCTYPE><html>
      <head>
        <meta content="text/html; charset=UTF-8" http-equiv="content-type">
        <script>
    function expand(id, expanded){
      var Item = document.getElementById(id); 
      if(expanded=== undefined){
        expanded = (Item.offsetWidth == 0); //toggle expanded state
      }
     
      Item.style.display = expanded ? "block" : "none"; 
      document.getElementById(id+'Bt').href = expanded ? "#expanded" : "#";
      document.getElementById(id+'Bt').innerHTML = expanded ? "Fermer" : "Ouvrir";
     
    }
    function init() {
        expand("test1", window.location.hash==="#expanded");
        expand("test2", window.location.hash==="#expanded");
    }
    </script> 
      </head>
      <body>
        <body onload="init();">
    <a id="test1Bt" href="#" onclick="expand('test1');">Ouvrir</a>
    <div id="test1">test1<br /></div> 
    <a id="test2Bt" href="#" onclick="expand('test2');">Ouvrir</a>
    <div id="test2">test2</div><br/>
      </body>
    </html>
    et ce que je souhaite, c'est que le 2e ne se décale pas, donc que si j'étire le 1er, le 2e soit masqué ; comment faire ?

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Bonjour,
    un indice...les éléments A sont des éléments inline.

    http://giminik.developpez.com/xhtml/a.html

  3. #3
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 443
    Points
    5 443
    Par défaut
    Bonjour,

    si j'ai bien tout compris on peut réaliser cela en pur CSS avec la pseudo-classe Target:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <div>
      <ul>
        <li><a href="#test1">Ouvrir 1</a>
          <div id="test1">Test 1 </div>
        </li>
        <li><a href="#test2">Ouvrir 2</a>
          <div id="test2">Test 2 </div>
        </li>
        <li><a href="#test3">Ouvrir 3</a>
          <div id="test3">Test 3 </div>
        </li>
      </ul>
    </div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ul li {
    	display:block;
    	float:left;
    	padding:5px;
    }
     
     ul li div {
    	display:none;
    }
     
    ul li div:target {
    	display:block;
    }
    http://codepen.io/anon/pen/Gnyol

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    si j'ai bien tout compris on peut réaliser cela en pur CSS avec la pseudo-classe Target:
    c'est une des bonnes utilisations de :target.

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci de me proposer un truc, mais ça répondrait mieux si les 3 li étaient alignés verticalement et pas horizontalement...

  6. #6
    Membre expert
    Avatar de Muchos
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 704
    Points : 3 861
    Points
    3 861
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par laurentSc
    Merci de me proposer un truc, mais ça répondrait mieux si les 3 li étaient alignés verticalement et pas horizontalement...
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ul li {
    	display:block;
    	float:left;
    	padding:5px;
    }
    Néanmoins, je trouve la version avec float plus jolie

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Bonsoir, j'ai commenté le float:left, mais ça se décale quand j'étire...

  8. #8
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    position:absolute ?

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 662
    Points
    44 662
    Par défaut
    Je doute que tu ais exploré cette piste
    Citation Envoyé par NoSmoking
    un indice...les éléments A sont des éléments inline.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    position:absolute pas bon, car du coup, les 3 li sont empilés l'un par-dessus l'autre...

    Citation Envoyé par NoSmoking Voir le message
    Je doute que tu ais exploré cette piste
    exact, sachant que je n'ai pas compris la piste...

  11. #11
    Membre émérite
    Avatar de Candygirl
    Femme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 912
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 912
    Points : 2 907
    Points
    2 907
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    position:absolute pas bon, car du coup, les 3 li sont empilés l'un par-dessus l'autre...
    Pas sur les li Mais sur les div ?

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Cela confirme ma nullité en CSS (comme l'avait déjà remarqué Muchos). Par contre si les li ne se décalent plus, je souhaiterais que quand on étire, ce qui est étiré masque les li ; pour faire ça, j'ai tenté un truc, mais ça ne marche pas :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function act1()
    {
    document.getElementById("id1").style.display=="block";
    document.getElementById("id2").style.display=="none";
    document.getElementById("id3").style.display=="none";
    }
    function act2()
    {
    }
    function act3()
    {
    }

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div>
      <ul>
        <li><a id="id1" href="#test1" onclick="act1()">Ouvrir 1</a>
          <div id="test1">Test 1<br/>test 1<br/>test 1<br/>test 1<br/> </div>
        </li>
        <li><a id="id2" href="#test2" onclick="act2()">Ouvrir 2</a>
          <div id="test2">Test 2 </div>
        </li>
        <li><a id="id3" href="#test3" onclick="act3')">Ouvrir 3</a>
          <div id="test3">Test 3 </div>
        </li>
      </ul></div>

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    comme j'aborde le même sujet dans une autre discussion , je clos celle-ci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre un input text sans la bordure 3d comme le champ pour
    Par hstlaurent dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 29/08/2005, 21h50
  2. [html] zone de texte sans saisie possible
    Par Silvia12 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/08/2005, 16h37
  3. [html] Input text sans cadre
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/05/2005, 16h13
  4. Fichiers texte sans accents
    Par mika dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2004, 16h42
  5. Insérer de texte sans un JtextArea
    Par OxN dans le forum Débuter
    Réponses: 7
    Dernier message: 11/06/2004, 12h16

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