JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo evitar que se pueda seleccionar contenido en una página web sin usar JavaScript (sólo con CSS)

Tradicionalmente, si por algún motivo queremos que los usuarios no sean capaces de seleccionar ciertas partes del contenido de nuestra página Web, hemos tenido que recurrir a JavaScript. Se marcaban los elementos a "proteger" de alguna manera (por ejemplo con una clase determinada) y tras la carga de la página un código los buscaba e interceptaba ciertos eventos para anularlos e impedir así que fueran seleccionables. La versión 4 de la especificación CSS incluye una nueva funcionalidad precisamente para esto. Todavía está en borrador pero ya hace tiempo que todos los navegadores del mercado lo soportan. Vamos a conocerla. [Más]

Cómo hacer hablar a tu navegador: la API de síntesis de voz

La síntesis de voz por parte de las computadoras siempre ha sido una de las cosas más llamativas que se podían hacer. En la era de los asistentes personales por voz como Siri, Alexa o Google Home, parece una cosa trivial y que casi hemos dado por sentada, pero no era así hace tan solo unos pocos años. Por suerte ahora están tan presentes que es posible incluso implementar síntesis de voz natural (muy realista) en cualquier navegador Web moderno usando unas pocas líneas de JavaScript y peleándonos un poco con algunos pequeños detalles. En este artículo te cuento cómo conseguirlo... [Más]

Carga diferida de imágenes en el navegador (lazy loading) de manera nativa

El tamaño y la cantidad de los recursos asociados a las páginas influye mucho sobre diversos factores de nuestro sitio web. Desde la velocidad de carga de la página, hasta el ancho de banda consumido. Por eso, muchos sitios web, especialmente los que hacen uso intensivo de imágenes, implementan técnicas para que sólo se cargue lo estrictamente necesario en cada momento. A estas técnicas se les suele denominar de "lazy loading" y hasta ahora había que usar JavaScript para conseguirlo. Por suerte ahora existe un atributo HTML que nos permite conseguir el mismo efecto sin programar. Vamos a verlo... [Más]

line-height sin unidades en CSS: ¿para qué se utiliza?

La propiedad CSS llamada line-height, tiene un "truco" importante que afecta a los elementos que heredan el valor de esta propiedad y que, si no lo conoces, puede hacer que obtengas resultados inesperados o que tengas que estar ajustando a mano individualmente la altura de las líneas y retocándolo en varios sitios cada vez que cambies este valor. Te cuento por qué pasa esto y cómo puedes sacarle partido. [Más]

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2

Una necesidad común en casi cualquier aplicación Web es la de mostrar diálogos al usuario. Se trata de los típicos "pop-ups" que surgen en la aplicación de vez en cuando con múltiples propósitos: notificaciones, preguntar algo al usuario, mostrar los detalles de un registro en una base de datos... Casi cualquier cosa que se te pueda ocurrir. Crear algo como esto mediante el uso de capas y un poco de JavaScript no es muy complicado, pero tiene bastantes "pegas". Por eso el W3C, encargado de los estándares Web, definió en HTML 5.2 un nuevo elemento específicamente pensado para esta tarea: <dialog> y que tiene muchas aplicaciones. Vamos a ver cómo sacarle todo el partido. [Más]

¿Cómo utilizar las fuentes de Google desde tu propio servidor en vez de desde Google?

Google Fonts es un recurso maravilloso y gratuito para acceder a decenas o centenares de fuentes tipográficas de manera rápida y con rendimiento, ya que además se sirven desde la CDN de Google. Sin embargo algunas personas prefieren servir las fuentes desde su propio servidor, sin depender de los servidores de Google. Aunque yo te recomiendo encarecidamente que uses las fuentes desde los servidores de Google y no desde el tuyo propio, dado que me lo han preguntado, voy a explicar cómo conseguir "gorronear" esas fuentes y utilizarlas desde tu propio servidor o en local. [Más]

Diferencias entre RGB y HSL: ¿cuál es mejor para manejar colores CSS para la Web?

En CSS se expresan los colores de diversas maneras, pero las más comunes son dos: RGB y HSL. Tradicionalmente todos hemos aprendido a manejar colores basándonos en un principio muy simple sacado de la naturaleza: la combinación de colores. En el colegio aprendimos que todo color se puede expresar como la combinación de otros tres colores básicos: el rojo, el verde y el azul. En esto es en lo que se basa la notación RGB. Sin embargo esta notación presenta varios problemas, entre ellos que no es nada intuitiva. La notación HSL, por el contrario, es mucho más fácil de visualizar y utilizar en el día a día. En este post te explico en qué consiste cada una de ellas y cómo sacarles partido. [Más]

jQuery.pan: Un plugin para jQuery, gratuito y Open Source, para hacer zoom y pan de imágenes

Hace unos días os hablaba de un plugin sencillo para jQuery que había creado que permite añadir un tooltip basado en CSS a las imágenes y otros objetos, que va siguiendo el puntero del ratón para facilitar dar información sobre éstos. Otro añadido que hice al blog al mismo tiempo fue un sistema para realizar zooms a las imágenes y que puedes comprobar en cualquiera de los artículos que tengan alguna imagen un poco más grande del espacio disponible. Esta funcionalidad se la otorga un plugin de jQuery llamado jQuery.pan. Os lo presento a continuación. [Más]

YACSSTooltip: un plugin gratuito y Open Source para crear tooltips de imágenes con jQuery

Si eres seguidor habitual de este blog, habrás notado que desde hace unos días las imágenes muestran la información de una manera más clara, en concreto utilizando un "tooltip" o capa de información que persigue al cursor y que muestra el texto asociada a la misma de una forma visible. Este tooltip es una capa especial creada con JavaScript y CSS y para que funcione así he creado un plugin gratuito y open source para jQuery que funciona con cualquiera de sus versiones y que permite generar ese tooltip para cualquier elemento que disponga de un atributo title o alt, pero que está pensado fundamentalmente para imágenes. En este post te cuento sus características, cómo ponerlo a andar y cómo personalizarlo. [Más]

CSS: cómo cambiar los estilos de un conjunto de elementos cuando haya más de un número determinado de ellos

Imagina que en una aplicación web tienes un listado de fichas de producto en el que cada elemento es una pequeña estructura HTML para mostrar toda la info de cada uno de los productos del listado: foto, nombre, descripción, tamaños, colores, precio... Además, ese conjunto de elementos de información se generan desde una aplicación en el lado servidor, en función de alguna búsqueda o filtro de la base de datos, de modo que *no puedes saber de antemano* desde tu HTML cuántos elementos hay en la lista. Dependiendo de cuántos haya, quieres cambiar el diseño del listado de resultados. Por ejemplo, si hay muy pocos (3 o menos) quieres que se vean más grandes y resaltándolos todo lo que puedas. Sin embargo si hay más 4 o más la ficha de cada producto en el listado será menos llamativa. En este post vamos a ver como conseguir esto *tan solo usando CSS* sin necesidad de programación ni en cliente ni en servidor. Tiene más miga de lo que parece. [Más]