miércoles, 22 de abril de 2020

CSS Colors

Colores CSS
CSS Colors
Color nameHEXRGBCOLOR
aliceblue#F0F8FFrgb(240,248,255)
antiquewhite#FAEBD7rgb(250,235,215)
aqua#00FFFFrgb(0,255,255)
aquamarine#7FFFD4rgb(127,255,212)
azure#F0FFFFrgb(240,255,255)
beige#F5F5DCrgb(245,245,220)
bisque#FFE4C4rgb(255,228,196)
blanchedalmond#FFEBCDrgb(255,235,205)
blue#0000FFrgb(0,0,255)
blueviolet#8A2BE2rgb(138,43,226)
black#000000rgb(0.0.0)
brown#A52A2Argb(165,42,42)
burlywood#DEB887rgb(222,184,135)
cadetblue#5F9EA0rgb(95,158,160)
chartreuse#7FFF00rgb(127,255,0)
chocolate#D2691Ergb(210,105,30)
coral#FF7F50rgb(255,127,80)
cornflowerblue#6495EDrgb(100,149,237)
cornsilk#FFF8DCrgb(255,248,220)
crimson#DC143Crgb(220,20,60)
cyan#00FFFFrgb(0,255,255)
darkblue#00008Brgb(0,0,139)
darkcyan#008B8Brgb(0,139,139)
darkgoldenrod#B8860Brgb(184,134,11)
darkgrey#A9A9A9rgb(169,169,169)
darkgreen#006400rgb(0,100,0)
darkkhaki#BDB76Brgb(189,183,107)
darkmagenta#8B008Brgb(139,0,139)
darkolivegreen#556B2Frgb(85,107,47)
darkorange#FF8C00rgb(255,140,0)
darkorchid#9932CCrgb(153,50,204)
darkred#8B0000rgb(139,0,0)
darksalmon#E9967Argb(233,150,122)
darkseagreen#8FBC8Frgb(143,188,143)
darkslateblue#483D8Brgb(72,61,139)
darkslategrey#2F4F4Frgb(47,79,79)
darkturquoise#00CED1rgb(0,206,209)
darkviolet#9400D3rgb(148,0,211)
deeppink#FF1493rgb(255,20,147)
deepskyblue#00BFFFrgb(0,191,255)
dimgrey#696969rgb(105,105,105)
dodgerblue#1E90FFrgb(30,144,255)
firebrick#B22222rgb(178,34,34)
floralwhite#FFFAF0rgb(255,250,240)
forestgreen#228B22rgb(34,139,34)
fuchsia#FF00FFrgb(255,0,255)
gainsboro#DCDCDCrgb(220,220,220)
ghostwhite#F8F8FFrgb(248,248,255)
gold#FFD700rgb(255,215,0)
goldenrod#DAA520rgb(218,165,32)
grey#808080rgb(128,128,128)
honeydew#F0FFF0rgb(240,255,240)
hotpink#FF69B4rgb(255,105,180)
indianred#CD5C5Crgb(205,92,92)
indigo#4B0082rgb(75,0,130)
ivory#FFFFF0rgb(255,255,240)
khaki#F0E68Crgb(240,230,140)
lavender#E6E6FArgb(230,230,250)
lavenderblush#FFF0F5rgb(255,240,245)
lawngreen#7CFC00rgb(124,252,0)
lemonchiffon#FFFACDrgb(255,250,205)
lightblue#ADD8E6rgb(173,216,230)
lightcoral#F08080rgb(240,128,128)
lightcyan#E0FFFFrgb(224,255,255)
lightgoldenrodyellow#FAFAD2rgb(250,250,210)
lightgrey#D3D3D3rgb(211,211,211)
lightgreen#90EE90rgb(144,238,144)
lightpink#FFB6C1rgb(255,182,193)
lightsalmon#FFA07Argb(255,160,122)
lightseagreen#20B2AArgb(32,178,170)
lightskyblue#87CEFArgb(135,206,250)
lightslategrey#778899rgb(119,136,153)
lightsteelblue#B0C4DErgb(176,196,222)
lightyellow#FFFFE0rgb(255,255,224)
lime#00FF00rgb(0,255,0)
limegreen#32CD32rgb(50,205,50)
linen#FAF0E6rgb(250,240,230)
magenta#FF00FFrgb(255,0,255)
maroon#800000rgb(128,0,0)
mediumaquamarine#66CDAArgb(102,205,170)
mediumblue#0000CDrgb(0,0,205)
mediumorchid#BA55D3rgb(186,85,211)
mediumpurple#9370DBrgb(147,112,219)
mediumseagreen#3CB371rgb(60,179,113)
mediumslateblue#7B68EErgb(123,104,238)
mediumspringgreen#00FA9Argb(0,250,154)
mediumturquoise#48D1CCrgb(72,209,204)
mediumvioletred#C71585rgb(199,21,133)
midnightblue#191970rgb(25,25,112)
mintcream#F5FFFArgb(245,255,250)
mistyrose#FFE4E1rgb(255,228,225)
moccasin#FFE4B5rgb(255,228,181)
navajowhite#FFDEADrgb(255,222,173)
navy#000080rgb(0,0,128)
oldlace#FDF5E6rgb(253,245,230)
olive#808000rgb(128,128,0)
olivedrad#6B8E23rgb(107,142,35)
orange#FFA500rgb(255,165,0)
orangered#FF4500rgb(255,69,0)
orchid#DA70D6rgb(218,112,214)
palegoldenrod#EEE8AArgb(238,232,170)
palegreen#98FB98rgb(152,251,152)
paleturquoise#AFEEEErgb(175,238,238)
palevioletred#DB7093rgb(219,112,147)
papayawhip#FFEFD5rgb(255,239,213)
peachpuff#FFDAB9rgb(255,218,185)
peru#CD853Frgb(205,133,63)
pink#FFC0CBrgb(255,192,203)
plum#DDA0DDrgb(221,160,221)
powderblue#B0E0E6rgb(176,224,230)
purple#800080rgb(128,0,128)
red#FF0000rgb(255,0,0)
rosybrown#BC8F8Frgb(188,143,143)
royalblue#4169E1rgb(65,105,225)
saddlebrown#8B4513rgb(139,69,19)
salmon#FA8072rgb(250,128,114)
sandybrown#F4A460rgb(244,164,96)
seagreen#2E8B57rgb(46,139,87)
seashell#FFF5EErgb(255,245,238)
sienna#A0522Drgb(160,82,45)
silver#C0C0C0rgb(192,192,192)
skyblue#87CEEBrgb(135,206,235)
slateblue#6A5ACDrgb(106,90,205)
slategrey#708090rgb(112,128,144)
snow#FFFAFArgb(255,250,250)
springgreen#00FF7Frgb(0,255,127)
steelblue#4682B4rgb(70,130,180)
tan#D2B48Crgb(210,180,140)
teal#008080rgb(0,128,128)
thistle#D8BFD8rgb(216,191,216)
tomato#FF6347rgb(255,99,71)
turquoise#40E0D0rgb(64,224,208)
violet#EE82EErgb(238,130,238)
wheat#F5DEB3rgb(245,222,179)
white#FFFFFFrgb(255,255,255)
whitesmoke#F5F5F5rgb(245,245,245)
yellow#FFFF00rgb(255,255,0)
yellowgreen#9ACD32rgb(154,205,50)

miércoles, 15 de abril de 2020

hojas de estilo CSS. Que significa en cascada

Cascada en CSS

Concepto de cascada en hojas de estilo CSS

El concepto de cascada se refiere al proceso o algoritmo que establece el procesador CSS para determinar el valor de una propiedad cuando existe un conflicto de declaraciones CSS para un elemento dado.

Por ejemplo:
body { color: white; }
body { color: black; }

El texto del documento debe ser de color blanco o negro?
Cuál de las declaraciones tiene más peso o importáncia?Qué valor será finalmente asignado a la propiedad de color de texto?

Aunque resolver este dilema parece sencillo y trivial teniendo en cuenta el ejemplo anterior (y en este caso concreto realmente lo es), el procesador recurre a "una cascada" de procesamiento para resolver estos conflictos. Para un elemento dado:

  1. encuentra todas las propiedades declaradas para dicho elemento: tanto las declaradas explícitamente como las heredadas.( recuerda que provienen de distintas fuentes: hojas externas, estilo embebido en el documento, estilo en linea como atributo de los elementos del documento, Y de distinto origen: El autor de la hoja, el lector o usuario de la página, y el cliente o agente usuario (normalmente el navegador web)
  2. Configura dos listas según el peso o importancia explícito que tengan. Esto es, separa las declaraciones que terminan en !important del resto, siendo estas últimas las que prevalecen en la resolución del conflicto.
  3. Si aún no está resuelto el conflicto, toma en consideración el origen de la propiedad conflictiva: Para declaraciones normales, las de Autor prevalecen sobre las de Lector, y éstas a su vez, sobre las definidas por el agente usuario. Para declaraciones !important, las de lector prevalecen sobre las demás.
  4. En este punto se tiene en cuenta la especifidad de la declaración, (cómputo que se realiza en función de cómo se ha especificado el elemento en el selector de la regla CSS).

    Según el siguiente formato, (0,0,0,0), y leyéndose de izquiera a derecha por orden de importáncia o especifidad, el procesador añade puntos en cada "columna" según las siguientes directrices:

    • -- Una propiedad en un estilo en línea, (por ejemplo: <h1 style="color: white;">...) obtiene la puntuación (1,0,0,0).
    • -- Se añade un punto (0,1,0,0) para cada atributo ID que se encuentre en el selector
    • -- Se añade un punto (0,0,1,0) para cada atributo class, atributo cualquiera, o pseudo clase, que se encuentre en el selector
    • -- Se añade un punto (0,0,0,1) para cada elemento o pseudo elemento que se encuentre en el selector.

    El selector universal (*) obtiene cero puntos, (0,0,0,0). Y los simbolos combinadores (como >, +, etc...) y las propiedades heredadas no obtienen ninguna puntuación.

  5. Finalmente, y si el conflicto aún no se ha resuelto, se comprueba el orden en el que aparece la declaración, teniendo en cuenta que una declaración posterior sobreescribe una declaración anterior.
    Y que los documentos importados "se pegan" al comienza de la hoja de estilo que los importa; y que los estilos definidos por etiquetas obsoletas de presentacion ( como font, etc...), son consideradas como si fueran proporcionadas por el agente usuario

Ejemplos:

             p { color:gray; }   /* (0,0,0,1) */
         div p { color:gray; }   /* (0,0,0,2) */
  div.main > p { color:gray; }   /* (0,0,1,2) */
  div#tags section[lower] > p:first-child strong > em { color:gray; }    /*(0,1,2,5) */

Cualquier duda enviar mensaje...

martes, 31 de marzo de 2020

Selectores CSS

Selectores CSS
Utilizamos la parte que precede el bloque entre llaves de una regla CSS para describir aquel/aquellos elementos HTML que seleccionaremos al aplicar nuestro estilo.
La siguiente tabla muestra todas las posibles sintaxis (CSS3) por categorias
Lista de selectores CSS
SelectorDescripciónEjemplos
Categoria: Selectores idenfificativos de elementos
ECualquier elemento E del documento HTML o XMLh1 { color: grey; }
A,B,C...Agrupar elementosh1,h2,h3 { color:grey; }
*Selector universal para todo elemento* { color:grey; }
.claseAquel/Aquellos elementos con atributo class="clase"E.miclase { color:grey; }
.clase1.clase2...Aquellos elementos cuyo atributo 'class' contiene los valores clase1,clase2,... No importa el ordencode.javascript.strong { color:grey; }
#IDAquel elemento con el atributo id="ID"#miID { color:gray; }
Categoria: Selectores de atributo
E[atrib]Aquel elemento E con un atributo cuyo nombre es 'atrib'img[alt] { color:gray; }
E[atrib="x"]Cualquier elemento E cuyo atributo 'atrib' tiene exactamente el valor 'x'a[href="#ancla"] { color:grey; }
E[atrib~="x"]Cualquier elemento E cuyo atributo 'atrib' contiene el valor 'x' en su lista de valoresstrong[href~="important"] { color:grey; }
E[atrib*="x"]Cualquier elemento E cuyo atributo 'atrib' contiene la subcadena 'x'a[href*="google"] { color:grey; }
E[atrib^="x"]Aquel/Aquellos elementos E cuyo atributo 'atrib' empieza por 'x'a[href^="http:"] { color:grey; }
E[atrib$="x"]Cualquier elemento E cuyo atributo 'atrib' termina en 'x'img[alt$=".jpg"] { color:grey; }
E[atrib|="x"]Cuando el valor de 'atrib' tiene exactamente el valor 'x' o 'x-'img[alt|="figure"] { color:grey; }
Categoria: Selectores de parentesco según la estructura del docuemnto
C ECualquier elemento E descendiente de Cmain img { margin:10px; }
C > ECualquier elemento E hijo de Csection>h2 { color:grey; }
E + DSelecciona el elemento D hermano adyacente de Eheader + footer { color:grey }
E ~ D Selecciona el elemento D hermano de E, aunque no sea adyacenteh1 ~ ol { color:grey; }
Categoria: Selectores de pseudo-clases (según el estado de ciertos elementos, del estado del documento, o de ciertos patrones del marcado)
1: pseudo-clases dinámicas
1.1: según el estado de hipervínculos
a:linkhipervínculos aún no visitadosa:link { color:gray; }
a:visitedhipervínculos visitadosa:visited { color:gray; }
1.2: por la acción del ususario
:focusElemento que tiene el foco, es decir, acepta entrada de texto o ha sido activado de algún modoa:focus { color:gray; }
:hoverElemento en el cual se coloca el puntero del ratóna:hover { color:gray; }
:activeElemento activado por el usuario, por ejemplo, durante el tiempo que se pulsa un hipervínculoa:active { color:gray; }
1.3: según el estado de la IU
:enabledElementos de la interfaz de usuario habilitados para la entrada:enabled { font-weight: bold; }
:disabledElementos de IU no disponibles para la entrada:disabled { opacity: 0.5; }
:checkedbotones radio o cajas de selección que han sido seleccionadas(por el usuario o predefinido en el documento:checked { color:grey; }
:indeterminatebotones radio o cajas de selección que no se han seleccionado o deseleccionado en ningún momento.(solo determinado via scripts DOM):indeterminate { border: red; }
:defaultBotones radio, cajas de selección o 'option' que han sido seleccionadas por defecto[type:"checkbox"]:default { font-style: italic; }
:validEntradas de usuario cuyos datos son semanticamente válidosinput[type="email"]:valid { color:grey; }
:invalidEntradas de usuario cuyos datos son semanticamente inválidosinput[type:"email"]:invalid { color:grey; }
:in-rangeEntradas de usuario cuyos valores se encuentran en el rango predefinidoinput[type="number"]:in-range { color:grey; }
:out-of-rangeEntradas de usuario cuyos valores estan fuera del rango permitido por el control de formularioinput[type="number"]:out-of-range { color:grey; }
:requiredEntradas de usuario en las que es obligatorio definir un valorinput:required { color:grey; }
:optionalinput:optional { color:grey; }
:read-writeEntrada de usuario editablepre:read-write { color:grey; }
:read-onlyEntrada de usuario no editabletextarea:read-only { color:grey; }
2: pseudo-clases estructurales
E:first-childSelecciona el primer hijo del tipo Eli:first-child { color:gray; }
E:last-childSelecciona el último hijo del tipo Eli:last-child { color:gray; }
E:first-of-typeSelecciona el primer hijo del tipo Eimg:first-of-type {background-color: red; }
E:last-of-typeSelecciona el último hijo del tipo Eimg:last-of-type {background-color: red; }
:rootSelecciona el elemento raíz del documento:root { border:1px solid red; }
E:emptySelecciona elementos E sin contenido (ni texto)p:empty { display:none; }
E:only-childSelecciona elementos E que son hijos únicosp:only-child { color:gray; }
E:only-of-typeSelecciona el elemento del tipo E, único de entre sus hermanosimg:only-of-type { background-color: #CCC; }
E:nth-child(an+-b)Siendo a,b enteros y n=(0,1,2,3,...), selecciona cada elemento hijo E según dicha expresión tr:nth-child(7) { color:grey; }
tr:nth-child(2n) { color:grey; }
nth-last-child(an+-b)Lo mismo, empezando por el último elementotr:nth-last-child(odd) { color:grey; }
E:nth-of-type(an+-1)Lo mismo, seleccionando solo el tipo Ea:nth-of-type(even) { color:grey; }
E:nth-last-of-type(an+-1)Lo mismo, desde el último elementoa:nth-last-of-type(even) { color:grey; }
:targetReferencia a aquel elemento objetivo de un identificador de fragmento URL*:target { color:grey; }
:lang(<language>)Elementos definidos para un tipo de lenguaje*:lang(es) { color:grey; }
:not()Niega la coincidéncia especificadali:not(.info) { color:grey; }
Categoria: Selectores pseudo-elementos
E::first-letterEstiliza la primera letra de Ep::first-letter { color:grey; }
E::first-lineEstiliza la primera línea del elemento Ep::first-line { color:grey; }
E::beforeCrea y estiliza contenido adicional antes del elemento E. Debe contener la propiedad 'content'.h2::before { content: "x"; color:grey; }
::afterCrea y estiliza contenido adicional después del elemento E. Debe contener la propiedad 'content'.h2::after { content: "x"; color:grey; }

NOTAS:(Solicitar información más detallada a través de los comentarios)

<TO-DO>

viernes, 8 de febrero de 2013

Embeber XML en HTML

embeber xml en html (modo compatible)

Existen varios mecanismos para embeber documentos XML en páginas HTML, pero sólo Microsoft y su navegador IE (5 o superior) desarrollaron una característica denominada "islas de datos XML", que permitia insertar o enlazar documentos XML sin ayuda programática, simplemente utilizando la etiqueta xml y los atributos HTML "datasrc" y "datafld". Pero para implementar este mecanismo en modo compatible multinavegador es necesario recurrir a la nueva funcionalidad de html5 llamada "bloques de datos", con la cual, a partir de una etiqueta script se puede insertar contenido XML. (válido en IE9, Firefox, Opera,chrome, safari). Si se prefiere enlazar recursos XML externos, la opción disponible sin ayuda programática es utilizar la etiqueta object.

Una vez embebido el documento XML (enlínea o como recurso externo), se puede obtener de forma fácil una cadena de texto que represente dicho documento de marcas, pero lo realmente útil es su manipulación y procesamiento, y trabajar con cadenas de texto no es, en este caso, la mejor opción. Es por ello que en este punto es donde intervienen los lenguajes de programación, concretamente, en el ámbito o terreno de la manipulación DOM; es decir, generar de algún modo el arbol DOM de dicho documento para obtener los objetos programáticos para su manipulación y tratamiento.

En este tutorial se utiliza JavaScript y se recurre a un objeto estándar para generar el DOM del documento y así poder acceder a su contenido, denominado DOMParser().

Pasos para embeber un documento XML en línea en una página HTML (uso de la etiqueta script)

  1. Para insertar en línea el documento XML, definimos una etiqueta script con identificador(atributo "id") y tipo de contenido( atributo "type") cuyo valor es "application/xml" o "text/xml", esto es:
    <script id="miXML" type="application/xml">
    Para que esto funcione, debe omitirse el atributo "src" y debe especificarse un tipo de contenido no ejecutable.
  2. escribimos el documento XML dentro de la etiqueta (bloque de datos). (Nota: el documento XML no puede contener la etiqueta de cierre script)
  3. cerramos la etiqueta script
  4. creamos el script para generar el DOM del documento XML insertado. para ello necesitamos: la cadena de texto que representa el documento de marcas, un nuevo objeto DOMParser y el método parseFromString() para procesar el árbol DOM a partir de dicha cadena de texto; por lo tanto, utilizamos las siguientes instrucciones:
    var textXML = document.getElementById("miXML").textContent;
    var parser = new DOMParser();
    var doc = parser.parseFromString(textXML, "application/xml");
  5. Una vez generado el documento DOM ( en este caso almacenado en la variable doc) ya puedes acceder a su contenido mediante las interfaces implementadas por el estándar DOM, por ejemplo:
    var articulos = doc.getElementsByTagName("articulos");
    alert(articulos.length);

Practica1: documento XML en línea

Pasos para enlazar un documento XML a una página HTML (uso de la etiqueta object)

  1. Creas un documento XML y lo guardas con extensión xml
  2. Lo enlazas utilizando la etiqueta object: debes proporcionar los siguientes datos:
    • un identificador: id="identificador"
    • ruta del recurso: data="ruta.xml"
    • tipo de contenido: type="text/xml"
    • Importante no mostrar el contenido embebido: style="display:none"
  3. Una vez embebido el documento hay que acceder a su contenido pero en este caso se crea el árbol DOM de forma automática, por lo que se accede mediante JavaScript utilizando el siguiente código:
    var doc = document.getElementById("identificador").contentDocument
  4. Y ya está disponible para su manipulación DOM.
Saludos! Cualquier duda ya sabes, hazmelo saber

lunes, 14 de enero de 2013

Como integrar programación javascript en documentos Web

"Se utiliza JavaScript para conseguir páginas Web interactivas..."

Basicamente, existe tres maneras de colocar código javascript en una página Web:

  • Referenciar archivos javascript externos
  • Embeber código javascript en el propio documento.
  • Insertar código javascript en los atributos de evento de los elementos HTML


Archivos JavaScript

  1. Una vez elaborado el programa o script con un simple editor de texto, lo guardas con extensión .js.
  2. Ahora debes enlazar tu página Web con ese archivo. Para realizar esta acción, incluye un par de etiquetas script en la pagina, preferiblemente en la cabecera del documento.
  3. Luego debes añadir la ruta a tu archivo utilizando el atributo src="" de dicho elemento.

Ejemplo:


<head>
 <script src="ruta/archivo.js"></script>
 ...
<head>

NOTA: Es importante señalar algunos aspectos al utilizar esta sintaxis:
  1. NO puede haber contenido JavaScript cuando se utiliza el atributo src.
  2. Existen otros atributos para el elemento script; es típico utilizar el atributo type="text/javascript", pero no es necesario indicarlo explícitamente cuando concurren las siguientes dos condiciones:
    (1) Has utilizado el atributo "src" para referenciar un archivo externo.
    (2) Tu script o guión ha sido programado mediante el lenguaje identificado con el tipo MIME "text/javascript". En caso contrario, por ejemplo, si has programado con VBScript, deberás incluir el tipo MIME correspondiente obligatoriamente.

JavaScript embebido

En este caso debe omitirse el atributo "src". Y el atributo "type" tiene por defecto el valor "text/javascript", por lo que puede omitirse siempre y cuando se programe con el lenguaje que se corresponde con dicho tipo MIME. El contenido JavaScript debe incluirse entre las etiquetas de apertura y cierre script

Ejemplo:


<script>
window.alert("Bienvenido a mi página Web");
</script>

Nota: Es importante resaltar en este punto, que durante el proceso de carga de un documento, el navegador Web genera de forma paralela una estructura de objetos que representa dicho documento llamado DOM (Document Object Model); accesible de forma nativa desde JavaScript, el cual utiliza este DOM para el procesamiento del documento. Por lo tanto, aquellos elementos del documento que desees manipular con Javascript deben haberse cargado antes que la carga del elemento script. Otra alternativa, es indicar explícitamente que el código JavaScript se execute una vez completada la carga del documento; y existe tres maneras para hacer esto posible:
  1. Utilizando el atributo onload del elemento body. Su contenido se executará una vez cargada la página
  2. Definir los atributos event"onload | onload()" y for="window" en el elemento script.
  3. Utilizando el atributo defer="defer" del elemento script.

Javascript executado cuando se disparan eventos

Toda acción que se realiza una vez cargada la página Web puede tener asociado código JavaScript. Por ejemplo, al pulsar en un enlace de la página se dispara el evento "click" de dicho elemento, y el atributo onclick de dicho elemento puede contener el código que queremos que se execute. Por lo tanto, solo es necesario insertar código dentro de estos atributos para que se execute cuando se disparan tales acontecimientos.

Ejemplo: <p onmouseover="this.style.color='red';">Este texto se coloreará en rojo cuando el puntero de tu ratón lo cruce<p>

--PRACTICA:

Colorear un texto tras dispararse cierto evento

Aplica la acción siguiente con el texto que encontrarás más abajo para cambiar su color:
Clicar:"MAROON" || Apuntar:"BLACK" || Desapuntar:"YELLOW"

ESTE TEXTO CAMBIA DE FORMA DINÀMICA

Código

<p onclick="this.style.color='maroon'" onmouseover="this.style.color='black'"
 onmouseout="this.style.color='yellow'">ESTE TEXTO CAMBIA DE FORMA DINÀMICA</p>


Saludos