Autor Zpráva
Fnesveda
Profil
Rád bych vytvořil textarea, které by měnilo výšku podle obsahu. Mám v php vytvořený redakční systém, který mi ze souboru načítá obsah textarea, a nechci mít u textarea posuvníky, ale nechci ho mít moc velké a polovinu prázdnou. Šlo by to zapsat jen pomocí CSS a html nebo bude potřeba použít javascript? Příklady uvítám:)
Railbot
Profil
height: 100% ?
Fnesveda
Profil
Height: 100% nefunguje, zobrazí se to vysoké tři řádky
Str4wberry
Profil
Šlo by také spočítat řádky. A podle jejich počtu odhadovat výšku textarea.
Jan Tvrdík
Profil
Str4wberry
By mě zajímalo, jak se dají spočítat řádky. Fakt mě nanapadá algoritmus, kterým by to bylo možné :) Nechám se překvapit, co z toho bude.
Jinak, když znáš počet řádků, tak výšku neodhaduješ, ale nastavíš atribut rows na počet řádků.
Fnesveda
Profil
Řádky by možná šly spočítat přes počet výskytů řetězce "konec řádku" v textu, který do textarea vkládám... Zkusím to
Fnesveda
Profil
Mám to:
	$rows = substr_count($text, "\n")+1;
	.
	.
	.
        <textarea name="text" rows=<?php echo $rows; ?> wrap="off"><?php echo $text; ?></textarea>


do $rows se ukládá počet řádků a v $text je obsah textarea

Díky moc za pomoc
Timy
Profil
Fnesveda
A co když bude jeden řádek v $text na více řádků v textarea? Nejpřesnější by asi bylo počítat znaky (v textarea je obvykle nějaký courier se stejně dlouhými znaky, tedy se stejným počtem znaků na řádek) v kombinaci s koncem řádku.
Jan Tvrdík
Profil
Timy
V textaree je proporciální písmo (aspoň u mě v opeře), takže přes počet znaků by to bylo hodně nepřesné, to už je lepší počítat zalomení řádku.

Ideální by bylo, kdyby nějaký JavaScriptový mág vymyslel, jak na to přesně - například zjistit, zda je zobrazen posuvník a pokud ano, tak zvětšovat o 1 řádek, dokud nezmizí.

Já bych to řešil počtem zalomení + projít délky řádků a pokud by přesáhly určitou hodnotu, tak ho počítat za 2 (3,4...) řádky. Výsledek by byl samozřejmě pouze odhad, ale lepší než nic.
Str4wberry
Profil
„V textaree je proporciální písmo (aspoň u mě v opeře)“
To si můžeš změnit/nastavit pomocí CSS.
Jan Tvrdík
Profil
Str4wberry
Hm, to mě nenapadlo :D
Fnesveda
Profil
Se zalamováním řádků není problém, proto je tam wrap="off", aby se zobrazil vodorovný posuvník. Takže opravdu stačí spočítat jenom počet zalomení... Ale jestli nějaký JavaScriptový mág vymyslí, jak to udělat, aby se mi textarea zvětšovalo nebo zmenšovalo, pokud připíšu řádku až po načtení, budu mu vděčný(že to je dobrá odměna, co?;))

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0