PDA

Ver la Versión Completa : Target en CSS


david.rguez
15-02-2007, 21:20:11
Hola a todos/as:

¿Habría alguna forma de forzar que un enlace se abra en una ventana nueva desde una hoja de estilos en cascada? El HTML 4.01 Strict no permite el atributo target en los enlaces y mi tutor me ha comentado que preferiblemente utilice ese el lugar del Transitional.

dape
16-02-2007, 05:09:55
creo que con CSS Strict no se puede, en su lugar puedes hacer uso de un script Java, claro que no es lo mismo pero te resuelve el problema.

Saludos desde Tacna - Perú

David.

david.rguez
16-02-2007, 06:15:44
Hola, tocayo XDDDDD

Gracias por la respuesta, pero si mi tutor ve que uso Javascript, me fusila (palabras textuales suyas :D). Nada, al final desistiré en mi pretensión de que se abra en una nueva ventana... que sea el usuario el que le dé al botón derecho del ratón (que trabajen un poco, que no les hará daño :D).

Mirándolo del lado bueno, si me preguntan en la defensa del PFC (hay profesores que se aburren tanto que buscan las preguntas más insospechadas) siempre puedo alegar que así le doy al usuario libertad de elección sobre el destino del enlace (y quedo como todo un señor XD).

Gracias de todos modos.

dec
16-02-2007, 20:11:21
Hola,

Puedo estar muy confundido, puesto que no sé mucho de estos temas, pero, creo que para abrir una ventana nueva puede optarse por el atributo "target" (obsoleto) y/o por JavaScript. Y no hay más. O sea, no pueden pedirte imposibles. Ahora bien, se puede hacer en JavaScript y se puede hacer en JavaScript. ¿Cómo? Veamos.

Yo no soy ningún experto (ya lo he dicho), pero, lo que deberías procurar es que el usuario, cliente, navegador, aún sin contar con JavaScript o teniendo este desactivado, obtenga una respuesta apropiada. Creo que a esto se le llama "JavaScript no intrusivo" o "que degrada bien".

Fijo que puede mejorarse, pero, esto es algo parecido a lo que entiendo que puede y debe hacerse:


<a href="http://www.google.es"
onclick="window.open('http://www.google.es'); return false;">Google.es</a>


Ya sabéis que aunque el código esté entre etiquetas PHP esto se hace para que se "lea" mejor. El código anterior es HTML y JavaScript. Pues bien. Si se pulsa en el enlace anterior en un navegador que no soporte JavaScript la página Web en cuestión se cargará en la misma ventana (o en otra, si el usuario ellige el menú contextual, etc.).

Sin embargo, en un navegador que soporte JavaScript la página Web de Google (en este caso) se abrirá en una nueva ventana, tal como queríamos. Vemos, pues, que en cualquier caso el enlace abre la página Web que se pretende, lo que no sucedería si hiciéramos algo como esto, que no me invento:


<a href="#"
onclick="window.open('http://www.google.es'); return false;">Google.es</a>


En este caso estamos dejando "todo" el asunto en manos de JavaScript y, si el navegador no lo soporta o no lo tiene habilitado... simplemente la página de Google no se abrirá.

En todo caso creo que hay que pensarse mucho el abrir nuevas ventanas sin más. No es lo que espera el usuario. Y tiene cierta lógica. Si suponemos que tengo agrandado el tamaño de la fuente de una determinada página Web y pulso sobre un enlace de la misma y se me abre una nueva ventana (o pestaña) voy a tener que configurar de nuevo el tamaño de la fuente.

Es decir, y termino porque no quiero hacerme pesado. En mi opinión no deberían abrirse nuevas ventanas si no es absolutamente necesario para el funcionamiento de la aplicación. Y si pueden evitarse caso mejor hacerlo, por no tener problemas con "bloqueadores de popup" acaso demasiado picajosos.

Bueno. Y basta ya de charla... je, je, je. Pero, dile a quien te manda que los milagros en Lourdes. :D

david.rguez
16-02-2007, 20:26:27
Gracias por la clase XDDD pero creo que a estas alturas no voy a andar cambiándolo, pues me queda poco tiempo para entregar el proyecto.

En principio iba a ser para abrir el manual de ayuda online de la aplicación, que es independiente del resto de páginas.

Pero vamos, que el usuario trabaje un poquito, que no creo que se nos muera por eso.