Je voudrais dire que la hauteur d'une zone de texte est égale, disons, à 50% de la hauteur de la fenêtre. Comment puis je faire ça? Un simple height: 50%
ne fait pas l'affaire.CSS: Hauteur de la zone de texte en pourcentage de la hauteur de la fenêtre d'affichage
Répondre
Une hauteur simple: 50% ne fait pas l'affaire.
Non, car son parent n'a pas de hauteur explicite. Donc 50% de quoi? Parent dit 'auto', ce qui signifie baser sur la hauteur du contenu enfant. Ce qui dépend de la hauteur sur le parent. Argh! etc.
Vous devez donc donner à ses parents une hauteur en pourcentage. Et le parent du parent, jusqu'à la racine. Exemple doc:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<style type="text/css">
html, body { margin: 0; padding: 0; }
html, body, #mything, #mything textarea { height: 100%; }
</style>
</head><body>
<div id="mything">
<textarea rows="10" cols="40">x</textarea>
</div>
</body></html>
L'autre possibilité si vous ne voulez pas avoir à régler la hauteur sur tout est d'utiliser le positionnement absolu. Cela modifie l'élément sur lequel les dimensions sont basées du parent direct à l'ancêtre le plus proche avec un paramètre "position" autre que "statique" par défaut. S'il n'y a aucun élément ancêtre avec positionnement, les dimensions sont basées sur le "bloc contenant initial", qui a la même taille que la fenêtre. Enfin, le problème trivial de '100%' est légèrement trop grand à cause du rembourrage supplémentaire et de la bordure appliquée aux zones de texte. Vous pouvez contourner ce problème en:
- compromis sur quelque chose comme 95% ou
- mise padding et la bordure à 0/aucun sur la zone de texte, ou
- en utilisant « box-sizing: boîte frontière; "Changer ce que signifie" hauteur ". Il s'agit d'une fonction de soupe future CSS qui nécessite de nombreuses réajustements spécifiques au navigateur (tels que '-moz-box-sizing').
Je pense que vous avez besoin d'utiliser javascript d'une façon ou d'une autre pour le faire. Gérez l'événement de redimensionnement et définissez la zone de texte sur autant de pixels.
Vous pouvez le faire si vous définissez display: block. Mais en html 4.01 strict, vous devez définir des cols et des lignes, mais je pense que vous pouvez les remplacer par css.
Bien que je n'ai pas tous les navigateurs pour tester cela, il semble que la plupart des gens acceptent simplement de spécifier la hauteur devrait fonctionner. J'ai testé cela dans Internet Explorer 7 et Firefox 3.0.
suffit d'utiliser le code suivant:
<textarea style="height: 50%; width: 80%;">Your text here</textarea>
Quel navigateur (s) avez-vous des problèmes avec?
HTML et CSS ne sont pas si bons pour faire ce genre de choses avec des hauteurs. Ils sont certainement plus sur le défilement vertical à travers une page fluide. Je pense que JavaScript est susceptible d'être votre solution la plus complète, comme le dit FryGuy.
Cela n'était probablement pas possible lorsque cette question a été posée, mais le module Valeurs CSS et unités de niveau 3 comprend viewport-percentage lengths. Il semble not to be supported on mobile browsers except iOS, cependant.
Essayez enlever
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Voici un petit exemple d'un textarea
qui prend exactement 50% de la hauteur de la fenêtre en utilisant le CSS3 vh
viewport unit qui est
égale à 1% de la hauteur du bloc contenant initial.
Donc, si nous fixons la hauteur du textarea
-50vh
, il obtiendra la moitié de la hauteur body
:
html, body, textarea {
box-sizing: border-box;
}
html, body {
margin: 0;
height: 100%;
}
textarea {
height: 50vh;
}
<textarea></textarea>
Il est pretty good supported par les différents navigateurs, à l'exception Opera mini et support partiel dans IE.
- 1. CSS: zone contenant 100% de la hauteur avec en-tête de hauteur variable
- 2. définir la hauteur de freetextbox
- 3. Comment puis-je définir la hauteur de l'objet Html comme la hauteur de la fenêtre?
- 4. jQuery - dynamique hauteur div égale à la hauteur de toute la fenêtre
- 5. Remplacer la hauteur CSS héritée
- 6. css 100% bug de hauteur
- 7. Get hauteur de la fenêtre de navigateur entrer dans IE8
- 8. Détection de la hauteur de la zone de visualisation en utilisant Javascript
- 9. hauteur de la colonne frameset
- 10. hauteur de la page en javascript
- 11. Définition dynamique de la hauteur d'un DIV
- 12. Réinitialisation de la hauteur d'un élément HTML via CSS
- 13. Emacs: fixer la hauteur de certaines fenêtres
- 14. Hauteur dynamique pour la saisie semi-automatique AJAX Zone de texte
- 15. En-tête CSS en utilisant la hauteur de ligne pour déplacer la bordure?
- 16. jquery: assignation dynamique de la hauteur div
- 17. Hauteur de la page Web jQuery
- 18. Comment étirer un tableau HTML à 100% de la hauteur de la fenêtre du navigateur?
- 19. convertir la hauteur automatique de TR en pixel ou en pourcentage
- 20. Affichage de la hauteur de fichier WAV
- 21. la disposition de deux colonnes, la hauteur de col gauche contraint la bonne hauteur de col, ne sais pas pourquoi ...?
- 22. css définir la hauteur maximale de la ligne de la table malgré le contenu
- 23. sifr3 hauteur de la ligne issue
- 24. Ajustement de la hauteur de la résolution de l'écran jQuery
- 25. css pleine hauteur?
- 26. Comment définir la hauteur de la liste SWT en lignes?
- 27. Aide pour la disposition DIV et la hauteur CSS
- 28. CSS 100% hauteur + en-tête avec hauteur statique;
- 29. Comment calculer la hauteur correcte pour une zone de texte à expansion automatique dans Silverlight?
- 30. Quelle est la hauteur moyenne et/ou maximale de la fenêtre?
Voir aussi [cette question] (http://stackoverflow.com/q/7570438/113848). – legoscia
Vous pouvez essayer les unités de viewport (CSS3): http://www.w3.org/TR/css3-values/#viewport-relative-lengths –