considérons la finale de la sortie du rendu à l'utilisateur de ce que nous voulons atteindre: un collier textarea avec à la fois une frontière et un rembourrage, dont les caractéristiques sont que les visiteurs cliquent-ils passer le focus à notre textarea, et l'avantage d'une boîte automatique à 100% de la largeur typique des éléments de bloc.
La meilleure approche, à mon avis, est d'utiliser des solutions au niveau autant que possible, pour atteindre le maximum de navigateurs prennent en charge.
Dans ce cas, les seules HTML pourrait fonctionner très bien, en évitant l'utilisation de Javascript (qui de toute façon nous avons tous l'amour).
La balise d'ÉTIQUETTE vient à notre aide, parce qu'a un tel comportement et qu'il est autorisé à contenir les éléments d'entrée qu'elle doit traiter.
Son style par défaut est l'un des éléments inline, donc, de donner à l'étiquette d'un bloc d'affichage de style, nous pouvons nous prévaloir de l'automatique 100% de largeur, y compris rembourrage et des frontières, tandis que l'intérieur textarea n'a pas de frontière, pas de rembourrage et un 100% de largeur.
En prenant un coup d'oeil à la W3C spécificités d'autres avantages, nous remarquons:
- pas de "pour" attribut est nécessaire: quand une balise d'ÉTIQUETTE contient la cible d'entrée, il se concentre automatiquement l'enfant en entrée lors d'un clic;
- si une étiquette externe pour le textarea a déjà été conçu, pas de conflits se produisent, depuis une entrée donnée peut avoir une ou plusieurs étiquettes.
Voir W3C spécificités pour des informations plus détaillées:
http://www.w3.org/TR/html401/interact/forms.html#h-17.9.1
Exemple Simple:
<html>
<head>
<style type="text/css">
.container { width: 400px; border: 3px solid #f7c; }
.textareaContainer {
display: block;
border: 3px solid #38c;
padding: 10px;
}
textarea { width: 100%; margin: 0; padding: 0; border-width: 0; }
</style>
</head>
Le rembourrage et la frontière du .textareaContainer éléments sont ceux que nous voulons donner à la textarea. Essayez de modifier leur style comme vous le souhaitez.
J'ai donné les grandes et visibles de rembourrage et les frontières .textareaContainer élément pour vous permettre de voir leur comportement lorsque l'utilisateur clique dessus.