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 :

Adapter la largeur d'un input quand on ajout un padding


Sujet :

Dimensionnement en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Adapter la largeur d'un input quand on ajout un padding
    Bonjour à tous

    J'ai un problème surement banal.
    J'ai un "boite" (Fancybox) avec une largeur féfinie. Dedans, j'ai un formulaire et mes input font la largeur de cette boite.
    J'ai donc définit la largeur ainsi

    Le problème, c'est que je souhiate que le texte qu'on rentre, dans ces inputs, ne touche pas les bord. Donc j'ai ajouté un padding
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    input{
    width:100%;
    padding:8px;
    }
    Il se trouve que maintenant, mes input déborde, car la largeur de 16px à été rajoutée.

    Comment je peux donc soustraire 16px à une valeur donnée en %?
    Ou comment, je peux ajouter un padding, sans que cette largeur soit "ajoutée"?

    Merci pour vos lumières

  2. #2
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    https://developer.mozilla.org/fr/doc...CSS/box-sizing

    dans ton cas:
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        input{
          width:100%;
          padding:0 10px;
          box-sizing: border-box;
        }
    mais c'est sans doute la pire manière de procéder
    parce qu'il faut mieux utiliser un reset css, même s'il est minimal

  3. #3
    Membre Expert
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Par défaut
    Comment je peux donc soustraire 16px à une valeur donnée en %?
    Une alternative qui devrait fonctionner. Tu utilises calc() pour faire ta différence:

    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    input{
     padding: 8px;
     width: calc(100% - 18px);
    }

    16+2 car 1px de border-width de chaque côté.

    ça devrait le faire... (l'espace est indispensable autour du signe moins de l'opération sinon, ça ne fonctionne pas)

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par psychadelic Voir le message
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        input{
          width:100%;
          padding:0 10px;
          box-sizing: border-box;
        }
    mais c'est sans doute la pire manière de procéder
    parce qu'il faut mieux utiliser un reset css, même s'il est minimal
    J'aurais conseillé la même chose, pourquoi dis-tu que c'est la pire manière de procéder ?
    Sinon le reset css je l'utiliserais en complément, mais je ne vois pas comment cela pourrait-être une alternative à box-sizing dans ce cas de figure ?

    Y'a-t-il des problèmes/bug avec box-sizing: border-box; ?

  5. #5
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Il n'y a aucun problème avec l'instruction css = box-sizing: border-box;relis moi, j'ai écris :
    c'est sans doute la pire manière de procéder
    ou, si tu préfères, c'est la manière de procéder qui pose problème.

    par défaut le Box-sizing est réglé en content-box; ce qui signifie que le reste de tout ce qu'il mettra sur la page utilisera un système de sizing opposé, et que forcément en construisant son interface, il va placer différents box-sizing sur d'autres éléments et son code css / html finira par devenir un plat de spaghettis ingérable (et indigeste).

    Donc mon conseil, utiliser au moins un reset css et s'y tenir, sinon un framework css minimal (moins de 10k). (cad ne pas bricoler sa mise en page).

    En général ils utilisent tous un box-sizing à border-box (rejeter ceux qui ne le font pas).

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Ah ok, néanmoins ne je pense pas que c'était évident pour tout le monde, un commentaire placé juste en dessous d'un code est censé se rapporter au code que l'on vient de montrer surtout quand la phrase commence par "mais". En tous cas merci d'avoir répondu, cela enlève toute ambiguïté.

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

Discussions similaires

  1. différence de largeur select vs input text
    Par SpaceFrog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 29/04/2009, 15h16
  2. swf qui s'adapte en largeur au navigateur ?
    Par ze.bassman dans le forum Intégration
    Réponses: 6
    Dernier message: 07/10/2008, 15h48
  3. Réponses: 4
    Dernier message: 21/05/2008, 16h54
  4. Bug graphique sur la largeur d'un input
    Par orphen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 21/04/2008, 13h30
  5. Récupérer la largeur dune balise <INPUT>
    Par manube dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/04/2006, 16h14

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