Nem működik a vertical-align
sziasztok,
Csináltam egy képgalériát, ahol van egy kis divslider ahol ke lehet válogatni a képet amit megszeretnénk nézni nagyban.A probléma a következő: a nagyképet amikor megjelenítem nem akarja függőlegesen középre igazítani azokat a képeket amelyek jóval kissebbek mint a keret.Gondoltam a vertical-align az jó megoldás lehet, de ugy néz ki nem. kérem lessétek meg nekem mi lehet vele a baj mert én beszorultam.
■ Csináltam egy képgalériát, ahol van egy kis divslider ahol ke lehet válogatni a képet amit megszeretnénk nézni nagyban.A probléma a következő: a nagyképet amikor megjelenítem nem akarja függőlegesen középre igazítani azokat a képeket amelyek jóval kissebbek mint a keret.Gondoltam a vertical-align az jó megoldás lehet, de ugy néz ki nem. kérem lessétek meg nekem mi lehet vele a baj mert én beszorultam.
function galeria(kszulo,x,y){
var galeriakeret=document.createElement('DIV'); /* az egész galéria kerete*/
galeriakeret.setAttribute('ID','galeriakeret'); /* ebbe van benne az összes */
galeriakeret.setAttribute('style','position:absolute;left:'+x+'px;top:'+y+'px;'); /*egyéb ide tartozó cucc*/
var kepmegjelenito=document.createElement('DIV'); /*az a keret ami megjeleníti a kisképeket nagyban */
kepmegjelenito.setAttribute('ID','kepmegjelenito');
kepmegjelenito.setAttribute('style','position:absolute;left:-6px;top:-7px;width:400px;height:350px;border:11px ridge #990000;text-align: center;vertical-align: middle;');
var nagykep=document.createElement('IMG'); /*ez a nagykép kerül bele a nagykép keretébe*/
nagykep.setAttribute('ID','nagykep');
nagykep.setAttribute('valign','middle');
nagykep.setAttribute('src','galeria/1.jpg');
nagykep.setAttribute('style','max-width:400px;max-height:350px;');
var kepkivalaszto=document.createElement('DIV'); /*a keret ahol lehet válogatni a kisképek között*/
kepkivalaszto.setAttribute('ID','kepkivalaszto');
kepkivalaszto.setAttribute('style','position:absolute;left:-190px;top:380px;width:600px;height:110px;border:4px ridge #990000;overflow:hidden;');
var kiskepek=document.createElement('DIV'); /*ebbe a divben vannak benne ténylegesen a kisképek */
kiskepek.setAttribute('ID','kiskepek');
kiskepek.setAttribute('style','position:absolute;left:5px;top:5px;');
var x=0
var keptav=10;
for (var i=1; i<= 13;i++){
kiskepgenerator(kiskepek,'galeria/'+i+'.jpg',i,100,100,x); /*itt tölti fel a progi a kisképes divet képekkel*/
x=x+100+keptav;
}
var balra=document.createElement('IMG'); /*balra mozgató animált gomb*/
balra.setAttribute('ID','balra');
balra.setAttribute('style','position:absolute;left:-170px;top:270px;width:60px;height:100px;');
balra.setAttribute('onMouseDown','document.balra.src="bal1.jpg";balra()');
balra.setAttribute('onMouseUp','document.balra.src="bal2.jpg";stop()');
var jobbra=document.createElement('IMG'); /*jobbra mozgató animált gomb*/
jobbra.setAttribute('ID','jobbra');
jobbra.setAttribute('style','position:absolute;left:-100px;top:270px;width:60px;height:100px;');
jobbra.setAttribute('onMouseDown','document.jobbra.src="jobb1.jpg";jobbra()');
jobbra.setAttribute('onMouseUp','document.jobbra.src="jobb2.jpg";stop()');
kepmegjelenito.appendChild(nagykep); /*itt rakom össze, hogy ki kinek a szülője*/
kepkivalaszto.appendChild(kiskepek);
galeriakeret.appendChild(kepmegjelenito);
galeriakeret.appendChild(kepkivalaszto);
galeriakeret.appendChild(balra);
galeriakeret.appendChild(jobbra);
document.getElementById(kszulo).appendChild(galeriakeret);
}
/* a segéd függvények:*/
function kiskepgenerator(kiskepek,src,id,a,b,x){
var kep=document.createElement('IMG');
kep.setAttribute('ID',id);
kep.setAttribute('src',src);
kep.setAttribute('onClick','mutatnagyban('+id+')');
kep.setAttribute('style','position:absolute;left:'+x+'px;top:0px;width:'+a+'px;height:'+b+'px');
kiskepek.appendChild(kep);
}
function mutatnagyban(id){
document.nagykep.src='galeria/'+id+'.jpg';
}
function jobbra(){
}
function balra(){
}
A kódodat fölösleges volt
CSS DIV-ben vertikálisan
google
div
ettable
megjelenéssel, abba rakj egy másik elemet, amitable-cell
megjelenésű… és akkor már használhatod avertical-align
tulajdonságot…Egyébként tényleg volt szó erről itt és a google is megadta volna a választ…
ie
ie8 már támogatja
(Picit bugolt is még -vagy csak én nem értettem hozzá / pl hiába adtam a cellának relative positioningot, a belerakott absolute positioned elem nem maradt benne, megállt a az első nem table elemnél melynél position relative volt.)
Üdv:
Gábor
Ha már kifújt minden szóba
div
-eket használsz. Ezért lesznek a HTML5-benheader
,nav
és hasonló új elemek, hogy ne csak az általános célú konténer elemeket lehessen használni. Meg aztán adisplay: table
tényleg csak a táblázatos iskolát hozza vissza új köntösben, az igazi megoldás majd a CSS grid modul széles körű elterjedése lesz.