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 :

Float et input personnalisé


Sujet :

CSS

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Float et input personnalisé
    Bonjour,

    J'essaye de créer un champ input personnalisé dont voici le code :
    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
    .customInput {
    	display: inline;
    }
     
    .customInput .left {
    	float: left;
    	background: url(ileft.png) top left no-repeat;
    	height: 23px;
    	width: 6px;
    }
     
    .customInput .right {
    	float: left;
    	background: url(iright.png) top right no-repeat;
    	height: 23px;
    	width: 6px;
    }
     
    .customInput input {
    	display: block;
    	float: left;
    	background: url(icenter.png) top left repeat-x;
    	border: none;
    	height: 23px;
    	font-size: 12px;
    	color: #FFFFFF;
    	padding-top: 3px;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    	Nom :
    	<div class="customInput">
    		<div class="left">&nbsp;</div>
    		<input type="text" name="name" value="azerty" size="5" />
    		<div class="right">&nbsp;</div>
    	</div>
     
    	<div class="customInput">
    		<div class="left">&nbsp;</div>
    		<input type="text" name="name" value="azerty" size="5" />
    		<div class="right">&nbsp;</div>
    	</div>
    Mon problème est que le div principal ne se comporte pas comme un élément inline. En l'occurence il se place en-dessous de "Nom :" au lieu d'être à côté. Si j'en mets deux de suite ils sont l'un à côté de l'autre.
    J'imagine que cela a un rapport avec les float, mais si j'ai bien compris un élément ne flotte que dans son conteneur normalement?

  2. #2
    Membre émérite Avatar de Erwan31
    Profil pro
    Inscrit en
    Février 2008
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 2 177
    Points : 2 444
    Points
    2 444
    Par défaut
    Bonjour,
    le balisage suivant serait un peu plus pertinent:

    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
    30
    31
    32
    33
    34
    35
    36
    label {float:left} 
    .customInput .left {
    	float: left;
    	background: url(ileft.png) top left no-repeat;
    	height: 23px;
    	width: 6px;
    }
     
    .customInput .right {
    	float: left;
    	background: url(iright.png) top right no-repeat;
    	height: 23px;
    	width: 6px;
    }
     
    .customInput input {
    	float: left;
    	height: 23px;
    	background: url(icenter.png) top left repeat-x;
    	font-size: 12px;
    	color: #FFF;
    	padding-top: 3px;
    }
    </style>
    </head>
    <body>
    	<div class="customInput">
    		<label for="nom">Nom :</label>
    		<span class="left">&nbsp;</span>
    			<input type="text" name="name" value="azerty" size="5" id="nom" />
    		<span class="right">&nbsp;</span>
    		<span class="left">&nbsp;</span>
    			<input type="text" name="name" value="azerty" size="5" />
    		<span class="right">&nbsp;</span>
    	</div>
    </body>
    Chaque champ input doit être associé à un label (pour le focus sur le champ au click sur le label et pour des raisons d'accessibilité) avec le couple for/id
    Les div peuvent être remplacés par des span (sans aucune conséquence).
    Le label est en float:left donc les boîte de block qui suivent s'affichent à sa droite.
    Une boîte de block (un élement de niveau block ou un élément (non block) flottant ou pourvu d'un display:block) génère un retour chariot avant et après.
    Pourquoi mettre des &nbsp; dans les block?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci Erwan31.

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

Discussions similaires

  1. [2.x] input personnalisé symfony2
    Par MehrezLabidi dans le forum Symfony
    Réponses: 2
    Dernier message: 20/08/2014, 15h44
  2. Input control personnalisé
    Par ALLODREN dans le forum Jasper
    Réponses: 16
    Dernier message: 05/03/2012, 15h09
  3. Vérifier le contenu d'un champ input (type Float)
    Par ironfalcon dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/08/2008, 10h20
  4. un input file personnalisé est ce possible?
    Par KingOfSweetness dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 12/07/2007, 11h04
  5. Tester la valeur(float ou pas) d'un input text
    Par Battosaiii dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 16/04/2006, 10h47

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