Efecto de (i)Frame con CSS
Para lograr el efecto de iframe con CSS existe la propiedad “overflow”. Esta propiedad define como se comportara el contenido en un contenedor limitado en su altura y ancho. Es decir, Si el texto es mas grande que el espacio que lo contiene, esta propiedad define, el texto se mostrara de acuerdo a como se defina esta propiedad.
Overflow puede tomar 5 posibles valores:
- inherit: El contenedor heredara la propiedad del contenedor padre.
<div style='height:90px; width:300px; overflow:inherit'> - auto: Si el texto es mayor al contenedor, se muestran barras de scroll, de lo contrario no se muestran.
<div style='height:90px; width:300px; overflow:auto'>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla mauris. Duis posuere nisl vestibulum metus. Nullam pede ligula, fermentum sit amet, viverra a, porttitor non, nunc. Duis lacinia. Sed molestie posuere nisl. Aliquam vitae neque. Donec justo arcu, nonummy et, dignissim non, fermentum eu, diam. Nulla facilisi. Fusce elementum, neque eget varius faucibus, orci sapien ultrices odio, et commodo metus diam id elit. Maecenas tempus condimentum dolor. - hidden: El contenido fuera del contenedor no se mostrara ni tampoco las barras de scroll
<div style='height:90px; width:300px; overflow:hidden'> - scroll: Las barras de scroll se mostraran no importa si el texto es mas grande que el contenedor o no.
<div style='height:90px; width:300px; overflow:scroll'>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla mauris. Duis posuere nisl vestibulum metus. Nullam pede ligula, fermentum sit amet, viverra a, porttitor non, nunc. Duis lacinia. Sed molestie posuere nisl. Aliquam vitae neque. Donec justo arcu, nonummy et, dignissim non, fermentum eu, diam. Nulla facilisi. Fusce elementum, neque eget varius faucibus, orci sapien ultrices odio, et commodo metus diam id elit. Maecenas tempus condimentum dolor. - visible: El contenido se mostrara fuera del contenedor, como si estuviera flotando. No se muestran barras de scroll
<div style='height:90px; width:300px; overflow:visible'>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla mauris. Duis posuere nisl vestibulum metus. Nullam pede ligula, fermentum sit amet, viverra a, porttitor non, nunc. Duis lacinia. Sed molestie posuere nisl. Aliquam vitae neque. Donec justo arcu, nonummy et, dignissim non, fermentum eu, diam. Nulla facilisi. Fusce elementum, neque eget varius faucibus, orci sapien ultrices odio, et commodo metus diam id elit. Maecenas tempus condimentum dolor.
Los 100 Sitios mas visitados por los Mexicanos (en Agosto de 2006)
Tras una peque�a investigacion y gracias a los datos proporcionados por Alexa, este es el listado de los 100 sitios mas visitados por internautas mexicanos en 2006. Para mi gusto hay un par de sorpresas, no se que diran ustedes.
|
Lugar
|
Sitio
|
|---|---|
|
1
|
msn.com
|
|
2
|
google.com.mx
|
|
3
|
yahoo.com
|
|
4
|
live.com
|
|
5
|
youtube.com
|
|
6
|
google.com
|
|
7
|
mercadolibre.com.mx
|
|
8
|
megaupload.com
|
|
9
|
myspace.com
|
|
10
|
passport.net
|
|
11
|
sexyono.com
|
|
12
|
fotolog.net
|
|
13
|
microsoft.com
|
|
14
|
hi5.com
|
|
15
|
rapidshare.de
|
|
16
|
eluniversal.com.mx
|
|
17
|
esmas.com
|
|
18
|
wikipedia.org
|
|
19
|
blogger.com
|
|
20
|
unam.mx
|
|
21
|
miarroba.com
|
|
22
|
univision.com
|
|
23
|
geocities.com
|
|
24
|
occ.com.mx
|
|
25
|
ebay.com
|
|
56
|
go.com
|
|
27
|
itesm.mx
|
|
28
|
imageshack.us
|
|
29
|
ringo.com
|
|
30
|
terra.com.mx
|
|
31
|
google.es
|
|
32
|
amazon.com
|
|
33
|
mcanime.net
|
|
34
|
tvazteca.com
|
|
35
|
photobucket.com
|
|
36
|
adultfriendfinder.com
|
|
37
|
telmex.com
|
|
38
|
altavista.com
|
|
39
|
forosdz.com
|
|
40
|
reforma.com
|
|
41
|
bancomer.com.mx
|
|
42
|
theplanet.com
|
|
43
|
minijuegos.com
|
|
44
|
msn.es
|
|
45
|
imagevenue.com
|
|
46
|
elnorte.com
|
|
47
|
errorsafe.com
|
|
48
|
imdb.com
|
|
49
|
latinchat.com
|
|
50
|
disneylatino.com
|
|
51
|
mywebsearch.com
|
|
52
|
invisionfree.com
|
|
53
|
neopets.com
|
|
54
|
tripod.com
|
|
55
|
fanfiction.net
|
|
56
|
gusanito.com
|
|
57
|
mediotiempo.com
|
|
58
|
cartoonnetwork.com.mx
|
|
59
|
deviantart.com
|
|
60
|
sendspace.com
|
|
61
|
frozen-layer.net
|
|
62
|
computrabajo.com.mx
|
|
63
|
musica.com
|
|
64
|
telcel.com
|
|
65
|
sat.gob.mx
|
|
66
|
oem.com.mx
|
|
67
|
amigos.com
|
|
68
|
ba-k.com
|
|
69
|
apple.com
|
|
70
|
imss.gob.mx
|
|
71
|
mgcluster.net
|
|
72
|
lycos.es
|
|
73
|
petardas.com
|
|
74
|
free.fr
|
|
75
|
segundamano.com.mx
|
|
76
|
cinepolis.com.mx
|
|
77
|
livejournal.com
|
|
78
|
anonym.to
|
|
79
|
flickr.com
|
|
80
|
udg.mx
|
|
81
|
bbvanet.com.mx
|
|
82
|
monografias.com
|
|
83
|
hsbc.com.mx
|
|
84
|
aol.com
|
|
85
|
planetadeletras.com
|
|
86
|
download.com
|
|
87
|
dell.com
|
|
88
|
ipn.mx
|
|
89
|
cumplealerta.com
|
|
90
|
deremate.com.mx
|
|
91
|
ign.com
|
|
92
|
softonic.com
|
|
93
|
iespana.es
|
|
94
|
ticketmaster.com.mx
|
|
95
|
milenio.com
|
|
96
|
cronica.com.mx
|
|
97
|
banamex.com
|
|
98
|
t1msn.com.mx
|
|
99
|
todito.com
|
|
100
|
ideastelcel.com
|
Validacion de formas no obtrusiva
Una de las cosas mas tediosas en el desarrollo web son las validaciones de formas en javascript. Son odiosas, aburridas y repetitivas.
Para hacer ese trabajo un poco mas sencillo me di a la tarea de crear una clase usando la libreria prototype.
Caracteristicas
- Facil de usar
- Funciona en multiples navegadores (por ahora funciona en explorer y firefox, pero debe funcionar en mas)
- Basada en expresiones regulares
- Extendible
Forma de uso
- Agregar las siguientes lineas en la cabecera de la pagina
<script type="text/javascript" xsrc="prototype.js" mce_src="prototype.js" > </script>
<script type="text/javascript" xsrc="validation.js" mce_src="validation.js" > </script>
<script type="text/javascript">
Event.observe(window,"load",function (){ new Validation('forma'); } ,true);
</script>
Sustituyendo las rutas para los archivos javascript en donde sea necesario. - Agregar el atributo id a la forma igual al parametro que se le pasa al constructor de validacion (en este caso, ‘forma’)
<form id='forma' action="" method="Post"> - Agregar class y alt para los campos que se quieran validar. Class definira la regla de validacion que se usara y alt el mensaje que se le presentara al usuario. Si no se incluye el atributo class, el elemento no se validar� y si no se incluye el atributo alt se presentar� un mensaje por default para esa regla (P. ej. “El campo x es requerido”)
<input type='text' class='required' alt='Este campo es obligatorio' value=" " />
Y listo, eso es todo
Reglas de validacion incluidas
- required: El campo tiene que tener al menos un caracter
- digits: Permite solo numeros
- nonzero: Permite solo numeros diferentes de cero
- chars: Permite solamente caracteres entre a y z
- alpha: Es una combinacion entre digits y chars
- email: Permite emails validos (Si si, lo se, la validacion no es perfecta, conozco el regexp)
- date: Permite solo fechas en el formato “YYYY-MM-DD”
- empty: Si se pone como clase de un campo, este solo sera validado si se encuentra lleno, de lo contrario no se validara. Puede usarse en conjuncion de otra regla para hacer un campo opcional (ver ejemplos)
- dupe: Esta regla es un poco especial. Requiere que ademas se llene la propiedad title. Despues buscar� el campo cuyo ID sea igual al title. Comparara ambos campos y si son diferentes mandara error. Util por ejemplo para validar campos contrase�a.
Agregar nueva reglas
Para agregar nuevas reglas de validacion, basta con modificar el archivo validation.js, en la funcion initRules, agregando una nueva linea por cada regla. El formato de las reglas es:
a.push( new Rule(”NOMBRE”, REGEXP , “texto de alerta)” ) );
- NOMBRE es el nombre de la regla
- REGEXP es una expresion regular contra la que se validara el campo
- Texto de alerta es el texto por default para esa regla. Para insertar el nombre del campo se puede escribir XXXX y esto sera sustituido por el nombre del campo, por ejemplo: “El campo XXXX debe tener 5 caracteres de longitud”
Ejemplos:
Haz click aqui (abre en ventana nueva)
Bajar codigo fuente y ejemplo
Se aceptan sugerencias y comentarios

o deja comentario en alguna de las entradas del blog.