Autor Zpráva
Fred
Profil
Tady si hraju s title http://xy.wz.cz/title/ , zobrazuje se nad Podnadpisem a nad výrazem zoch ptuř, ale opera ho špatně odebírá, zůstávají tam fragmenty zobrazeného titulku. Vím, že jsem někde viděl nějaký trik, jak tohle vyřešit, bohužel nemám páru jakými klíčovými slovy to řešení vyhledat. Nevíte někdo?

Ještě mám jeden dotaz, který taky nevím jak dohledat. Jsou to komentáře. Mám tam tu stránku i v xhtml tady http://xy.wz.cz/title/index.xhtml (neotvírat v IE!) . V xhtml používám komentáře
<![CDATA[//
]]>
v html
<!--
-->

ale potřeboval bych aby ten zdroják byl naprosto stejný v xhtml i v html, jen nevím jak ty komentáře zapsat, aby to taky v obou případech fungovalo?
peta
Profil *
Fred Sim te, na Operu bych se vykaslal :) Opera je jeden z mala prohlizecu, ktery ma problem se vsim. Ostatni prohlizece bud podporuji nebo ne. Opera, kdyz neco ano, tak s chybami.
Fred
Profil
Ne, že bych nesouhlasil, ale to mi nepomůže ;-)
Fred
Profil
Na druhou otázku jsem našel odpověď tady http://www.hixie.ch/advocacy/xhtml

<script type="text/javascript"><!--//--><![CDATA[//><!--
...
//--><!]]></script>

<style type="text/css"><!--/*--><![CDATA[/*><!--*/
...
/*]]>*/--></style>
peta
Profil *
Fred Dobre, no. Ze ses to ty, napada mne takova finta display:none :) at si to tam opera necha, ty si to schovas :)
Jinak mam pocit, ze z-index je jen do 255.
Misto nastavovani style pomoci JS bych pouzil jen zmenu class. Myslim, ze nema smysl hrat si v JS se styly, kdyz muzou byt v CSS venku.

Prekvapuje mne, ze clovek, jako ty, pouzije cizi pochybny kod. Byl jsi to myslim ty, kdo mi ukazoval takove pekne vlastni kody...

Sem objevil ted gradient, mozna se ti to bude libit (aspon vim, ze mas rad takove veci :) )
http://slayeroffice.com/code/gradient/
pro IE pouzivaji DX filter, alias filter
pro FF pouzivaji pridavani divu na pozadi
Fred
Profil
peta No tvá reakce je trochu mimo.
1/display:none nic neřeší, to můžu Operu odstřihnout rovnou.
2/z-index je jen do 255 Ne je to réálné číslo
http://www.w3.org/TR/REC-CSS2/visuren.html#propdef-z-index http://www.w3.org/TR/REC-CSS2/syndata.html#value-def-integer
3/bych pouzil jen zmenu class To jo, ale tady to potřebuju mít co nejvíc samostatné a tak je to v tom js
4/pouzije cizi pochybny kod addEvent používám vždy a na rozdíl od téměř všech renomovaných serverů tam nechávám kredit na původní zdroj, a zbytek kódu je vesměs původní, navíc tam uvádím 4 zdroje které mě inspirovali pro předělávku funkce getElementsByClasName, její původní verze nefunguje v IE5 a navíc si nejsem jistý tím kdo je její autor, protože je se strojená z těch uvedených zdrojů a komentářů pod nimi.
5/gradient je pěkný, ale mám pocit, že něco takovýho jsem sem kdysi posílal
function hrefy(){
for (var ixs=0;ixs<256;ixs++){
var redhrf = document.createElement('a');
redhrf.setAttribute('href','#');
redhrf.setAttribute('id','cCR'+[ixs]+'');
redhrf.setAttribute('style','background-color:rgb('+[ixs]+',0,0);');
document.getElementById('blue').appendChild(redhrf);
}}
window.onload=hrefy
Takovýhle srandy jsou dost náročný na PC.

Takže zpátky k tématu.

Potřebuju trik pro překreslení obsahu stránky v Opeře toť vše.
peta
Profil *
Fred Pockej, asi jsi mne nepochopil. Ty mas 1 script
co[i].onmouseover=function(){
var tooltip=document.createElement('span');
tooltip.style.display='block';

jenze kdyz Tooltip skryvas, tak delas co?
co[i].onmouseout=function(){
if(document.getElementById('xxx'+[i])){
this.removeChild(this.lastChild);

A pred tim nejake display:none nic?
Jak spravne rikas, neprekresluje se to. Opera tim asi setri cas pro vetsi rychlost.

Cili ja navrhuji, nejdriv nastavit display:none a az pak remove. Ju?
Mimochodem, nesedi ti tam nejak zavorky.

A abys nerek, tak to vyzkousim.

Tak to budes cumet a zasnout :)))
Jak jsem rikal, zkusit to schovat. Vyzkousel jsem vse, v kodu je neco navic, ale zirej, tady to nedela:

</style>
<script type="text/javascript">
/*<!--//--><![CDATA[//><!--*/
document.getRel=function(needle){
//more about this you will find, if you will search this query getelementsbyclassname at this places
//glazblog daniel.glazman.free.fr Daniel Glazman;
//simon.incutio.com Simon Wilson;
//snook.ca Jonathan Snook;
//livsey.org Richard Livsey;
var my_array=document.all?document.all:document.getElementsByTagName('*');
var retvalue=new Array();var i;var j;
for(i=0,j=0;i<my_array.length;i++){
var c=" "+my_array[i].getAttribute('rel')+" ";
if(c.indexOf(" "+needle+" ")!=-1)
retvalue[j++]=my_array[i];}
return retvalue;}
function init(){
var co=document.getRel('titRel');
for(var i=0;i<co.length;i++){
if(co[i].title){
co[i].onmouseover=function(){
var tooltip=document.createElement('span');
var newText=document.createTextNode(this.title);
tooltip.style.display='block';
tooltip.style.position='absolute';
tooltip.style.background='#44bef1';
tooltip.style.color='#00415d';
tooltip.style.border='.5em solid #2b82af';
tooltip.style.whiteSpace='nowrap';
tooltip.style.zIndex='1000';
tooltip.style.padding='.5em';
tooltip.style.height='1em';
tooltip.style.lineHeight='1.2em';
tooltip.style.font='1em normal normal Palatino,palatino linotype,serif;';
if(!e){var e=window.event;}
tooltip.style.top=e.clientY+document.body.scrollTop+20+'px';
tooltip.style.left=e.clientX+document.body.scrollLeft+20+'px';
tooltip.id='xxx'+[i];
tooltip.appendChild(newText);
this.appendChild(tooltip);
}
co[i].onmousemove=function(e){
if(!e){
var e=window.event;
}
if(document.getElementById('xxx'+[i])){
this.lastChild.style.top=e.clientY+document.body.scrollTop+20+'px';
this.lastChild.style.left=e.clientX+document.body.scrollLeft+20+'px';
}
}
co[i].onmouseout=function(){
if(document.getElementById('xxx'+[i])){
this.lastChild.style.width='0px';
this.lastChild.style.height='0px';
this.lastChild.style.border='0 solid #000';
this.lastChild.style.zIndex='-1';
tooltip.style.lineHeight='0';
this.removeChild(this.lastChild);
}
}
}
}
}
function addEvent(obj,evType,fn){
//Scott Andrew www.scottandrew.com/weblog/articles/cbs-events
if(obj.addEventListener){obj.addEventListener(evType,fn,true);return true;}
else if(obj.attachEvent){var r=obj.attachEvent("on"+evType,fn);return r;}
else{return false;}}addEvent(window,'load',function(){init();});
/*//--><!]]>*/
</script>

</head>
<body>
<h1>Nadpis</h1>
<h2 rel="titRel" title="Podnadpis 1">Podnadpis 1</h2>
<p class="prvni" id="mistoZobrazeni">Pěchý sa levě z bisu boré bě míze a li fysu lech. Lo dřalíď řu věď pýza vu sehrů lulon ša?
Měčej sop mivaš stývou, jou dřizůla houk hřátě z
si krarak melamu hřívhak

<code rel="titRel" title="to sou blbiny co?">zoch ptuř</code>.

Zypu bysek ptyď vi vrůkoup s buk olyp luř simřadůpo soumih lich.
Nedézoč opéť beř. Ziň malfépěpisk i nusou mřelo bu lasů a pur. Vévě ozi luň ktobup. Vahružá brosý. Dět lo. Vuvilen pabřuž tychý mi lídě brépa
</p>
</body>
</html>

..... A uplne cely problem s fragmenty kodu poresilo az LINE-HEIGHT :))) Takova nesmysla, to by jeden nerek. Co chces prekreslovat? Zas tvoje bookmarky, vymakane :)
Fred
Profil
Zajímavý, že to funguje, ta Opera je fakt ***, protože to spravuje tooltip.style.lineHeight='0'; což je úplná hovadina, protože tooltip není na tom místě definován, čímž to začne chybovat jinde, dík to mě trochu popostrčí, budu dumat dál.
Fred
Profil
Když překreslím pozadí těch prvků, kde se to děje, je po problému, ale script tím přestane být universální :-(

if(window.opera){
document.getElementById('mistoZobrazeni').style.background='#333'
document.body.style.background='#000';
}
peta
Profil *
Fred mimo to jsem tam pridal do toho hlavniho event, kvuli souradnicim. Proste s tim kouskem kodu, co jsem poslal mi to fungovalo, jak by melo. Ale zas sem to netestoval v IE a FF
Fred
Profil
peta fungovalo, jak by melo Skoro, nevím jaké máš rozlišení, na tom druhém titulku zůstávaly zbytky písma pozadí, tam kde se zobrazil nad černým body.
Fred
Profil
Tak jsem to vyřešil udělal jsem si funkci co nedělá vlastně nic, vytvoří div a zase ho odebere, tím se překreslí stránka.

function operahack(){
var operahack=document.createElement('div');
operahack.style.height='99%';
operahack.style.width='99%';
operahack.style.background='transparent';
document.getElementsByTagName('body').item(0).appendChild(operahack);
document.getElementsByTagName('body').item(0).removeChild(operahack);
}

A na krititckých místech tu funkci volám

if(window.opera){operahack()}

Kdyby to někdo ještě potřeboval je to tam http://xy.wz.cz/title/
BTW peta sice jsem to udělal jinak, ale stejně dík za popostrčení.
peta
Profil *
prave to cerne mi uz mazal.
Nejdriv jsem nechapal, co chces, protoze mi to zanechavalo stopu pod nadpis a vpravo od tech 2 slov, cili 2 chyby, pak mi tam blikala pozice, 3ti chyba. A jeste, kdyz se ty 2 slova zalomila, tak na novem radku to silene prekreslovalo. To lineHeight poresilo vsechny vykreslovaci problemy.
Oswald
Profil
Tak jsem to vyřešil udělal jsem si funkci co nedělá vlastně nic, vytvoří div a zase ho odebere, tím se překreslí stránka.

Na tohle se mi osvědčilo:

document.documentElement.className = document.documentElement.className;
emusa
Profil *
ahoj vzdit to funguje
Fred
Profil
Oswald Díky moc, to je přesně to co jsem od začátku hledal.

emusa Jo je to tam opraveno.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0