90 votes

Comment afficher l'élément HTML <FORM> comme élément en ligne ?

Il s'agit probablement d'une question de base sur l'intégration de la technologie HTML...

J'ai un formulaire simple à un bouton que je voudrais afficher en ligne à l'intérieur du texte d'un paragraphe.

<p>Read this sentence 
     <form style='display:inline;'>
     <input style='display:inline;' 
            type='submit' 
            value='or push this button'/>
     </form>.
</p>

Bien que le formulaire ait l'attribut style=display:inline, j'obtiens un saut de ligne avant le formulaire. Existe-t-il un moyen de s'en débarrasser ?

Des éléments de formulaire peuvent-ils apparaître à l'intérieur <p> ?

3 votes

Merci à tous pour les réponses et les commentaires !

75voto

ChssPly76 Points 53452

Déplacez votre balise de formulaire juste à l'extérieur du paragraphe et réglez les marges et le rembourrage à zéro :

<form style="margin: 0; padding: 0;">
  <p>
    Read this sentence 
    <input style="display: inline;" type="submit" value="or push this button" />
  </p>
</form>

0 votes

Votre réponse a sauvé ma journée.

3 votes

La marge et le remplissage dans mon formulaire n'ont pas fonctionné pour moi, j'ai dû utiliser display:inline à la place et alors la marge/le remplissage n'était pas nécessaire.

2 votes

Display:inline l'a fait pour moi aussi. Pourquoi ne pas ajouter cela au style du formulaire dans votre réponse.

56voto

John Kugelman Points 108754

<form> ne peut pas entrer à l'intérieur <p> non. Le navigateur va fermer brusquement ton <p> lorsqu'il touche l'ouverture <form> car il essaie de gérer ce qu'il pense être un élément de paragraphe non fermé :

<p>Read this sentence 
 </p><form style='display:inline;'>

23voto

Vous pouvez essayer ce code :

<form action="#" method="get" id="login" style=" display:inline!important;">

  <label for='User'>User:</label> 
  <input type='text' name='User' id='User'>

  <label for='password'>Password:</label><input type='password' name='password' id='password'>
  <input type="submit" name="log" id="log" class="botton" value="Login" />

</form> 

L'élément important à noter est la propriété de style css dans le fichier <form> étiquette.

display:inline!important;

6voto

Grzegorz Oledzki Points 10491

Selon Spécification HTML les deux <form> y <p> sont des éléments de bloc et vous ne pouvez pas les imbriquer. Peut-être que remplacer le <p> con <span> vous conviendrait ?

EDIT : Désolé. J'ai été trop rapide dans ma formulation. Le site <p> n'autorise aucun contenu de bloc à l'intérieur - comme le spécifie l'élément Spécification HTML pour les paragraphes .

3 votes

Certains éléments de bloc peuvent être imbriqués (comme les éléments div), mais certains sont spéciaux et ne doivent pas être imbriqués. La balise paragraph, par exemple, ne peut contenir que des éléments en ligne.

0voto

Tac Points 52

Vous pouvez accomplir ce que vous voulez, je pense, simplement en incluant le bouton d'envoi dans le paragraphe :

     <pre>
     <p>Read this sentence  <input  type='submit' value='or push this button'/></p>
     </pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X