Diskusijų forumai
Diskusijų forumai     Kompiuterinė grafika, dizainas     Tinklalapių dizainas     centravimas su css ir position savybė



centravimas su css ir position savybė

dziak
Naujokas

 
sveiki, turiu tokią problemėlę, centravimui panaudoju tokia eilutę:
1.body {margin: 0;}
2.#site {width: 998px; margin: 0 auto;}

su tuo viskas tvarkoje, viskas centruojasi, tačiau įvedus kokį nors elementą ir jam panaudojus savybę position: absolute; ir sumažinus naršyklės langą (restore down) tas elementas pasidaro plaukiojantis, mažinant naršyklės langą elementas slankiojasi, kaip padaryt kad jis būtų būtent toje nurodytoje vietoje ir nepriklausomai ar sumažini naršyklės langą ar ne?

ir dar vienas klausimėlis nekuriant naujos temos, dėl naršyklių suderinimo, per firefox 3,6 rodo vienaip, per exploreri 7 siek tiek kitaip atvaizduojama, naudoju reset.css, kokiu būdu pasiekt tą optimalų variantą kad tiek per exploreri, tiek firefox ir kitas atvaizduotų vienodai? ir kuria naršykle pasikliaut kuriant, kuri realiausiai atvaizduoja?
 


Atsakymai į temą

mikronaz
Bendruomenės narys

 
Sveikas.

Dėl position: absolute;: turi nustatyti, pagal kurį elementą ji yra taip nustatoma. Ta prasme, jei nori, kad elementas būtų priklausomas nuo #site tai prie jo savybių prirašai position: relative;, tada elementai esantys jame bus priklausomi nuo jo ribų. Nežinau ar supratai.. Sunkiai man gaunasi paaiškint. Dėl visa ko perskaityk čia.

Dėl naršyklių optimizacijos: labai sunku padaryti taip, kad visos naršyklės rodytų vienodai. Ypač nepaklusnios yra IE naršyklės, taigi jų klaidoms ištaisyti galima naudoti įvairius JavaScript'us arba papildomus CSS failus. Tam reikalui yra skirti "Conditional Comments". Naudojant juos galima nutaikyti tam tikrą CSS failą tam tikrai IE naršyklei. Daugiau rasi čia.. Žinoma yra būdų, kaip kai kurias klaidas ištaisyti nenaudojant papildomų CSS failų. Pvz.: jei elementas yra lygiuojamas į kairę (float: left;) ir jam yra uždedama kokia nors margin reikšmė, tai IE6 naršyklė tą reikšmę padidina dvigubai. Puiki išeitis yra panaudoti display: inline; aprašą. Jis visiškai nieko nelemia kitose naršyklėse, kadangi elementas yra lygiuojamas į kairę naudojant float, bet IE6 problemą tai ištaiso. Taip pat kaip pvz.: jei sukuri elementą, bet jame nieko nėra, (<div id="line"></div>), tada jam nustatai CSS savybes (aukšty, ir t.t.), tai berods IE6 ir IE7 nepaiso aukščio parametro, šiai klaidai ištaisyti, galima naudoti overflow: hidden;. Taigi, daug ką galima apeiti, su laiku tai darysi automatiškai..

Pats, pagrinde, pasikliaunu FireFox naršykle. Pastebėjau, kad ji manęs klauso geriausiai. Žinoma vėliau patikrinu puslapį ir per kitas naršykles ir radęs neatitikimų juos taisau. Esmė ta, kad kuo daugiau turėsi patirties, tuo geriau žinosi ką darai. Kurdamas taisyklingą kodą, pastebėsi, kad kitų naršyklių kompensuoti nereikės, nes viskas atrodys taip pat per visas naršykles..
madman333
Bendruomenės narys

 
o kaip centruoti ne tik horizontaliai bet ir vertikaliai? kad puslapuis butu grynai centre
Macaque
Bendruomenės narys

 
Naudoti javascript, paieškok gal rasi kokį jQuery plugin'ą horizontaliam/verticaliam centravimui smile