11 técnicas clásicas CSS hechas más simples con CSS3
El uso de CSS se está empezando a remplazar por CSS3 que básicamente simplificará nuestro trabajo para realizar algunos efectos como bordes, animaciones y muchas otras cosas más, en el siguiente tutorial les voy a enseñar 11 técnicas CSS3 que puedes usar en vez de usar las tradicionales que por compatibilidad o por el uso de frameworks no es tan viable de usar.
#1 Bordes
Los bordes son un problema para muchos ya que por ejemplo, Firefox y Safari soportan la propiedad pero IE no, aqui vamos a ver el ejemplo con CSS2 con javascript vs CSS3 y nada más.
Forma clásica
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript" src="js/jquery.corners.js"></script>
- <script type="text/javascript">
- $(function(){
- $('.box').corners('10px');
- });
- </script>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3
- <style type="text/css">
- .box {
- border-radius: 10px;
- -moz-border-radius: 10px;
- -webkit-border-radius: 10px;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver un ejemplo en acción viendo que en la forma clásica no sólo se necesita de más códigos, sino de varios scripts a comparación de las hojas de estilo de CSS3
#2 Sombra exterior
Otro problema que en la actualidad se presenta es la forma de hacer sombras, como dije, el primero usando jQuery, el segundo CSS3
Forma clásica
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript" src="js/jquery.dropShadow.js"></script>
- <script type="text/javascript">
- $(function(){
- $('.box').dropShadow({
- left: 5,
- top: 5,
- opacity: 1.0,
- color: 'black'
- });
- });
- </script>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3
- <style type="text/css">
- .box {
- box-shadow: 5px 5px 2px black;
- -moz-box-shadow: 5px 5px 2px black;
- -webkit-box-shadow: 5px 5px 2px black;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción viendo que sin necesidad de saber mucho podemos ver que CSS3 ofrece más limpieza y simplificación que jQuery
#3 Sombra de texto
Forma clásica
- <style type="text/css">
- .font {
- font-size: 20px;
- color: #2178d9;
- }
- .fonts {
- position: relative;
- }
- .fonts .font {
- position: absolute;
- z-index: 200;
- }
- .fonts .second {
- top: 1px;
- color: #000;
- z-index: 100;
- }
- </style>
- <div class="fonts">
- <span class="font">The quick brown fox jumps over the lazy dog.</span>
- <span class="font second">The quick brown fox jumps over the lazy dog.</span>
- </div>
Forma CSS3:
- <style type="text/css">
- .font {
- font-size: 20px;
- color: #2178d9;
- }
- .font {
- text-shadow: 0 1px 0 #000;
- }
- </style>
- <span class="font">The quick brown fox jumps over the lazy dog.</span>
Aquí puedes ver el ejemplo en acción
#4 Texto fancy
Forma clásica
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript" src="js/cufon.js"></script>
- <script type="text/javascript" src="js/loyal.js"></script>
- <script type="text/javascript">
- $(function(){
- Cufon.replace('.classic .font');
- });
- </script>
- <style type="text/css">
- .font {
- font-size: 20px;
- }
- </style>
- <span class="font">The quick brown fox jumps over the lazy dog.</span>
Forma CSS3
- <style type="text/css">
- @font-face {
- font-family: 'Loyal';
- src: url('loyal.ttf');
- }
- .font {
- font-family: Loyal;
- font-size: 20px;
- }
- </style>
- <span class="font">The quick brown fox jumps over the lazy dog.</span>
Aquí puedes ver el ejemplo en acción
#5 Opacidad
El primer ejemplo muestra en distintos modos de navegadores el efecto de opacity, en CSS3 el estándar es simplemente opacity para cualquier navegador.
Forma clásica:
- <style type="text/css">
- .box {
- opacity: .6; // all modern browsers (this is CSS3)
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; // IE 8
- filter: alpha(opacity=60); // IE 5-7
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- opacity: .6;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
#6 RGBA
Un método que hace que la imagen tenga un tono distinto o se cambie de color algún objeto, el primero usa PHP y CSS, el segundo la propiedad RGBA
Forma clásica
- <?php
- $image = imagecreatetruecolor(1, 1);
- $r = (int)$_GET['r'];
- $g = (int)$_GET['g'];
- $b = (int)$_GET['b'];
- $a = (float)$_GET['a'];
- $white = imagecolorallocate($image, 255, 255, 255);
- $color = imagecolorallocatealpha($image, $r, $g, $b, 127*(1-$a));
- imagefill($image, 0, 0, $white);
- imagefilledrectangle($image, 0, 0, 1, 1, $color);
- header('Content-type: image/png');
- imagepng($image);
- ?>
- <style type="text/css">
- .box {
- background: url(rgba.php?r=239&g=182&b=29&a=.25);
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- background: rgba(239, 182, 29, .25);
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
#7 Tamaño de fondos
El primer ejemplo muestra la forma de darle tamaño a un fondo de imagen usando varios estilos y propiedades, el segundo usa la propiedad size para lograr el efecto.
Forma clásica:
- <style type="text/css">
- .box {
- position: relative;
- overflow: hidden;
- }
- .box img {
- position: absolute;
- top: 0;
- left: 0;
- width: 50%;
- height: 50%;
- z-index: 100;
- }
- .box .content {
- position: absolute;
- z-index: 200;
- }
- </style>
- <div class="box">
- <div class="content">
- <!--CONTENT-->
- </div>
- <img src="http://nettuts.s3.cdn.plus.org/423_screenr/200x200.jpg" alt="" />
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- background: #ccc url(http://nettuts.s3.cdn.plus.org/423_screenr/200x200.jpg) no-repeat;
- -webkit-background-size: 50%; /* Safari */
- -o-background-size: 50%; /* Opera */
- -khtml-background-size: 50%; /* Konqueror */
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
#8 Múltiples fondos
El objetivo en el primer ejemplo es crear dos capas con estilos distintos que contienen fondos de imágenes, el segundo une las dos imágenes en un estilo y una capa
Forma clásica:
- <style type="text/css">
- .box {
- width: 200px;
- height: 150px;
- background: url(images/bg.png) repeat-x;
- }
- .box2 {
- width: 100%;
- height: 100%;
- background: url(images/text.png) center center no-repeat;
- }
- </style>
- <div class="box">
- <div class="box2">
- <!--CONTENT-->
- </div>
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- width: 200px;
- height: 150px;
- background: url(images/text.png) center center no-repeat, url(images/bg.png) repeat-x;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
#9 Columnas
En el primer ejemplos se usa jQuery para poder crear dos columnas separando el texto para formarlo, en el segundo se define una propiedad column para poder especificar el número de columnas.
Forma clásica:
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript" src="js/jquery.columnize.js"></script>
- <script type="text/javascript">
- $(function(){
- $('.columns').columnize({
- columns: 2
- });
- });
- </script>
- <style type="text/css">
- .column {
- padding-right: 10px;
- }
- .column.last {
- padding: 0;
- }
- </style>
- <div class="columns">
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla elementum accumsan mi. Maecenas id dui a magna tempor pretium. Quisque id enim. Proin id tortor. Curabitur sit amet enim vitae quam pharetra imperdiet. Nulla diam ante, pellentesque eu, vestibulum non, adipiscing nec, eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis a nunc. Donec non dui a velit pulvinar gravida. Nunc rutrum libero vel tortor. Duis sed mi eu metus tincidunt ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In purus lorem, aliquam ac, congue ac, vestibulum quis, felis. Aliquam non sapien.</p>
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla elementum accumsan mi. Maecenas id dui a magna tempor pretium. Quisque id enim. Proin id tortor. Curabitur sit amet enim vitae quam pharetra imperdiet. Nulla diam ante, pellentesque eu, vestibulum non, adipiscing nec, eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis a nunc. Donec non dui a velit pulvinar gravida. Nunc rutrum libero vel tortor. Duis sed mi eu metus tincidunt ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In purus lorem, aliquam ac, congue ac, vestibulum quis, felis. Aliquam non sapien.</p>
- </div>
Forma CSS3:
- <style type="text/css">
- .columns {
- -moz-column-count: 2;
- -webkit-column-count: 2;
- }
- </style>
- <div class="columns">
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla elementum accumsan mi. Maecenas id dui a magna tempor pretium. Quisque id enim. Proin id tortor. Curabitur sit amet enim vitae quam pharetra imperdiet. Nulla diam ante, pellentesque eu, vestibulum non, adipiscing nec, eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis a nunc. Donec non dui a velit pulvinar gravida. Nunc rutrum libero vel tortor. Duis sed mi eu metus tincidunt ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In purus lorem, aliquam ac, congue ac, vestibulum quis, felis. Aliquam non sapien.</p>
- <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla elementum accumsan mi. Maecenas id dui a magna tempor pretium. Quisque id enim. Proin id tortor. Curabitur sit amet enim vitae quam pharetra imperdiet. Nulla diam ante, pellentesque eu, vestibulum non, adipiscing nec, eros. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis a nunc. Donec non dui a velit pulvinar gravida. Nunc rutrum libero vel tortor. Duis sed mi eu metus tincidunt ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In purus lorem, aliquam ac, congue ac, vestibulum quis, felis. Aliquam non sapien.</p>
- </div>
Aquí puedes ver el ejemplo en acción
#10 Borde de imágenes
Crear un borde con imágenes haciendolo con librerías y funciones en el primer ejemplo, en el segundo se define el estilo para cada navegador con la url de la imagen simulando el mismo resultado
Forma clásica:
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript" src="js/jquery.borderImage.js"></script>
- <script type="text/javascript">
- $(function(){
- $('.classic .box').borderImage('url(images/border.png) 27 27 27 27 round round');
- });
- </script>
- <style type="text/css">
- .box {
- border-width: 20px;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- border-width: 20px;
- -webkit-border-image: url(images/border.png) 27 round;
- -moz-border-image: url(images/border.png) 27 round;
- border-image: url(images/border.png) 27 round;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
#11 Animaciones
Se pretende usar jQuery en el primer ejemplo donde puedes manejar animaciones, en el segundo ejemplo se pretende hacer lo mismo con CSS usando estilos que hacen el barrido sin necesidad de script
Forma clásica:
- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
- <script type="text/javascript">
- $(function(){
- $('.box').hover(function(){
- $(this).stop().animate({
- top: '20px'
- }, 300);
- }, function(){
- $(this).stop().animate({
- top: '0'
- }, 300);
- });
- });
- </script>
- <style type="text/css">
- .box {
- position: relative;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Forma CSS3:
- <style type="text/css">
- .box {
- position: relative;
- -webkit-transition: top 300ms linear;
- }
- .box:hover {
- top: 20px;
- }
- </style>
- <div class="box">
- <!--CONTENT-->
- </div>
Aquí puedes ver el ejemplo en acción
Vía Tutplus
