{"id":2132,"date":"2004-05-13T09:26:05","date_gmt":"2004-05-13T09:26:05","guid":{"rendered":"http:\/\/svay.com\/blog\/?p=2132"},"modified":"2004-05-13T09:26:05","modified_gmt":"2004-05-13T09:26:05","slug":"105-formulaires-et-css","status":"publish","type":"post","link":"https:\/\/svay.com\/blog\/105-formulaires-et-css\/","title":{"rendered":"Formulaires et CSS"},"content":{"rendered":"<p> Les tableaux c&#8217;\u00e9tait bien pratique avant que l&#8217;on ne se rende compte de l&#8217;erreur qu&#8217;est leur utilisation pour la mise en page. <\/p>\n<p>Depuis, on a trouv\u00e9 des solutions bas\u00e9es sur CSS pour faire des layouts \u00e0 2 ou 3 colonnes, imiter des frames, et plein d&#8217;autres choses hypercr\u00e9atives. Mais comment faire lorsqu&#8217;il s&#8217;agit de pr\u00e9senter un formulaire? Fastclemmy donne <a href=\"http:\/\/www.fastclemmy.com\/index.php?viewlog=84_formidablement-beau\" hreflang=\"fr\">plusieurs solutions<\/a> \u00e0 travers une liste de liens appropri\u00e9s.<\/p>\n<p><!--more--><\/p>\n<p> Si cela int\u00e9resse quelqu&#8217;un, je vais pr\u00e9senter la m\u00e9thode que j&#8217;utilise souvent pour mes formulaires. <\/p>\n<h3>La structure<\/h3>\n<p> Tout d&#8217;abord, voyons comment se d\u00e9finit un formulaire: <\/p>\n<pre> &lt;form action=\"...\"&gt;   &lt;p&gt;     &lt;label for=\"nom\"&gt;       Nom&nbsp;: &lt;input type=\"text\" id=\"nom\"&nbsp;\/&gt;     &lt;\/label&gt;     &lt;label for=\"prenom\"&gt;       Prenom&nbsp;: &lt;input type=\"text\" id=\"prenom\"&nbsp;\/&gt;     &lt;\/label&gt;     &lt;label for=\"age\"&gt;       &Acirc;ge&nbsp;: &lt;input type=\"text\" id=\"age\"&nbsp;\/&gt;     &lt;\/label&gt;   &lt;\/p&gt; &lt;\/form&gt; <\/pre>\n<p> Ce qu&#8217;il faut remarquer, c&#8217;est que les champs (<code>&lt;input&gt;<\/code>) sont imbriqu\u00e9s dans leur \u00e9tiquette (<code>&lt;label&gt;<\/code>) correspondante. <\/p>\n<h3>La pr\u00e9sentation<\/h3>\n<p> Ensuite, pour imiter un tableau, il suffit d&#8217;appliquer quelques r\u00e8gles CSS toutes simples. <\/p>\n<pre> label{   position: relative;   display: block;   width: 15em;   height: 1.4em; } input{   position: absolute;   left: 6em; } <\/pre>\n<p> Le but est simple: afficher les <code>&lt;label&gt;<\/code> en tant que blocs et positionner les champs par rapport \u00e0 ceux-ci. <\/p>\n<h3>Le r\u00e9sultat<\/h3>\n<p> On obtient un formulaire dont les champs sont align\u00e9s sur leur c\u00f4t\u00e9 droit. <\/p>\n<form action=\"\">\n<p style=\"padding:1em; width:20em; border: 1px solid #CCC; background: #EEE;\">     <label for=\"nom\" style=\"position:relative; display:block; width:15em; height:1.4em\">       Nom : <input type=\"text\" id=\"nom\" style=\"position:absolute; left:6em\" \/>     <\/label>     <label for=\"prenom\" style=\"position:relative; display:block; width:15em; height:1.4em\">       Prenom : <input type=\"text\" id=\"prenom\" style=\"position:absolute; left:6em\" \/>     <\/label>     <label for=\"age\" style=\"position:relative; display:block; width:15em; height:1.4em\">       &Acirc;ge : <input type=\"text\" id=\"age\" size=\"3\" style=\"position:absolute; left:6em\" \/>     <\/label>   <\/p>\n<\/p><\/form>\n<p>Pour le moment cette technique me convient assez, mais si vous en connaissez d&#8217;autres, n&#8217;h\u00e9sitez pas \u00e0 la proposer en commentaire!<\/p>\n","protected":false},"excerpt":{"rendered":"<p> Les tableaux c&#8217;\u00e9tait bien pratique avant que l&#8217;on ne se rende compte de l&#8217;erreur qu&#8217;est leur utilisation pour la mise en page. <\/p>\n<p>Depuis, on a trouv\u00e9 des solutions bas\u00e9es sur CSS pour faire des layouts \u00e0 2 ou 3 colonnes, imiter des frames, et plein d&#8217;autres choses hypercr\u00e9atives. Mais comment faire lorsqu&#8217;il s&#8217;agit de pr\u00e9senter un formulaire? Fastclemmy donne <a href=\"http:\/\/www.fastclemmy.com\/index.php?viewlog=84_formidablement-beau\" hreflang=\"fr\">plusieurs solutions<\/a> \u00e0 travers une liste de liens appropri\u00e9s.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[21],"tags":[],"_links":{"self":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts\/2132"}],"collection":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/comments?post=2132"}],"version-history":[{"count":0,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/posts\/2132\/revisions"}],"wp:attachment":[{"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/media?parent=2132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/categories?post=2132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/svay.com\/blog\/wp-json\/wp\/v2\/tags?post=2132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}