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

HTML Discussion :

textarea et div [HTML 4.0]


Sujet :

HTML

  1. #1
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut textarea et div
    Bonjour,

    Hier, j'ai voulu mettre un textearea dans un div et je me suis rendu compte que le div "englobant" ne s'agrandit pas automatiquement en fonction de la taille du textarea.

    Est-ce un fait connu ou bien aurais-je oublié quelque chose ?

    ( mis à part la définition explicite d'un height pour le div évidemment )

    Papy !

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 31
    Par défaut
    Tu peux poster ton code HTML et CSS ? Ou donner un lien vers ta page ?
    A priori, le DIV devrait s'adapter à la taille de ton textarea

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    Voilà le code incriminé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    .contact_label {
    	float: left;
    	width: 150px;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form action="../scripts/contact.php" method="post">
    	<div class="contact_label">Votre prénom</div> <div> <input type="text" name="firstname"	value="{$firstname}"  /></div>
    	<div class="contact_label">Votre nom   </div> <div> <input type="text" name="lastname"	value="{$lastname}" /></div>
    	<div class="contact_label">Votre email </div> <div> <input type="text" name="email"		value="{$email}" /></div>
    	<div class="contact_label">Votre message </div> <div><textarea name="message" rows="5" cols="40">{$message}</textarea></div>
    	<div style="text-align: center; margin-bottom: 15px;"><input type="submit" value="Envoyer"  /></div>
    </form>
    Le bouton submit se retrouve en plein milieu du textarea.



    Par contre, je viens de voir que si je n'entoure pas le textarea avec un div, le bouton est bien placé en dessous du textarea. La solution est donc trouvée mais je ne comprends pas en quoi le div peut bien intervenir ici.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    A mon avis, la DIV ne sert à rien.
    De plus, la DIV est un élément flottant (class contact_label), mais surtout, tu lui donne une largeur : 150px.
    Du coup, elle ne peux pas s'agrandir, sa taille est devenue fixe.

    Les DIV qui englobes les <input /> eux aussi ne servent à rien à mon avis.

    Il y a que pour le bouton qui demanderait d'être englobé par un élément de block, comme une DIV du fait que tu souhaite que le bouton soit centré.
    Par contre, il faudrait peut être rajouter une propriété à la DIV -> clear: both
    car à mon sens faut pas que celle ci soit flottante, donc quelle passe à la ligne.


    Petite parenthèse.
    Pourquoi n'utilise tu pas un <label> plutôt que des DIV ?
    C'est pourtant "sémantiquement" plus adapté.
    Coté mise en forme, suffit de leur donner celle que tu veux en CSS.

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    La(le?) DIV qui englobe le textarea n'a pas la classe contact_label.
    Ci-dessous le code remis sur plusieurs lignes ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class="contact_label">Votre message </div> 
     
    <div><textarea name="message" rows="5" cols="40">{$message}</textarea></div>
    D'où mon incompréhension de son influence sur le rendu visuel ...

    Concernant l'utilisation du label, j'avoue que je n'y pense pas assez. Je vais revoir cette partie.

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    A ben zut alors, j'avais pas vu

    Les éléments flottant sortent du flux de la page, c'est assez particulier.
    En faite, leur hauteurs ne sont pas tenu comptent, c'est un peu comme si ils ne faisaient pas partie du FORM.
    Du coup, l'emplacement du DIV du bouton est perturbé par ça.
    A mon avis, c'est cela qui en serait la cause.
    Je parle même pas des interprétation différentes qu'il y a entre navigateurs.
    Les éléments flottant et les position absolus sont pas si simple à gérer par moment.

    De mon coté, je n'hésite pas à rajouter des clear: both à un élément placé après un élément flottant quant il doit passer à la ligne.
    Personnellement, je le ferais pour la DIV du bouton.

    Ceci dit, au lieu de mettre une DIV autour du textarea, tu pourrais lui mettre un style Css : display: block; , juste pour voir

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 527
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 527
    Par défaut
    le display: block n'a aucune influence, quel que soit l'emplacement utilisé (div ou input).

    Je vais donc juste enlever les DIV en trop et utiliser des label .

    Merci !

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

Discussions similaires

  1. previsualiser un textarea dans une div
    Par papaye0 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/09/2009, 18h55
  2. Contenu d'un div => un textarea
    Par ShinNoMegami dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 23/03/2009, 10h31
  3. récupérer code textarea via div contenteditable
    Par ctrl+z dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/01/2009, 08h33
  4. probleme Div et <layout:textarea>
    Par tomy29 dans le forum Struts 1
    Réponses: 3
    Dernier message: 19/11/2008, 15h08
  5. Div absolute + textarea => curseur invisible
    Par BkD35 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 08/01/2008, 10h58

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