Comunidad de diseño web y desarrollo en internet online

Error en Codigo Xhtml

Citar            
MensajeEscrito el 22 Oct 2006 04:57 pm
Bueno estaba realizando una página como otras que he realizado y me he topado con un error un poco grave, creo que es el codigo XHtml, pero este error me pasa solo IE.

Son los siguientes:

1- la orden hover no me lo ejecuta, pensaba que era un error de IE, pero me equivocaba, ya que he visualizado muchas paginas que si les funcionan y me esty volviendo loco la verdad (seguro que es un error de cierre o algo). sobre todo la etiqueta <a> y las imagenes que tengo a la izquierda.

2- La siguiente, he seguido el siguiente tutorial
Tutorial de AJAX (Asynchronous Javascript and XML), bien me funciona fenomenal en Firefox, pero cuando lo miro en IE, (Toma ya, no se me carga), mire el tutorial en IE y funciona Ok, y creo que este error es del codigo del Xhtml y no se donde esta mi error

La pagina esta colgada aqui, Lamento por los banner que salen en esta página (* Se ha direccionado para que no me salgan banners), si sabeis de algun host que sea gratuito y no te incluya banner, decirmelo.


El codigo Xhtml:

Código :

<!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" lang="es" xml:lang="es">
  <head>
    <title>
      Premio Primi
    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="estilos/newstyl.css" rel="stylesheet" type="text/css" title="default" />
    <!--[if lt IE 7]>
        <script defer type="text/javascript" src="scripts/png.js"></script>

<![endif]-->

<script language="JavaScript" type="text/javascript" src="scripts/swfobject.js">
</script>
<script language="JavaScript" type="text/javascript" src="scripts/codigo.js">
</script>
<style type="text/css">
/*<![CDATA[*/
 div.c2 {position:absolute;top:6px; left: 100px;}
 div.c1 {position:absolute;top:66px; left: 10px;}
/*]]>*/
</style>
  </head>
  <body>
    <div id="central" class="c2">
      <div class="hty"></div>
      <div class="img_izq c1">
        <img src="ima_prt/foto.png" alt="Descripcion de la proxima foto" /><br />
        <br />
        <div id="bton_ini" onclick="javascript:llamarasincrono('txt/o.htm', 'contenidos');" title=
        "Inicio"></div><br />
        <div id="bton_sot" onclick="javascript:llamarasincrono('txt/ant.htm', 'contenidos');"
        title="Antiguos Sorteos"></div><br />
        <div id="bton_esta" onclick="javascript:llamarasincrono('txt/esta.htm', 'contenidos');"
        title="Estadísticas"></div><br />
        <br />
        <a href="http://www.difundefirefox.com"><img src="ima_prt/logo-firefox.png" border="0" alt="Firefox" title="Navega Mejor Con Firefox" /></a>
      <br />
      <a href="http://validator.w3.org/check?uri=referer"><img
        src="ima_prt/logo-xhtml.png"
        alt="Valid XHTML 1.0 Transitional" border="0" /></a>
  
      </div>
      <div class="txt_prin">
        <script type="text/javascript">
//<![CDATA[
            llamarasincrono('txt/o.htm', 'contenidos');
                                
//]]>
</script>
        <p id="contenidos">
           
        </p><noscript>
        <p>
          Hemos detectado que tiene desactivada la opción Javascript de su navegador.
        </p>
        <p>
          Permite JavaScipt en esta página para poder visualizar correctamente la Pelicula Flash o
          Necesitas Flash Player, para bajartelo
        </p></noscript>
      </div>
      <div class="foot">
        <p>
          Este es el Pie del Documento
        </p>
      </div>
    </div>
  </body>
</html>



La hoja de Estilos:

Código :


/************** general ***************/
body 
{
   background-image : url(../ima_prt/fondo.png);
   font: 11px Verdana,Arial,Helvetica, sans-serif;
   text-align: justify;
   line-height: 10px;
   cursor : default;
}
p {
   font-size: 11px;
   color: #2b9f22;
   line-height: 100%;
}

hr {
   color: #ffffff;
}
h1 {
   font-size: 25px;
   text-align : left;
   color : #2b9f22;
}
h2 {
   font-size: 20px;
   text-align : left;
   color: #2b9f22;
   text-transform: capitalize;
}
h3 {
   font-size: 18px;
   text-align : left;
   color : #ffffff;
}
h4 {
   font-size: 15px;
   text-align : left;
   color : #ffffff;
}

td {
   font-size: 12px;
   text-align : center;
   color : #ffffff;
}
ul{
   color: #ffffff;
   line-height: 85%;
   text-transform:capitalize;
}

a {
   font-size: 11px;
   color: #b1f6ac;
   cursor:pointer;
   
}
a:hover {
   text-decoration: underline;
      color: #2b9f22;
}



.texto_situacion {
   font-size: 10px;
   color:  #2b9f22;

}
.texto_imprimir {
   font-size: 10px;
   color:  #2b9f22;

}

   
/************** bloques ***************/


#central {
   background-color: #2b9f22;
   width:750px;
   height:auto;

   /*background-image : url(../ima_prt/fondo.png);*/
}
.hty
{
   width:750px;
   height:50px;
   margin:0 0 10px 0;
   background-image : url(../ima_prt/hdrob1.jpg);
}
.img_izq{
   width:126px;
   height:auto;
   border-style:solid;
   border-width:1px;
   margin:20px 0 0 0;
/*   border-color : #C3C3C3;*/
   border:0;
}


.txt_prin{
   width:575px;
   height:auto;
   border-color: #2b9f22;
   background-color: #b1f6ac;
   border-style:solid;
   border-width:1px;
   margin:20px 5px 0 145px;
   padding:10px;
}

.txt_prin blockquote{
   background-color: #ffffcc;
   margin:5px;
   font-size:10px;
   display : block;
   border-color : #666666;
   color : #c4c4c4;
}

.foot{
   width:auto;
   height:17px;
   background-image : url(../ima_prt/foot.png);
   margin:5px;
   text-align:center;
}
/************** .feature styles Imagen alredor del texto ***************/

.feature{
   padding: 10px 10px 10px 0px;
   font-size: 85%;
}

.feature img{
   float: right;
   padding: 0 0 10px 10px;
   margin: 0;
   border:0;
}

.feature_left{

padding: 10px 10px 10px 0px;
   font-size: 85%;
}

.feature_left  img{
   float: left;
   padding: 0 0 10px 10px;
   margin: 0 0 5px 0;
   border:0;
}


/************** Botones ***************/
#bton_ini
{
   background-image:url(../ima_prt/inicio_1.png);
   height:18px;
   cursor:pointer;
}

#bton_ini:hover
{
   background-image:url(../ima_prt/inicio_1_over.png);
   height:18px;

}

#bton_sot
{
   background-image:url(../ima_prt/ant_sot.png);
   
   height:18px;
   cursor:pointer;
}
#bton_sot:hover
{
   background-image:url(../ima_prt/ant_sot_over.png);
   height:18px;
   
}
#bton_esta
{
   background-image:url(../ima_prt/esta.png);

   height:18px;
   cursor:pointer;
}
#bton_esta:hover
{
   background-image:url(../ima_prt/esta_over.png);
   height:18px;
   
   
}



* html #contenidos{
 /*estilo solo para IE ya que no se admite la propiedad min-height*/
height: 400px;
}

}


Si me podeis echar una mano os lo agradecería

Cambios del Xhtml, validado 23/10/2006

Por Suriv

131 de clabLevel



 



Ultima edición por Suriv el 24 Oct 2006 12:24 pm, editado 4 veces

firefox
Citar            
MensajeEscrito el 22 Oct 2006 05:30 pm
Tres cosas:
1.BBcode para las URL's funciona así: Entre los corchetes se pone la url, y el texto estre las etiquetas. Como en html. :wink:
2. Freewebs tiene hosting gratuito y no tiene banners, solo el suyo que dice que estás alojado en freeweb que lo puedes colocar donde quieras.
3. Bienvenido al club de "Odio a IntenetExplorer"

En cuanto a tu web no se ver el problema. Pero si una cosa aprendí cuando el hover no me funcionaba en IE, es que solo funciona en las listas. (segun yo)

Por ryuz

350 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 22 Oct 2006 06:01 pm

ryuz escribió:


En cuanto a tu web no se ver el problema. Pero si una cosa aprendí cuando el hover no me funcionaba en IE, es que solo funciona en las listas. (segun yo)

De hecho, si funciona: si quieres verlo, entra con IE a cristalab y hazle hover a uno de los titulos del blog. :wink:

Para lo de tu web te puedo recomendar que uses el validador de la w3c. Si te parece mucho trabajo cambiarlo todo, puedes bajar Notepad++, instalarle el plug-in "TextFX" y usar la caracteristica "XHTML Tidy", el cual convierte tu documento a XHTML transicional o estricto. Eso si, ten cuidado, pues te puede cambiar el codigo bastante... aunque se verá igual la web.

Saludos!

Por Lunatic Lycanthrop

Claber

1203 de clabLevel

7 tutoriales

1 ejemplo

Genero:Masculino  

The dark places where wolves access internet with 46,6 kbps

firefox
Citar            
MensajeEscrito el 22 Oct 2006 07:23 pm
Gracias ryuz

Es que lo del BBcode, me acordaba pero lo puse al reves.

Pero ya no es Odiar a IE, es que seguro que es un fallo tonto y eso es lo que mas me fastidia.

Ahora me esty registrando, es que iespana la tenia desde hace mucho tiempo.

Me hare una copia de seguridad, ya os contare que tal me ha ido

Por Suriv

131 de clabLevel



 



Ultima edición por Suriv el 22 Oct 2006 10:23 pm, editado 1 vez

firefox
Citar            
MensajeEscrito el 22 Oct 2006 08:32 pm
Ya he validado el Xhtml y me OK, el validador, ahora estoy corriengo la hoja de estilos, que esta si que me ha dado errores

Me he registrado en Freewebs, pero no me gusta, pq no me deja por Ftp, ya que contiene bastantes datos.

Bueno sigo mirando el codigo.

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Oct 2006 03:55 am
Oye Suriv, te recomiendo que como hosting gratuito uses http://www.usuarios.lycos.es. Hay acceso por ftp, 50 mb , soporte PHP4 y MySQL y solo te ponen una pequeña publicidad de adsense arriba ( y eso que la puedes quitar).

Saludos!

Por Lunatic Lycanthrop

Claber

1203 de clabLevel

7 tutoriales

1 ejemplo

Genero:Masculino  

The dark places where wolves access internet with 46,6 kbps

firefox
Citar            
MensajeEscrito el 23 Oct 2006 01:23 pm

Suriv escribió:


Pero ya no es Odiar a IE
pronto comenzaras seguro que si... todo diseñador tarde o temprano lo odiara... por que lo merece... cuando comiences a hacer maromas y usar hacks para que se vea tan bien en ie como en ff lo harás... solo es cuestión de tiempo... U_U

Por EmiR

Claber

678 de clabLevel

2 tutoriales

Genero:Masculino   Héroes

firefox
Citar            
MensajeEscrito el 23 Oct 2006 01:49 pm

Lunatic Lycanthrop escribió:

ryuz escribió:


En cuanto a tu web no se ver el problema. Pero si una cosa aprendí cuando el hover no me funcionaba en IE, es que solo funciona en las listas. (segun yo)

De hecho, si funciona: si quieres verlo, entra con IE a cristalab y hazle hover a uno de los titulos del blog. :wink:


No me expresé con claridad. Me refería a otros elementos que fueran enlaces.

Por ryuz

350 de clabLevel

2 tutoriales

 

firefox
Citar            
MensajeEscrito el 23 Oct 2006 04:42 pm
pon los demas pseudo clases de a, a:link a:visited a:hover a:active

Por buzu

163 de clabLevel



 

Los Angeles, California

firefox
Citar            
MensajeEscrito el 24 Oct 2006 08:52 pm
Es obligatorio poner las pseudo clases???

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Oct 2006 11:13 pm

Suriv escribió:

Es obligatorio poner las pseudo clases???
solo si vas a darles estilo...

Por EmiR

Claber

678 de clabLevel

2 tutoriales

Genero:Masculino   Héroes

firefox
Citar            
MensajeEscrito el 25 Oct 2006 07:32 am
Por eso, si no les voy a dar estilos.


Pero, no se si simular el hover de las imagenes con javascript si es IE, pero no se....., pero el problema 2 es que no me acepta los javascript el IE, mas concretamente los de Ajax

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2006 02:06 pm
Bueno por fin, hay que decir que me funciona la sustitucion de imagenes sin necesidad de un javascript, lo he encontrado por la red.


No lo he subido todavia y no lo he retocado en el codigo CSS del documento, pero he probado otra pagina en mi PC y me funciona, es lo siguiente:

Código :

#rim{
      position:relative;
      z-index:1;
      width:76px; 
      height:10px;
      background:url(images/xhtml.jpg) no-repeat;;
      }
#rim a{
      display:block;
      width:76px; 
      height:10px;
      background:transparent url(images/css.jpg);
      text-decoration:none;
      }
#rim a:hover,
      #rimpiazza a:focus,
      #rimpiazza a:active{
      background-image:url(images/xhtml.jpg);
      }
#rim a span{
      position:relative;
      z-index:-1;
      }

Y en el HTml

Código :


<div id="rim"><a href="…"><span>Cristalab</span></a></div>

*La palabra Cristalab la he puesto ahi por ponerla.

Ya una cosa solucionada, Ahora a por el javascript

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Oct 2006 02:31 pm
umm bueno la cosa es que.... ie es un siego... no puede detectar el hover de ningun elemento amenos que sea un link... este es bastante precario... pero para solucionanrlo deberia usar un hack sencillo para emular el hover, estuve mirando el js del tutorial, pero a primera vista no percibi la precencia de dicho hac para emular el hover, es pequeno y efectivo:

Código :

mSobre= function() {
   var elems= document.getElementById("capa").getElementsByTagName("li");
   for (var i=0; i<elems.length; i++) {
      elems[i].onmouseover=function() {
         this.className+=" sobre";
      }
      elems[i].onmouseout=function() {
         this.className=this.className.replace(new RegExp(" sobre\\b"), "");
      }
   }
}
if (window.attachEvent) window.attachEvent("onload", mSobre);

entonces... se crea una clase .sobre con el efectoo que quieras dar en el hover digamos aqui le estoy dando hover a los <li> y el css es algo como esto:

Código :

#capa.sobre li:hover{
el estilo;
}

y creo que asi iba... visita la pagina de htmldog para mas info sobre como emular el hover.

ha u porsupueso es extensible a hijos:

Código :

 #capa.sobre a li:hover a{
el estilo;
}


Nota de BOFH: Recuerden usar las etiquetas code

Por EmiR

Claber

678 de clabLevel

2 tutoriales

Genero:Masculino   Héroes

firefox
Citar            
MensajeEscrito el 25 Oct 2006 02:38 pm
Ok, gracias, lo tende en cuenta para las listas tb, es que este IE.


Tb decir que gracias al IE (dentro de lo malo), nos rompemos las cabeza pero ojala no nos la rompamos muchas veces porque es un demonio, haber su actualizacion, IE7 seguro que seguira dando "problemillas".

Por Suriv

131 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Nov 2006 09:46 pm

EmiR escribió:



mSobre= function() {
var elems= document.getElementById("capa").getElementsByTagName("li");
for (var i=0; i<elems.length; i++) {
elems[i].onmouseover=function() {
this.className+=" sobre";
}
elems[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sobre\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", mSobre);

entonces... se crea una clase .sobre con el efectoo que quieras dar en el hover digamos aqui le estoy dando hover a los <li> y el css es algo como esto:

#capa.sobre li:hover{
el estilo;
}
y creo que asi iba... visita la pagina de htmldog para mas info sobre como emular el hover.

ha u porsupueso es extensible a hijos:

#capa.sobre a li:hover a{
el estilo;
}


He estado mirando la pagina de HtmlDog, para ver el ejemplo que comentastes, es genial. Pero me surge un problema. Primero la visualización del ejemplo HtmlDog

Ejemplo

He mirado su código fuente para ver como lo implemento en la hoja de estilo y me encontrado con esto, muestro el codigo fuente de la pagina, no entera sino la CSS y el javascript

Código :

<style type="text/css" media="all">

body {
   font: 100% arial, helvetica, sans-serif;
}

h1 {
   font-size: 1.5em;
   color: orange;
}

/*--------------hover stuff----------------*/
a {
   text-decoration: none;
}

p:hover, p.sfhover {
   color: #ccc;
}

p:hover a, p.sfhover a {
   color: blue;
   text-decoration: underline;
}

p a:hover {
   color: orange;
}

/*--------------focus stuff----------------*/
form {
   border: 2px solid #9c9;
   padding: 0.5em;
}

div {
   background: #eee;
   clear: left;
   padding: 0.5em;
   margin-bottom: 0.5em;
}

label {
   float: left;
   width: 5em;
}

input, textarea {
   width: 15em;
   border: 2px solid;
   border-color: #666 #ddd #ddd #666;
}

input:focus, textarea:focus, input.sffocus, textarea.sffocus {
   background: #cfc;
   border-color: #090;
}

/*--------------active stuff----------------*/
em {
   font-style: normal;
}

p:active a, p.sfactive a {
   color: #ccc;
   text-decoration: none;
}

p:active em, p.sfactive em {
   color: #090;
}

/*--------------target stuff----------------*/
h2 {
   color: #090;
   font-size: 1.25em;
}

h2:target, h2.sftarget {
   color: white;
   background: #090;
}


</style>

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

function suckerfish(type, tag, parentId) {
   if (window.attachEvent) {
      window.attachEvent("onload", function() {
         var sfEls = (parentId==null)?document.getElementsByTagName(tag):document.getElementById(parentId).getElementsByTagName(tag);
         type(sfEls);
      });
   }
}

sfHover = function(sfEls) {
   for (var i=0; i<sfEls.length; i++) {
      sfEls[i].onmouseover=function() {
         this.className+=" sfhover";
      }
      sfEls[i].onmouseout=function() {
         this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
      }
   }
}

sfFocus = function(sfEls) {
   for (var i=0; i<sfEls.length; i++) {
      sfEls[i].onfocus=function() {
         this.className+=" sffocus";
      }
      sfEls[i].onblur=function() {
         this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
      }
   }
}

sfActive = function(sfEls) {
   for (var i=0; i<sfEls.length; i++) {
      sfEls[i].onmousedown=function() {
         this.className+=" sfactive";
      }
      sfEls[i].onmouseup=function() {
         this.className=this.className.replace(new RegExp(" sfactive\\b"), "");
      }
   }
}

sfTarget = function(sfEls) {
   var aEls = document.getElementsByTagName("A");
   document.lastTarget = null;
   for (var i=0; i<sfEls.length; i++) {
      if (sfEls[i].id) {
         if (location.hash==("#" + sfEls[i].id)) {
            sfEls[i].className+=" sftarget";
            document.lastTarget=sfEls[i];
         }
         for (var j=0; j<aEls.length; j++) {
            if (aEls[j].hash==("#" + sfEls[i].id)) aEls[j].targetEl = sfEls[i];
            aEls[j].onclick = function() {
               if (document.lastTarget) document.lastTarget.className = document.lastTarget.className.replace(new RegExp(" sftarget\\b"), "");
               if (this.targetEl) this.targetEl.className+=" sftarget";
               document.lastTarget=this.targetEl;
               return true;
            }
         }
      }
   }
}

suckerfish(sfHover, "P");
suckerfish(sfActive, "P");
suckerfish(sfFocus, "INPUT");
suckerfish(sfFocus, "TEXTAREA");
suckerfish(sfTarget, "H2");


//--><!]]></script>



Claro pensaba que se implementaba en la propia hoja de estilo y el javascript comprueba el estado hover en la hoja de estilo, viendo el ejemplo me he dado cuenta que no.

A mi parecer esta bien y esta mal. La parte buena en mi valoración que solucionas el P... problema de IE, pero malo porque añades código y eso implica peso al xhtml

Pero se podría hacer para que el javascript este en un Lado y la hoja de estilo este en otro y funcione bien, seguro que es una pregunta con facil respuesta pero prefiero que me la deis (el que espero mas un No, que un SI).

Por Suriv

131 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.