2012-05-25 24 views
5

Chyba robię coś źle tutaj, spodziewam textarea być 10px mniejszy niż div dominującej na każdej stronie, ale to nie jest tak, że jest zbyt mały:textarea wewnątrz div

<html> 
    <div style="position: absolute; left: 10px; top: 10px; width:50%; height: 50%; border: 1px solid #000000;"> 
    <textarea style="position: absolute; left: 10px; top: 10px; bottom: 10px; right: 10px; border: 1px solid #FF0000; resize:none;"></textarea> 
    </div> 
</html> 

jsfiddle : http://jsfiddle.net/2a7LR/1/

dlaczego tak się dzieje? i jak mogę to zrobić, aby pasował 10 px mniejszy po każdej stronie od rodzica div?

Wydaje się prawidłowo tylko w chrom/Safari, ale źle w każdej innej przeglądarki (Firefox, Opera, IE8)

+0

Potrzebujesz dokładnie 10px lub możesz użyć% width/height dla textbox? –

+0

nawet z procentami nie działa: http://jsfiddle.net/2a7LR/6/ – MIrrorMirror

Odpowiedz

10

http://jsfiddle.net/2a7LR/5/ Skorygowano dla Ciebie niektóre kody CSS. Zasadniczo użyto width: 100%; height: 100%, przeniesiono 10px do właściwości kontenera padding, a następnie dodano box-sizing do obszaru tekstowego, aby rozmiar uwzględniał tę granicę.

+0

To nie zadziała z IE7 –

2
<html> 
<div style="position: absolute; left: 10px; top: 10px; width:50%; height: 50%; border: 1px solid #000000;"> 
    <textarea style="position: relative; margin: 10px 10px 10px 10px; width:90%; height: 90%"></textarea> 
</div> 
</html>​ 

To powinno działać dla Ciebie. obszar tekstowy może być względny wewnątrz bezwzględnego div. wystarczy ustawić go z marginesami, a nie z górnym i lewym.

Cheers, Fede

EDIT: i zauważyłem również nie ustawiono żadnej szerokość i wysokość w polu tekstowym, więc nie jest suppost znać wielkość niego - po prostu stawia domyślną.