Bőngésző független módon, szeretnék egy divet vertikálisan és horizontálisan középre igazítani, úgy hogy a magassága kövesse a böngésző magasságát, de lent és fent megtartson 20-20 pixel távolságot a böngésző szélétől. A div szélessége fix.
Táblázattal nagyon egyszerű volt, de Div -el még nem sikerült összehozni.
Ilyet szeretnék DIV -el:
kevés szöveggel:
http://voidnull.alida.hu/tablealigntest.html
sok szöveggel:
http://voidnull.alida.hu/tablealigntest2.html
- 7886 megtekintés
Hozzászólások
akkor top:20px; bottom:20px;
- A hozzászóláshoz be kell jelentkezni
Sajna nem jó, ez scroll bárhoz vezet (tehát túlér a böngészőtéren az oldal)
- A hozzászóláshoz be kell jelentkezni
overflowval sem lehet javítani rajta?
szerk.: ja hogy túlér... :(
Akkor nézd ezt:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>divtest</title>
</head>
<body style="margin-top: 20px; margin-bottom: 20px; padding: 0px;">
<div height="100%" align="center" style='background:#cccccc;display:block;height:100%;width:700px;margin:0 auto;'>
kicsi szoveg
</div>
</body>
</html>
(lehet hogy nem szereti mindegyik böngésző sőt biztos)
- A hozzászóláshoz be kell jelentkezni
Valószínüleg ez elmegy azért 1-2 böngészővel, de akkor pontosítok, DIV -el szeretném, de azért hogy modern legyen, tehát CSS, XHTML.
Ezen az úton indultam el:
- A hozzászóláshoz be kell jelentkezni
Amit beírtam az div-es, ha jobban megnézed, most mindegy hogy inline css (style="") vagy külön...
- A hozzászóláshoz be kell jelentkezni
Amit belinkeltél, abba írd bele a body-hoz a margin-top: 20px; margin-bottom: 20px; stílusokat.
- A hozzászóláshoz be kell jelentkezni
ha ezt beírom, akkor scrollbár :) :(
- A hozzászóláshoz be kell jelentkezni
Ja, mert a height 100%-ra van állítva, asszem. :)
- A hozzászóláshoz be kell jelentkezni
No játszadoztam vele, doctype-pal kellene még egy div a containeren belül.
Doctype nélkül ez is jó:
body {
margin: 0px;
margin-top: 20px;
margin-bottom: 20px;
padding: 0px;
border: none;
}
#container {
display:block;
height: 100%;
width: 700px;
margin: auto;
background: #CCCCCC;
}
- A hozzászóláshoz be kell jelentkezni
lehet hogy csak nem értem pontosan, de sima egymásba ágyazott div -re gondolsz? mert annak ugyanúgy scrollbar a vége.
- A hozzászóláshoz be kell jelentkezni
Ezt teszteld lécci:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>divtest</title>
<style type="text/css">
#container {
position: absolute;
width: 700px;
left: -350px; /*szélesség fele*/
margin-left: 50%;
top: 20px;
bottom: 20px;
background: #cccccc;
}
</style>
</head>
<body>
<div id="container">
brekeke
</div>
</body>
</html>
(firefoxszal, operával nálam rendben van, sok szöveggel még nem próbáltam)
(ie6-ban nem jó :S)
- A hozzászóláshoz be kell jelentkezni
na ez sajna nem akarja megnyújtani ezt a divet, pedig több módon is próbáltam (sok tartalomnál), ei6 -ot nem lehet kizárni még, nagyon sokan használják (ha ie 5-el meg netscape 4 -el nem fog menni na az nem lesz egy nagy veszteség, de a hatos még túl gyakori)
- A hozzászóláshoz be kell jelentkezni
Az a baj hogy túlcsordul a tartalom annál amivel most próbálkozom.
Egy darabig én is akartam fentről és lentről távolságot hagyni, de aztán rájöttem hogy inkább berakok a nullás top és bottomos divbe távtartó div-eket fent és lent.
Csinálni kell ie-re hacket (teljes css stíluslapot) és berakni így:
<!--[if IE]>
<link rel="stylesheet" href="ie.css" />
<![endif]-->
Eddig egybe hackeltem * html kiválasztóval az ie hackjeit, de nem elég átlátható.
A quirks mód is szívás.
- A hozzászóláshoz be kell jelentkezni
(FYI: Ha
[code]
[/code] közé tennéd, nem kellene
< >
-vel bohóckodni, sőt a behúzások is megmaradnának a kódban.)
--
trey @ gépház
- A hozzászóláshoz be kell jelentkezni
Ha lett volna behúzás :) Gondolkodtam rajta.
- A hozzászóláshoz be kell jelentkezni
hát én ehhez javascriptet is használnék
nézz utána a window.innerHeight (firefox és szerintem IE7) és a document.documentElement.clientHeight (IE6) fügvényeknek
ezek megadják a böngésző kihasznált mélységét pixelben, ennek tudatában pedig meg tudod határozni (szintén javascripttel) a div height tulajdonsáságát
- A hozzászóláshoz be kell jelentkezni
És ahol nincs javascript engedélyezve? Ráadásul böngészőnként változik a magasság értelmezése javascriptben, van amelyik beleszámolja a böngészőt is...
- A hozzászóláshoz be kell jelentkezni
ezek a függvények a hasznos mélységet adja meg, nem számolja bele az egész ablakot
miután az eredményből kivontunk 40pixelt, megvan a div mélysége
és a css-t is ki lehet kapcsolni, nem csak a javascriptet
- A hozzászóláshoz be kell jelentkezni
tudom hogy így összelehetne valahogy barkácsolni js -el (hogy IE alatt menjen), de nem akarok javascriptet használni, meg ez így nem igazán lesz böngészőfüggetlen.
Igazából egy kicsit meglepő, hogy egy ilyen egyszerű dologra, az ezelőtt jósok évvel létrehozott html szabvány abszolút egyszerű megoldást kínált, viszont ez az agyondícsért,állítólag nagyon jól kitalált xhml, css meg nem képes egy sorral (de még sokkal se nagyon) megvalósítani egy ilyet...
- A hozzászóláshoz be kell jelentkezni
Meg lehet csinálni, csak az IE nem támogatja a css-t hiába olyan frankó dolog az...
.egermonitor
{
margin: 0px;
position: absolute;
top: 20px;
left:20px;
bottom: 20px;
right: 20px;
border: 1px solid silver;
overflow: auto;
}
ez a nem ie böngészőkön sztm jó.
- A hozzászóláshoz be kell jelentkezni
az lenne a lényeg hogy minden támogassa... :) egyébként amit leírtál az nem egészen azt csinálja amit itt kellene. overflow-ot egyébként sem akarok használni, googli állítólag nem díjazza mert spam gyanús (persze lehet semmi alapja, de azért googlitól jobb félni mint megijedni ;) )
- A hozzászóláshoz be kell jelentkezni
Itt sokat lehet tanulni: http://www.cssplay.co.uk/
- A hozzászóláshoz be kell jelentkezni
Ez amit akarsz, jó nagy szopás...
Még ha IE6-ot ki lehetne zárni, akkor egyszerűbb lenne a dolog.
Anno ez alapján csináltam:
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
- A hozzászóláshoz be kell jelentkezni
ie 6 az még important :), ja ezzel a cikkel találkoztam, amit belinkeltél.
Meg tudtad oldani, böngészőfüggetlenre?
- A hozzászóláshoz be kell jelentkezni
99%-ban igen, ha kell priviben elküldöm az oldal címét ahol van (mivelhogy céges, én meg azóta már kiléptem onnan).
- A hozzászóláshoz be kell jelentkezni
Illetve bocs, most ránéztem megint az oldalra, és rájöttem, hogy mégse sikerült a legjobban :)
Mivel azt, hogy alulról is egy fix pozícióban legyen, nem sikerült megoldanom. (Így height=xx%-ot kellett használnom a bottom=% helyett, mert különben ez a kib* fo* sza* IE nem ette meg a lapot)
- A hozzászóláshoz be kell jelentkezni
En arra tippelnek, a body text-align legyen center, egy kulso div-ben auto legyen az oldalso marginok erteke, szelessege legyen ami legyen. Lefele meg adhatsz egy min-height-et, a benne levo tartalom majd tovabb nyujtja lefele ha kell.
- A hozzászóláshoz be kell jelentkezni
hasonló próbák voltak már, mint amit leírsz, de hogy pontosab legyen esetleg kifejtenéd bővebben?
nem kell begépelned mindent, itt van egy váz
http://voidnull.alida.hu/divaligntest.html
bár lehet hogy inkább valami teljesen más útvonalon kellene elindulni...
- A hozzászóláshoz be kell jelentkezni
Végülis megtaláltam a megoldást, vagyis az utat a megoldás felé:
http://www.xs4all.nl/~peterned/examples/csslayout1.html
Sokszor használtam már alapnak ezt a módszert, jó benne hogy elviseli a hck meg egyéb editorok beépülését is.
Mivel a fejléc mindig fent van, a lábléc meg mindig lent, könnyen elérhető hogy úgy tűnjön mintha hely lenne a lap alja meg a div alja, és a lap teteje és a div teteje között. Csak megfelelő kép kell háttérnek. Úgyis egy grafikai témát kell átdolgozni weblappá, legtöbb esetben.
Lecsupaszítva a működő modell:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>divtest</title>
<style type="text/css">
html,body {
margin:0;
padding:0;
height:100%;
background:gray;
font:12px sans-serif;
}
div#container {
position:relative;
margin:0 auto;
width:750px;
background:#fff;
height:auto !important;
height:100%;
min-height:100%;
}
div#header {
height:20px;
background:gray;
}
div#content {
padding:1em 1em 5em;
}
div#footer {
height:20px;
position:absolute;
width:100%;
bottom:0;
background:gray;
}
</style>
</head>
<body>
<div id="container">
<div id="header"></div>
<div id="content">
brekeke
</div>
<div id="footer"></div>
</div>
</body>
Respect to Peter Nederlof
- A hozzászóláshoz be kell jelentkezni
na ez így elég reményteljes :), 3div-el még a legelején próbálkoztam, de ebben a formában nem jutott eszembe.
felpakoltam ide, akinek sok böngészője van esetleg tesztelhetné, nekem úgy tűnik hogy jó lesz, bár ie 6 alatt mintha 1pixel magasságban kihagyna a böngésző aljától.
- A hozzászóláshoz be kell jelentkezni
Hopp, bennemaradt egy BOM (byte-order-mark)(ďťż) az elején, ezért scrollbar jelent meg nálam.
- A hozzászóláshoz be kell jelentkezni
ööö nem fikázásból, de ebben így mi a pláne? Sima középre helyezett content, fix felső marginnal...hol van az említett változó méret? :) ja már látom, hogy a körülírás bonyolultabb volt mint a példa :)
A css-ben kétségtelenül a középre igazítás a macerásabb, mert mindig meg kell támasztani valamivel a float-os dobozt, de hozzá lehet szokni :)
Amúgy meg ha már utf8, akkor szedd ki belőle a BOM karaktert...
u.i.: egyéb tippek,
- A hozzászóláshoz be kell jelentkezni
hopp, míg levadásztam neked a linket, már észre is vetted :)
- A hozzászóláshoz be kell jelentkezni
Fix felső és alsó margin-nak látszik ez tény. Méretezd át az ablakot. Töltsd ki tartalommal. Tényleg néha a legegszerűbb dolgokat lehet a legnehezebben megoldani. :) De elég csak egyszer. Időnként kétszer.
- A hozzászóláshoz be kell jelentkezni
ezt megtettem, de még mindig nem látom amit kellene :) Ugyanúgy bejön a scrollbar mint normálisan, tényleg nem vágom.
- A hozzászóláshoz be kell jelentkezni
Milyen böngészővel?
- A hozzászóláshoz be kell jelentkezni
FF 2.0.0.9 @ win
Az ötletből merítve leírom én is, hogy mit látok:
Van egy középreigazított tartalom, egy "lábléc", és egy felső margó. Ha elkezdem összehúzni, akkor a tartalom szövegéig a whitespace kezd el fogyni, nem pedig a lábléctől felfelé. Amint beér a szöveg+alsó margója területére, megjelenik a scrollbar. Továbbá ugyanez igaz, ha a a tartalom szélességét elérem az összehúzással.
- A hozzászóláshoz be kell jelentkezni
Te is konquerroral tesztelsz? vagy lynx-el? :D
- A hozzászóláshoz be kell jelentkezni
nem, nem. Mosaic meg hangosbrowser látássérülteknek... :)
(u.i.:akinek morbid volt, attól elnézést)
- A hozzászóláshoz be kell jelentkezni
Ennek hogy kéne működnie?
Elmondom, mit látok: elindítom, jó nagy cucc, kilóg a képernyőből.
OK, lekicsinyítem a betűket, így már eltűnik a scrollbar.
Elkezdem összetolni az ablakot, az alja menekül az ablak szélétől (a tetejére nem figyeltem), amíg egyszer csak meg nem jelenik a scrollbar.
Ezután fogom az ablak alját, újra lehúzom, és ilyenkor a fehér rész már nem követi, az ablak felső részéhez közel ott a fehér, alatta széles szürke sáv.
Kicsit fura.
Ja, konqueror 3.5.7
G
- A hozzászóláshoz be kell jelentkezni
Muhaha! :D
- A hozzászóláshoz be kell jelentkezni
Hát igen, konquerroral nem megy... valami olyasmit kellene csinálnia mint firefoxal...
- A hozzászóláshoz be kell jelentkezni
Én már boldog vagyok ha megy ie7-tel, ie6-tal, firefox legfrissebb verziójával és operával. A többiek nem izgatnak. Még ezekre se fejleszt a többség.
- A hozzászóláshoz be kell jelentkezni
az a durva, hogy a táblázatos verzió konquerroal is jó, lehet visszaálok
<table>
-ra :)
szerk. oops beírtam a table -t és hazavágta a portált.. :D
- A hozzászóláshoz be kell jelentkezni
Lehet hogy ez az ára a táblafóbiának? :) Volt idő mikor még a táblázatokat is divekkel akarták megoldani sokan.
- A hozzászóláshoz be kell jelentkezni
Na ezek után úgy gondolom, senki ne fikázza a táblákat (most sokan felhorkantak :) ), de legalábbis a CSS találjon ki valami épkézláb módszert az igazításokra, mert ez így nem a legtutibb.
Köszönöm a segítséget mindenkinek aki lépett az ügyben főként brekeke -nek.
- A hozzászóláshoz be kell jelentkezni
Ez itt ötletesnek látszik:
http://www.codeproject.com/html/relatively_simple.asp
- A hozzászóláshoz be kell jelentkezni