Skip to main content

Responsive - Contact

contact

Création d'un formulaire de contact

On va crée une page avec un formulaire centré au milieu de la page.

Notre formulaire à 3 parties:

  • l'entête qui contient la phrase d'accroche
  • le hero qui se résume à une image
  • le contenu qui est fait des différents champs du formulaire

Le formulaire va être responsive c'est à dire s'adapter à la taille de l'affichage. Pour ça on va supprimer certains éléments lors du redimensionnement.
Les champs du formulair vont prendre l'ensemble de la largeur ainsi que le bouton.
Afin de gagner en lisibilité on va aussi changer la taille de la police de caractère en la passant a 24px. Ensuite il suffirat de réduire certains padding et margin pour maximiser l'espace.

contact

Base

Pour commencer on va définir un style général que voici

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}

body {
background-color: #dfe4eb;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 20px;
}

.container {
background-color: white;
border-radius: 10px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
width: 100%;
max-width: 800px;
overflow: hidden;
}

Entête

Est fait de deux d'un titre "Contactez-nous" et d'un petit texte "Nous vous répondrons dans les plus brefs délais".
L'ensemble est centré au milieu de l'entête et la couleur de fond est #4a6cfd header

Hero

On va simplement utiliser une image https://img.freepik.com/free-vector/v873-bb-1_53876-166692.jpg?t=st=1744313760~exp=1744317360~hmac=b7f7339b3bbc1868e48970d393399795f6e55ee748cae89b8c024f69a7f6887a&w=3000
Elle va une largeur de 100% et une hauteur de 300px.
Lors du redimensionnement de la page on va faire disparaitre l'image afin de gagner de la place.
header
header

Contenu

Form

C'est ici que se retrouve concrétement le formulaire.
On va avoir 4 éléments principaux Il s'agit de: ( label, type, placeholder)

  • Nom complet, text, Votre Nom
  • Email, email, votre@email.com
  • Téléphone, tel, Votre numéro de téléphone
  • Sujet, select, Question générale, Support technique, Facturation, Autre

Ils se mettre deux par deux lorsque l'affichage est sur grand écran. header

Lors du redimensionnement de la page chaque champs va prendre toute la largeur disponible header

Ensuite ont va retrouver une zone texte qui va prendre toute la largeur. Son label est "Message" et contient "Écrivez votre message ici..."

header

Champs obligatoires

Les champs obligatoire vont empecher l'utilisateur d'envoyer le formulaire.
Sont obligatoires:

  • Nom complet
  • Email
  • Message

Bouton envoyer

Le dernier élément et élément indispensable et le bouton qui permet d'envoyer le formulaire.
C'est un bouton de type submit qui à pour texte "Envoyer le message".
Sa couleur est la même que pour l'entête #4a6cfd

header
header

Infos

Reste une dernière chose c'est ajouter un message lorsque le formulaire est envoyé.
Par défaut ce message n'est pas visible. On ajoutera un peu de javascript pour le rendre visible lors du clic sur le bouton.
Le texte de ce message est le suivant: "Votre message a été envoyé avec succès ! Nous vous contacterons bientôt."

<script>
document
.getElementById("contact-form")// utilise l'id du formulaire
.addEventListener("submit", function (e) { // se déclenche au clic sur le bouton submit
e.preventDefault();

setTimeout(function () {
// va chercher dans le document ( la page html ) l'élément ayant un id success-message
document.getElementById("success-message").style.display = "block";
document.getElementById("contact-form").reset();

// Laisse un délais de temps puis change le css de l'élément html ayant l'id success-message
setTimeout(function () {
document.getElementById("success-message").style.display = "none";
}, 5000);
}, 1000);
});
</script>

L'ensemble de ce script va être ajouter dans la page html juste avant la fermeture du body.

Résultat final

normal mobile

Exemple de solution