PDA

Pogčedajte punu verziju : i opet css problemi


ivanhoe
22. 03. 2007., 10:43
dakle evo najnovije muke pregoleme (i to u firefoxu) :

Imam sliku floatovanu levo, i jedan div floatovan desno , i gomilu texta. Ukoliko se prozor smanji (ili je niska rezolucija), pa nema dovoljno prostora za sliku da stane u isti red sa floatovanim divom, ona se pomeri na dole, a text popuni taj prostor. To je sve u skladu sa specifikacijom i fino i krasno, ali problem je sto
se deo texta nadje ispod (ili preko) slike..

Evo jedan primer, cisto da vam bude jasnije o cemu pricam:

<div style="width:250px;">
<div style="width:100px;height:300px;float:right; background-color:#00F"></div>
<img src="nesto.jpg" width="200" height="200" style="float:left" />
(...Ovde stavite gomilu texta...)
</div>


u firefoxu deo text zavrsi ispod slike, a u exploreru se ponekad isto desi, ponekad ne (zavisi od dimenzija elemenata)

Veljko
22. 03. 2007., 12:47
Ako sam ja razumeo,mislim da je problem u onom div-u koji ima width:250px,a trebao bi da ima 300px

ivanhoe
22. 03. 2007., 13:37
ma ne, to sam stavio namerno, da bih simulirao sta se desi kad je premalo prostora... meni se to na stvarnoj strani desava kad je rezolucija niska.

Nije problem sto se sve pomeri na dole, nego samo da nateram ceo text da bude vidljiv, da ne dodje do ovog preklapanja...

Veljko
22. 03. 2007., 17:41
Jbg :),nisam razumeo,za ie6 moze da se sredi,ubacis text u div i das mu float:left i lepo to radi,ali u firefoxu nece,kao da stavi neku podrazumevanu vrednost za width div-a u kom je text,nadam se da neko zna...

dee
22. 03. 2007., 18:05
Nije problem sto se sve pomeri na dole, nego samo da nateram ceo text da bude vidljiv, da ne dodje do ovog preklapanja...

stavi tekst u <p> sa style=clear:left;

[Edit]
ne valja ni to. onda na osnovnoj rezoluciji ne izgleda kako treba. sorry.

ivanhoe
23. 03. 2007., 02:09
izgleda da ce raditi javascript na kraju... definitivno se radi o bagu browsera, neka greska kod zaokruzivanja ili racunanja margina....ali me buni sto kad se desi, desi se skoro identicno i na IE i na FF...

mozda ipak nije trebalo da psujem onu vracaru pre par dana :D

xippi
23. 03. 2007., 05:18
problem je u ie-u samo. mislim da ff odradi posao kako treba. ako pazljivo izlomis rec videces da se one od par slova nastavljaju tamo gde bi trebalo, dok ie ne konta gde je pocetak kontejnera.

jedino vizuelno pristojno resenje koje mi pada na pamet je da kontrejneru das minimalnu sirinu jednaku zbiru ova dva elementa. tako ce tekst ispod odredjene rezolucije poceti ispod

ivanhoe
23. 03. 2007., 12:03
da kontrejneru das minimalnu sirinu jednaku zbiru ova dva elementa

to je i meni palo na pamet kao resenje, ali ne znam kako da to odradim u IE preko CSS. Min-width ne postuje, a ako mu stavim width, onda gubim flexibilnu siinu, jer ce stalno da bude zakucan na to... jedino mi JS pada na pamet kao lek..

Dragan Babić
23. 03. 2007., 12:45
width: expression(this.width > 350 ? 350: true); Obično radi posao, ali zna da zeza. Umesto 350 naravno stavi svoju vrednost.

dee
23. 03. 2007., 15:02
cini se da ipak javascript. ovo mi radi lijepo:


window.onresize=function()
{
if (window.innerWidth < 350 )

document.getElementById('tekst').style.cssFloat="left";

else
document.getElementById('tekst').style.cssFloat="none";

}

tekst je, naravno, u <div id="tekst"> tekst </div>

ivanhoe
24. 03. 2007., 05:11
@dragan: Jel mozes da mi kazes u kojim situacijama zeza? Cisto da znam sta da ocekujem..

radje bih koristio css expression, za slucaj da korsinik ima iskljucen javascript, a i da se ne zezam sa detekcijom browsera..

kodi
24. 03. 2007., 08:08
width: expression(this.width > 350 ? 350: true);

ovako kako je dragan postavio tako najcesce i zeza, jer ovo je endless loop.

Posebno IE zna da zamrzne u tim slucajevima.
trebalo bi da prva vrednost bude neznatno veca, znaci 354 ili 352, u prevodu treba dati browseru vremena da odreaguje :D

p.s. ne trebas da se zezas sa detekcijom, samo ovaj rule stavi pod IE Conditional comments..
vidi ovu (http://www.dizajnzona.com/forums/index.php?showtopic=26083)temu... (stim sto sam se tada zajebo, ne postoji lteIE7)

ivanhoe
24. 03. 2007., 17:37
ali 350 nije vece od 350? Zasto bi upadao u loop?

kodi
24. 03. 2007., 18:01
bah, odkud znam.. mozda losa implementacija u IE, djavo ce ga znati...

xippi
24. 03. 2007., 19:14
jedini problem za koji ja znam je da ie ume da se srusi kada se istom elementu daju i minimalna i maksimalna sirina na ovaj nacin

sto se js-a tice pogledaj minmax.js (http://www.doxdesk.com/software/js/minmax.html)