Tironemota

Códigos

Códigos
21-07-2022

Ventana flotante 21-07-2022

class="ventanaFlotante"

<p><a href="javascript:abrirV01()">Ver ejemplo</a></p>

<div class="ventanaFlotante" id="ventanaV01">
<div class="VFcerrar"><a href="javascript:cerrarV01()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV01(){document.getElementById("ventanaV01").style.display="block"}
function cerrarV01(){document.getElementById("ventanaV01").style.display="none"}
</script>

class="ventanaFlotante VFbordeDoble"

<p><a href="javascript:abrirV02()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFbordeDoble" id="ventanaV02">
<div class="VFcerrar"><a href="javascript:cerrarV02()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV02(){document.getElementById("ventanaV02").style.display="block"}
function cerrarV02(){document.getElementById("ventanaV02").style.display="none"}
</script>

class="ventanaFlotante VFbordeSombra"

<p><a href="javascript:abrirV03()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFbordeSombra" id="ventanaV03">
<div class="VFcerrar"><a href="javascript:cerrarV03()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV03(){document.getElementById("ventanaV03").style.display="block"}
function cerrarV03(){document.getElementById("ventanaV03").style.display="none"}
</script>

class="ventanaFlotante VFbordeDoble VFbordeSombra"

<p><a href="javascript:abrirV04()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFbordeDoble VFbordeSombra" id="ventanaV04">
<div class="VFcerrar"><a href="javascript:cerrarV04()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV04(){document.getElementById("ventanaV04").style.display="block"}
function cerrarV04(){document.getElementById("ventanaV04").style.display="none"}
</script>

class="ventanaFlotante VFcolorGr VFbordeSombra"

<p><a href="javascript:abrirV05()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFcolorGr VFbordeSombra" id="ventanaV05">
<div class="VFcerrar"><a href="javascript:cerrarV05()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV05(){document.getElementById("ventanaV05").style.display="block"}
function cerrarV05(){document.getElementById("ventanaV05").style.display="none"}
</script>

class="ventanaFlotante VFcolorAm VFbordeSombra"

<p><a href="javascript:abrirV06()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFcolorAm VFbordeSombra" id="ventanaV06">
<div class="VFcerrar"><a href="javascript:cerrarV06()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV06(){document.getElementById("ventanaV06").style.display="block"}
function cerrarV06(){document.getElementById("ventanaV06").style.display="none"}
</script>

class="ventanaFlotante VFcolorAz VFbordeSombra"

<p><a href="javascript:abrirV07()">Ver ejemplo</a></p>

<div class="ventanaFlotante VFcolorAz VFbordeSombra" id="ventanaV07">
<div class="VFcerrar"><a href="javascript:cerrarV07()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>Contenido de la ventana</div>
</div>

<script>
function abrirV07(){document.getElementById("ventanaV07").style.display="block"}
function cerrarV07(){document.getElementById("ventanaV07").style.display="none"}
</script>
<p><a href="javascript:abrirV01()">Ver ventana flotante en acción</a></p>
<div class="ventanaFlotante" id="ventanaV01">
<div class="VFcerrar"><a href="javascript:cerrarV01()"><svg><use href="#iconosvg-limpiar"></use></svg></a></div>
<div>ventanaFlotanteI</div>
</div>
.ventanaFlotante{background:#ffffff;border:1px solid #b8b7b7;border-radius:22px;font:18px Arial;padding:33px;min-height:100px;width:70%;position:fixed;left:10%;top:15%;display:none;z-index:100;}
.VFcolorAm{background:#f8f8a7;color:#5e5c05;}
.VFcolorAz{background:#000066;color:#d2cdfc;}
.VFcolorAz a{color:#fcfc80;}
.VFcolorGr{background:#9d9c9c;color:#6b6a6a;}
.VFbordeDoble{border:5px double #000000;}
.VFbordeSombra{box-shadow:5px 5px 12px #000000;}
.VFcerrar{position:absolute;right:3px;top:1px;}
.VFcerrar svg{color:silver;height:2em;width:2em;}
.VFcerrar svg:hover{color:#e60505;}
<!-- Imágen SVG  -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="iconosvg-limpiar" viewBox="0 0 24 24" fill="currentcolor">
    <title>Cerrar</title>
    <path d="M5 3Q3 3 3 5V19Q3 21 5 21H19Q21 21 21 19V5Q21 3 19 3zM5 7L7 5L12 10L17 5L19 7L14 12L19 17L17 19L12 14L7 19L5 17L10 12z"></path>
</symbol>
</svg>
function abrirV01(){document.getElementById("ventanaV01").style.display="block"}
function cerrarV01(){document.getElementById("ventanaV01").style.display="none"}

Como ejemplo de identificador unico para javascript estamos utilizando V01, el cual debe ser distinto para cada ventana.

Tabla cebrada 23-07-2022

Columnas/LineasColumna 1Columna 2
Linea 1XXXX
Linea 2XXXX
Linea 3XXXX
Linea 4XXXX
<table class="tablaCebrada">
    <tr><th>Columnas/Lineas</th><th>Columna 1</th><th>Columna 2</th></tr>
    <tr><th>Linea 1</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 2</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 3</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 4</th><td>XX</td><td>XX</td></tr>
</table>
Columnas/LineasColumna 1Columna 2
Linea 1XXXX
Linea 2XXXX
Linea 3XXXX
Linea 4XXXX
<table class="tablaCebrada tablaCebrada-posicion">
    <tr><th>Columnas/Lineas</th><th>Columna 1</th><th>Columna 2</th></tr>
    <tr><th>Linea 1</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 2</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 3</th><td>XX</td><td>XX</td></tr>
    <tr><th>Linea 4</th><td>XX</td><td>XX</td></tr>
</table>
/***********************************
    TABLA CEBRADA
***********************************/
/* Líneas pares */
.tablaCebrada tr:nth-child(even){background:#FFFFFF}
/* Líneas impares */
.tablaCebrada tr:nth-child(odd){background:#EEEEEE}
/* Primera linea de la tabla */
.tablaCebrada tr:nth-child(1){background:#8A8888;color:#FCFBFB}
/* Ancho y alineación de la tabla */
.tablaCebrada-posicion{width:80%;margin:auto}
/* Al posar el puntero */
.tablaCebrada tr+tr:hover{background:#E6FCE8}
/* Borde */
.tablaCebrada{border:1px solid #EEEEEE;border-collapse:collapse;margin-bottom:2em;}
.tablaCebrada td{border:2px solid #EEEEEE}
.tablaCebrada th{border:2px solid #FFFFFF}

Texto resaltado 20-08-2022

Podemos resaltar un texto en:

  • En azul con la clase .resaltaAz con un enlace
  • En amarillo con la clase .resaltaAm con un enlace
  • En gris con la clase .resaltaGr con un enlace
  • En rojo con la clase .resaltaRo con un enlace
  • En verde con la clase .resaltaVe con un enlace
<ul>
    <li>En azul con la clase <span class="resaltaAz">.resaltaAz</span> con <span class="resaltaAz"><a href="#Az">un enlace</a></span></li>
    <li>En amarillo con la clase <span class="resaltaAm">.resaltaAm</span> con <span class="resaltaAm"><a href="#Am">un enlace</a></span></li>
    <li>En gris con la clase <span class="resaltaGr">.resaltaGr</span> con <span class="resaltaGr"><a href="#Gr">un enlace</a></span></li>
    <li>En rojo con la clase <span class="resaltaRo">.resaltaRo</span> con <span class="resaltaRo"><a href="#Ro">un enlace</a></span></li>
    <li>En verde con la clase <span class="resaltaVe">.resaltaVe</span> con <span class="resaltaVe"><a href="#Ve">un enlace</a></span></li>
<ul>
.resaltaAz{background:#F3FCFF;border:1px solid #B6E7FF;-moz-box-shadow:inset 0 0 8em #C8F0FF;-webkit-box-shadow:inset 0 0 8em #C8F0FF;box-shadow:inset 0 0 8em #C8F0FF;}
.resaltaAm{background:#fffdf3;border:1px solid #fff8b6;-moz-box-shadow:inset 0 0 8em #fffec8;-webkit-box-shadow:inset 0 0 8em #fffec8;box-shadow:inset 0 0 8em #fffec8;}
.resaltaGr{background:#f6f6f6;border:1px solid #cccccc;-moz-box-shadow:inset 0 0 8em #dddddd;-webkit-box-shadow:inset 0 0 8em #dddddd;box-shadow:inset 0 0 8em #dddddd;}
.resaltaRo{background:#FFF3FF;border:1px solid #FFB6FF;-moz-box-shadow:inset 0 0 8em #FFC7FF;-webkit-box-shadow:inset 0 0 8em #FFC7FF;box-shadow:inset 0 0 8em #FFC7FF;}
.resaltaVe{background:#f5fff3;border:1px solid #c1ffb6;-moz-box-shadow:inset 0 0 8em #c9ffc7;-webkit-box-shadow:inset 0 0 8em #c9ffc7;box-shadow:inset 0 0 8em #c9ffc7;}
.resaltaAz,.resaltaAm,.resaltaGr,.resaltaRo,.resaltaVe{-moz-border-radius:4px;-webkit-border-radius:4px;-khtml-border-radius:4px;border-radius:4px;font-family:"Courier New";font-size:.80em;font-weight:600;padding:0 .4em;}
.resaltaAz a:link,.resaltaAm a:link,.resaltaGr a:link,.resaltaRo a:link,.resaltaVe a:link{color:#1505fd;font-weight:bold;}
.resaltaAz a:hover,.resaltaAm a:hover,.resaltaGr a:hover,.resaltaRo a:hover,.resaltaVe a:hover{color:#a1111d;}
.resaltaAz a:active,.resaltaAm a:active,.resaltaGr a:active,.resaltaRo a:active,.resaltaVe a:active{color: #ff0000;}

Botones con CSS 20-08-2022

Botones color

Input:

Botón 1

<a href="URL-destino" class="bton2">Este es un enlace</a>
<input type="button" class="bton2" value="Este es un input type=button">
.bton2{
    display:inline-block;
    padding:6px 20px;
    margin-bottom:0;
    font-size:14px;
    font-weight:normal;
    line-height:1.42857143;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
    vertical-align:middle;
    -ms-touch-action:manipulation;
    touch-action:manipulation;
    cursor:pointer;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
    background-image:none;
    border:1px solid transparent;
    border-radius:5px;
}
.bton2:focus,
.bton2:active:focus,
.bton2.active:focus,
.bton2.focus,
.bton2:active.focus,
.bton2.active.focus{
    outline:thin dotted;
    outline:5px auto -webkit-focus-ring-color;
    outline-offset: -2px;
}
.bton2:hover,
.bton2:focus,
.bton2.focus{
    color:#333;
    text-decoration:none;
}
.bton2:active,
.bton2.active{
    background-image:none;
    outline:0;
    -webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);
    box-shadow:inset 0 3px 5px rgba(0, 0, 0, .125);
}

Botón 2

<a href="URL-destino" class="bton2 bton2-azul">Este es un enlace</a>
<input type="button" class="bton2 bton2-azul" value="Este es un input type=button">
Requiere estilo .bton2{ . . . }
.bton2-azul{
    color:#fff;
    background-color:#0A12A3;
    border-color:#0A12A3;
    font-weight:bold;
}
.bton2-azul:hover,
.bton2-azul:focus,
.bton2-azul.focus,
.bton2-azul:active,
.bton2-azul.active{
    color:#000;
    background-color:#C8CBFE;
    border-color:#0A12A3;
}

Botón 3

<a href="URL-destino" class="bton2 bton2-naranja">Este es un enlace</a>
<input type="button" class="bton2 bton2-naranja" value="Este es un input type=button">
Requiere estilo .bton2{ . . . }
.bton2-naranja{
    color:#fff;
    background-color:#C18C08;
    border-color:#C18C08;
    font-weight:bold;
}
.bton2-naranja:hover,
.bton2-naranja:focus,
.bton2-naranja.focus,
.bton2-naranja:active,
.bton2-naranja.active{
    color:#000;
    background-color:#F9DB8E;
    border-color:#C18C08;
}

Botón 4

<a href="URL-destino" class="bton2 bton2-verde">Este es un enlace</a>
<input type="button" class="bton2 bton2-verde" value="Este es un input type=button">
Requiere estilo .bton2{ . . . }
.bton2-verde{
    color:#fff;
    background-color:#16A609;
    border-color:#16660F;
    font-weight:bold;
}
.bton2-verde:hover,
.bton2-verde:focus,
.bton2-verde.focus,
.bton2-verde:active,
.bton2-verde.active{
    color:#000;
    background-color:#92F689;
    border-color:#16660F;
}

Botón 5

<a href="URL-destino" class="bton2 bton2-verde2">Este es un enlace</a>
<input type="button" class="bton2 bton2-verde2" value="Este es un input type=button">
Requiere estilo .bton2{ . . . }
.bton2-verde2{
    color:#F5F403;
    background-color:#0F7703;
    border-color:#026A04;
    font-weight:bold;
}
.bton2-verde2:hover,
.bton2-verde2:focus,
.bton2-verde2.focus,
.bton2-verde2:active,
.bton2-verde2.active{
    color:#0F7703;
    background-color:#F5F403;
    border-color:#026A04;
}

Botón 6 con color gradiente.

<a href="URL-destino" class="bton bton-verde">Este es un enlace</a>
<input type="button" class="bton bton-verde" value="Este es un input type=button">
.bton{
    display:inline-block;
    padding:6px 12px;
    margin-bottom:0;
    font-size:14px;
    font-weight:400;
    line-height:1.42857143;
    text-align:center;
    white-space:nowrap;
    vertical-align:middle;
    -ms-touch-action:manipulation;
    touch-action:manipulation;
    cursor:pointer;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
    background-image:none;
    border:1px solid transparent;
    border-radius:4p;
    text-decoration:none;
}
.bton-verde{
    /* Safari 5.1 a 6.0 */
    background: -webkit-linear-gradient(#FFFFFF,#3ABC3A);
    /* Opera 11.1 a 12.0 */
    background: -o-linear-gradient(#FFFFFF,#3ABC3A);
    /* Firefox 3.6 to 15 */
    background: -moz-linear-gradient(#FFFFFF,#3ABC3A);
    /* Sintaxis estándar (debe ser la última) */
    background: linear-gradient(#FFFFFF,#3ABC3A);
    border-radius:4px;
    color:#000000;
}
.bton-verde:hover{
    /* Safari 5.1 a 6.0 */
    background: -webkit-linear-gradient(#3ABC3A,#FFFFFF);
    /* Opera 11.1 a 12.0 */
    background: -o-linear-gradient(#3ABC3A,#FFFFFF);
    /* Firefox 3.6 to 15 */
    background: -moz-linear-gradient(#3ABC3A,#FFFFFF);
    /* Sintaxis estándar (debe ser la última) */
    background: linear-gradient(#3ABC3A,#FFFFFF);
}
.bton-verde:active{
    background:#DBFCD9;
    box-shadow:2px 2px 20px inset #026F08;
}

Tamaño del botón

Código HTML

<div>
    <input type="button" class="bton2 bton2-azul bton-pq" value="Botón grande">
    <input type="button" class="bton2 bton2-naranja bton-pq" value="Botón grande">
    <input type="button" class="bton2 bton2-verde bton-pq" value="Botón grande">
    <input type="button" class="bton2 bton2-verde2 bton-pq" value="Botón grande">
    <input type="button" class="bton bton-verde bton-pq" value="Botón grande">
</div>
<div>
    <input type="button" class="bton2 bton2-azul bton-me" value="Botón grande">
    <input type="button" class="bton2 bton2-naranja bton-me" value="Botón grande">
    <input type="button" class="bton2 bton2-verde bton-me" value="Botón grande">
    <input type="button" class="bton2 bton2-verde2 bton-me" value="Botón grande">
    <input type="button" class="bton bton-verde bton-me" value="Botón grande">
</div>
<div>
    <input type="button" class="bton2 bton2-azul bton-gr" value="Botón grande">
    <input type="button" class="bton2 bton2-naranja bton-gr" value="Botón grande">
    <input type="button" class="bton2 bton2-verde bton-gr" value="Botón grande">
    <input type="button" class="bton2 bton2-verde2 bton-gr" value="Botón grande">
    <input type="button" class="bton bton-verde bton-gr" value="Botón grande">
</div>

Estilos CSS

.bton-pq{
    padding:1px 5px;
    font-size:12px;
    line-height:1.5;
    border-radius:3px;
}
.bton-me{
    padding:5px 10px;
    font-size:12px;
    line-height:1.5;
    border-radius:3px
}
.bton-gr{
    padding:10px 16px;
    font-size:18px;
    line-height:1.3333333;
    border-radius:6px
}

Botón flotante 20-08-2022

Botón flotante Botón no flotante

Un botón flotante es muy útil cuando tenemos que viajar a través de una lista muy extensa. Solo requerimos aplicarle al botón una clase para que se mantenga fijo, mientras recorremos la pagina.

<a href="#Botón-flotante" class="bton2 bton2-verde2 flotante">Botón flotante</a>
<a href="#Botón-flotante" class="bton2 bton2-verde2">Botón no flotante</a>

Ver la clase bton2 bton2-verde2 ...

.flotante {
    display:scroll;
    position:fixed;
    bottom:320px;
    right:0px;
    z-index:100;
}

Podemos aplicarle este estilo a cualquier objeto que deseemos tener fijo.

Botón submit con imagen 20-08-2022

<input type="submit" value="" name="submit">
input[type=submit] {
    background:url('URL-DE-IMAGEN');
    background-repeat:no-repeat;
    background-position:50% 50%; /*Centramos la imagen*/
    background-size:90%; /*Tamaño de la imagen*/
    display:block;
    height:47px; /*Alto del botón*/
    width:199px; /*Ancho del botón*/
    border:1px solid grey;
    border-radius:10px;
    box-shadow:5px 5px 5px black;
}
input[type=submit]:hover{
    background-size:80%; /*Tamaño de la imagen*/
    box-shadow:5px 5px 5px black inset;
    cursor:pointer;
}

Botón imprimir 20-08-2022

Ejemplo 1: con <button>

<button onclick="imprimir();">Imprimir</button>

Ejemplo 2: con <img>

<img src="URL-IMAGEN" id="btnImprime" onclick="imprimir();" style="cursor:pointer"/>

Selecionar contenido a imprimir

<!--DIV que contiene lo que se va imprimir-->
<div id="imprime">
    ..................
</div>
function imprimir(){
    var objeto=document.getElementById('imprime'); //obtenemos el objeto a imprimir
    var ventana=window.open('','_blank'); //abrimos una ventana vacía nueva
    ventana.document.write(objeto.innerHTML); //imprimimos el HTML del objeto en la nueva ventana
    ventana.document.close(); //cerramos el documento
    ventana.print(); //imprimimos la ventana
    ventana.close(); //cerramos la ventana
}

Imprimir contenido web 20-08-2022

Imprimir contenido

Con solo pulsar el botón imprimir, podemos imprimir cualquier contenido incluyendo imágenes. En este ejemplo incluiremos una imagen de cabecera a la pagina a imprimir.

Imagen de cabecera en la pagina a imprimir

<p class="text-center">
    <a href="javascript:imprime('imp')">
        <img src="../img/maq/imp.png" alt="Imprimir contenido" width="95" height="25" title="Imprimir contenido"/>
    </a>
</p>
<div id="imp">
    <h1>Columna a ser imprimida</h1>
    <p>En esta columna o div, se encuentra todo el contenido a ser imprimido, con solo pulsar el botón imprimir.</p>
    <p>Podemos imprimir cualquier contenido incluyendo imágenes.</p>
</div>
// IMPRIMIR CONTENIDO DE PAGINA WEB
function imprime(que) {
    var ventana = window.open("", "", "");
    var imagen = "<div align=center<>img src=URL-IMAGEN-DE-CABECERA /<>/div<>br>";
    var contenido = "<html<>body onload='window.print();window.close();'>";
    contenido = contenido + imagen + document.getElementById(que).innerHTML + "</body<>/html>";
    ventana.document.open();
    ventana.document.write(contenido);
    ventana.document.close();
}

Tooltips 1 21-08-2022

Capitales

  • AraguaMaracay
  • CaraboboValencia
  • MirandaLos Teques
  • MeridaMerida
  • TachiraSan Cristobal
  • YaracuySan Felipe
<ul id="ListDeTooltips">
    <li><i>Aragua</i><span>Maracay</span></li>
    <li><i>Carabobo</i><span>Valencia</span></li>
    <li><i>Miranda</i><span>Los Teques</span></li>
    <li><i>Merida</i><span>Merida</span></li>
    <li><i>Tachira</i><span>San Cristobal</span></li>
    <li><i>Yaracuy</i><span>San Felipe</span></li>
</ul>
ul#ListDeTooltips {list-style-type:none;}
ul#ListDeTooltips li{position:relative;font-size:20px;font-family:helvetica, arial, sans-serif;}
ul#ListDeTooltips i:hover{background-color:aqua;cursor:pointer;}
ul#ListDeTooltips li > span{position:relative;display:none;}
ul#ListDeTooltips li:hover > span{position:absolute;top:-0.3em;left:100px;display:block;background:red;color:white;padding:6px;}
ul#ListDeTooltips li:hover > span:after {right:100%;top:50%;border:solid transparent;content: " ";height:0;width:0;position:absolute;pointer-events:none;border-color:rgba(136, 183, 213, 0);border-right-color:red;border-width:6px;margin-top:-6px;}

Tooltips 2 05-04-2023

Esto es en ejemplo de Tooltips arriba Ejemplo de Tooltips arriba, Tooltips derecha Ejemplo de Tooltips a la derecha, Tooltips abajo Ejemplo de Tooltips abajo, Tooltips izquierda Ejemplo de Tooltips a la izquierda.
<etiqueta class="tooltipCont">
    <i>Texto o contenido</i>
    <span  class="tooltip tooltip-top">Contenido a mostrar</span>
</etiqueta>
<style>
.tooltipCont{
    color: #0f0f99;
    cursor: pointer;
    position: relative;
}
.tooltip{
    background-color: #fdf0b7;
    border: 1px solid #d4d2d2;
    box-shadow: 5px 5px 12px #000000;
    padding: 5px 8px;
    line-height: 25px;
    border-radius: 5px;
    position: absolute;
    visibility: hidden;
    opacity: 0;
    min-width: 200px;
}
/*Posición de los tooltip*/
.tooltip-top{left: 0; bottom: 130%;}
.tooltip-right{top: -100%; left: 110%;}
.tooltip-bottom{left: 0; top: 140%;}
.tooltip-left{top: -100%; right: 110%;}
/*Mostrar con transición*/
.tooltipCont:hover .tooltip-top,
.tooltipCont:hover .tooltip-bottom,
.tooltipCont:hover .tooltip-left,
.tooltipCont:hover .tooltip-right{
    visibility: visible;
    opacity: 1;
    transition:2s;
    z-index: 10;
}
/*Creamos un indicador*/
.tooltip-top::after,
.tooltip-bottom::after,
.tooltip-left::after,
.tooltip-right::after {
    content: "";/*creamos un cuadro*/
    display: block;
    background-color: #fdf0b7;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);/*rotamos el cuadro*/
    position: absolute;/*Hacemos que flote*/
}
/*Posición del indicador*/
.tooltip-top::after{left: 10%;}
.tooltip-right::after{left: -3%; top: 35%;}
.tooltip-bottom::after{left: 10%; top: -8%;}
.tooltip-left::after{right: -3%; top: 35%;}
</style>

Ventana de ayuda 21-08-2022

Ventana de ayuda al pasar el puntero

Ejemplo:
Pose el puntero sobre [?] para verlo en accción

[?]
[?]
<div>
    <label for="nombre">Nombre:</label>
    <input type="text" name="nombre" id="nombre">
    <a href="#a" class="hintanchor" onMouseover="showhint('<span>Nombre:</span><br>Introduzca su nombre.', this, event, '150px')">[?]</a>
    <br>
    <label for="password">Password:</label>
    <input type="password" name="password" id="password">
    <a href="#b" class="hintanchor" onMouseover="showhint('<span>Password:</span><br>Introduzca la contraseña deseada.<br>Debe ser de 8 caracteres o más.', this, event, '200px')">[?]</a>
</div>
#hintbox{ /*Caja de ayuda.*/
    position:absolute;
    top: 0;
    background-color: #e2ffe2;
    width: 150px; /*Ancho predeterminado.*/
    padding: 5px;
    border:1px solid black;
    border-radius:10px;
    font:normal 11px Verdana;
    line-height:18px;
    z-index:100;
    border-right: 3px solid black;
    border-bottom: 3px solid black;
    visibility: hidden;
}
#hintbox span {color:#900; font:bold 1.5em monospace;}
.hintanchor{ /*Enlace*/
    font-weight: bold;
    color: navy;
    margin: 3px 8px;
    text-decoration:none;
}
var horizontal_offset="9px" //desplazamiento horizontal de la caja de ayuda desde el enlace de anclaje
/////No existe más edición necesaria
var vertical_offset="0" //desplazamiento horizontal de la caja de ayuda desde el enlace de anclaje. No hay necesidad de cambiar.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}
if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox

Campo de busqueda animado 21-08-2022

<form>
    <input name="busca" type="text" id="busca" placeholder="Buscar ..." size="40">
</form>
#busca {
    background:url(img/Lupa-Blanca.png) no-repeat 10px 6px #444;
    border:0 none;
    border-radius:20px;
    box-shadow:0 1px 0 #999, 0 1px 3px #333 inset;
    color:#d7d7d7;
    font:bold 12px Arial, Helvetica, sans-serif;
    padding:6px 15px 6px 35px;
    width:100px;
    -moz-transition:all 0.7s ease 0s;
    -webkit-transition:all 0.7s ease 0s;
    -o-transition:all 0.7s ease 0s;
    transition:all 0.7s ease 0s;
    outline: none;
}
#busca:focus {
    background:url(img/Lupa-Negra.png) no-repeat 10px 6px #fcfcfc;
    border:none;
    box-shadow:0 1px 0 #999, 0 1px 0 #000000 inset;
    color:#6a6f75;
    width:200px;
}

Imagenes

Lupa-Blanca.png

Lupa-Negra.png

Pasar valores de un select a un textbox 21-08-2022

<select id="Seleccionar" onchange="SelectPais(this.id);">
    <option value="">Selecciona..</option>
    <option value="Colombia">Colombia</option>
    <option value="Brasil">Brasil</option>
    <option value="Venezuela">Venezuela</option>
</select>
<input type="text" name="Pais" id="Pais" />
function SelectPais(id){
    var PaisSel = document.getElementById(id);
    var PaisActual = document.getElementById('Pais');
    PaisActual.value = PaisSel.value;
}

Pasar valor de una caja de texto a otra 21-08-2022

Escriba dentro de este campo:

El valor introducido se reflejará aquí:
Escriba dentro de este campo: <input id="InputText1" type="text" onkeyup="Ejemplo1();" />
<br><br>
El valor introducido se reflejará aquí: <input type="text" disabled id="InputText2" />
function Ejemplo1(){
    document.getElementById("InputText2").value = document.getElementById("InputText1").value;
}

Mostrar el contenido de un objeto 21-08-2022

Contenido de mi capa...ninguno
<form id="form1" action="#">
    <select id="texto" onClick="cambiarContenido( getElementById('texto').value );">
        <option value="ninguno">Seleccione..</option>
        <option value="Primer ejemplo">Primer ejemplo</option>
        <option value="Segundo ejemplo">Segundo ejemplo</option>
    </select>
</form>
<div>Contenido de mi capa...<span id="micapa">ninguno</span></div>
function cambiarContenido(texto){
    document.getElementById("micapa").innerHTML = texto;
}

Selección multiple 21-08-2022

Mi vehiculo es un .... de color .... tipo ....
<form action="#" id="form2">
    <select id="texto2" onClick="cambiarContenido2( getElementById('texto2').value );">
        <option value="....">MARCA</option>
        <option value="Ford">Ford</option>
        <option value="Chevrolet">Chevrolet</option>
        <option value="Fiat">Fiat</option>
    </select>
    <select id="texto3" onClick="cambiarContenido3( getElementById('texto3').value );">
        <option value="....">COLOR</option>
        <option value="Negro">Negro</option>
        <option value="Blanco">Blanco</option>
        <option value="Rojo">Rojo</option>
    </select>
    <select id="texto4" onClick="cambiarContenido4( getElementById('texto4').value );">
        <option value="....">TIPO</option>
        <option value="Sedan">Sedan</option>
        <option value="Camioneta">Camioneta</option>
    </select>
</form>
<div>Mi vehiculo es un <span id="micapa2">....</span> de color <span id="micapa3">....</span> tipo <span id="micapa4">....</span></div>
function cambiarContenido2(texto){
    document.getElementById("micapa2").innerHTML = texto;
}
function cambiarContenido3(texto){
    document.getElementById("micapa3").innerHTML = texto;
}
function cambiarContenido4(texto){
    document.getElementById("micapa4").innerHTML = texto;
}

Seleccionar contenido de una textarea al hacer clic 21-08-2022

<textarea onclick="this.select()">
    Seleccionar contenido de una textarea al hacer click
</textarea>

Último div ocupa el 100% de altura restantes de la ventana 21-08-2022

Este simple código muestra cómo poner el ultimo <div> ocupando el resto de altura de la pantalla.

DIV 1
DIV 2
DIV 3
  • height: 100% - Definimos el 100% de altura para el body y html
  • display: flex - Habilitamos el flexbox en el contenedor
  • flex-direction: column - Establecemos la dirección de los elementos flex de arriba hacia abajo
  • flex-grow: 1 - el flexbox aplicará el espacio disponible restante del contenedor al último elemento
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Ejemplo</title>
    <style>
    html,
    body {
        height: 100%;
        margin: 0;
    }
    .container {
        height: 100%;
        display: flex;
        flex-direction: column;
    }
    .container > div {padding:10px;}
    .container > div:last-child {
        background-color: tomato;
        flex: 1;
    }
    </style>
</head>

<body>
    <div class="container">
        <div>Div 1</div>
        <div>Div 2</div>
        <div>Div 3</div>
    </div>
</body>
</html>

Checkbox selecciona/deselecciona todos 21-08-2022

ID Nombre Comentario
1 Juan Perez Texto de comentario
2 Juan Perez Texto de comentario
<table>
    <thead>
        <tr style="background:#333232;color:#F1F0F0">
            <th style="text-align:center;width:30px;"><input name="todoscheck" type="checkbox" /></th>
            <th style="text-align:center;width:30px;">ID</th>
            <th style="width:100px;">Nombre</th>
            <th style="width:200px;">Comentario</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="text-align:center;width:30px;"><input name="comment-1" type="checkbox" /></td>
            <td style="text-align:center;width:30px;">1</td>
            <td style="width:100px;">Juan Perez</td>
            <td style="width:200px;">Texto de comentario</td>
        </tr>
        <tr>
            <td style="text-align:center;width:30px;"><input name="comment-2" type="checkbox" /></td>
            <td style="text-align:center;width:30px;">2</td>
            <td style="width:100px;">Juan Perez</td>
            <td style="width:200px;">Texto de comentario</td>
        </tr>
    </tbody>
</table>

Del código anterior nos tenemos que concentrar en el <input name="todoscheck" type="checkbox" />. Este checkbox servirá para controlar los demás. Lo más importante aquí es el atributo name="todoscheck", dato que utilizaremos como referencia al escribir nuestro código jQuery.

Además, tenemos los otros checkboxs que seguramente iremos generando de forma dinámica, lo más seguro es que utilicen un for o while, pero eso no lo vamos a profundizar en este tutorial.

<!-- LIBRERIA JQUERY -->
<script src="jquery.min.js"></script>
<script>
//cuando el documento esté listo, realice lo que sigue
$(document).ready(function(){
    //Checkbox
    //cuando el input (tipo checkbox) que contenga “todoscheck”
    //en su atributo name cambie (change()) ejecute una función
    $("input[name=todoscheck]").change(function(){
        //por cada uno (each()) de los checkboxs ejecute otra función.
        $('input[type=checkbox]').each( function() {
            //Los checkboxs devuelven un booleano,
            //es decir, un 1 (“verdadero”, checkbox está activo)
            //o un 0 (“falso”, checkbox deseleccionado). Entonces lo que preguntamos en el if es:
            //“Si el checkbox padre (de name todoscheck) que está seleccionado es igual a 1,
            if($("input[name=todoscheck]:checked").length == 1){
                //entonces a this (el checkbox que estamos recorriendo por el each) lo seleccionamos (this.checked = true;),
                this.checked = true;
            // sino
            } else {
                // lo deseleccionamos (this.checked = false;).”
                this.checked = false;
            }
        });
    });
});
</script>

De esta manera abarcamos todas las posibilidades:

Sí al hacer click en “checktodos” mientras…

  1. No está seleccionado y todos los demás tampoco, entonces selecciona todos.
  2. No está seleccionado y los demás algunos si algunos no, entonces selecciona todos.
  3. No está seleccionado y todos los demás si, entonces selecciona todos.
  4. Si está seleccionado y todos los demás no, entonces selecciona ninguno.
  5. Si está seleccionado y los demás algunos si algunos no, entonces selecciona ninguno.
  6. Si está seleccionado y todos los demás también, entonces selecciona ninguno.

Listas dependientes 21-08-2022

Trimestre
Meses

Código HTML

<form name="formulario" method="post" action="">
    <div style="display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:50px;">
        <div style="margin-bottom:10px;width:220px;">Trimestre
            <select name="trimestres" OnChange="cambiar()">
                <option value="1er. Trimestre" selected>1er. Trimestre</option>
                <option value="2do. Trimestre">2er. Trimestre</option>
                <option value="3er. Trimestre">3er. Trimestre</option>
                <option value="4to. Trimestre">4to. Trimestre</option>
            </select>
        </div>
        <div style="width:220px;">
            <select name="meses">
                <option value="Enero" selected>Enero</option>
                <option value="Febrero">Febrero</option>
                <option value="Marzo">Marzo</option>
            </select>
        </div>
    </div>
</form>

Código Javascript

function cambiar()
{
var index=document.forms.formulario.trimestres.selectedIndex;
formulario.meses.length=0;
if(index==0) trimestre1();
if(index==1) trimestre2();
if(index==2) trimestre3();
if(index==3) trimestre4();
}
function trimestre1(){
    opcion0=new Option("Enero","Enero","defauldSelected");
    opcion1=new Option("Febrero","Febrero");
    opcion2=new Option("Marzo","Marzo");
    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}
function trimestre2(){
    opcion0=new Option("Abril","Abril","defauldSelected");
    opcion1=new Option("Mayo","Mayo");
    opcion2=new Option("Junio","Junio");
    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}
function trimestre3(){
    opcion0=new Option("Julio","Julio","defauldSelected");
    opcion1=new Option("Agosto","Agosto");
    opcion2=new Option("Septiembre","Septiembre");
    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}
function trimestre4(){
    opcion0=new Option("Octubre","Octubre","defauldSelected");
    opcion1=new Option("Noviembre","Noviembre");
    opcion2=new Option("Diciembre","Diciembre");
    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}

Desarrollo

Lo primero que hacemos es construir las dos listas con los elementos correspondientes, la lista de los meses la llenamos con la primera opción que es la del primero trimestre dado que cuando cargue la página esta opción esta seleccionada por defecto. (Ver Código HTML)

Cabe destacar de este código que debemos respetar los nombres de los objetos dado que sino el JavaScript no funcionara, otra cosa a destacar es la declaración del evento 'OnChange' de la lista de trimestres, esta declaración hace que cada ves que cambie el elemento seleccionado se ejecute la función de JavaScript llamada 'cambiar()', veamos ahora que contiene esta función...

function cambiar()
{
var index=document.forms.formulario.trimestres.selectedIndex;

formulario.meses.length=0;

    if(index==0) trimestre1();
    if(index==1) trimestre2();
    if(index==2) trimestre3();
    if(index==3) trimestre4();
}

Esta y las demás funciones JavaScript van entre las etiquetas llamadas <script> y las podemos ubicar en cualquier sector de la pagina, pero lo mas apropiado es ponerlas después de la etiqueta </body>.

<script>
function cambiar()
    . . .
</script>

Bueno, ahora si comentemos el código anterior, la primera línea de código declara la variable llamada 'index' y a su ves le asigna el valor del elemento seleccionado en la lista trimestres, el valor 0 corresponde al primer trimestre, el 1 al segundo y así hasta el 3 que corresponde al ultimo trimestre es decir el cuarto. Después la segunda línea de código asigna 0 a la propiedad length de la lista meses, esta propiedad maneja el numero de elementos que tiene esa lista, a ponerla a cero se borran todos los elementos de la lista meses. Luego siguen un grupo de if que evalúan la variable 'index', si esta es igual a cero va a la función 'trimestre1()', si es 1 va a la función 'trimestre2()' y si sucesivamente, ahora ¿que hacen estas funciones? simple, llenan la lista de meses por ejemplo 'trimestre1()' llena la lista meses con los primeros tres meses del año, veamos como...

function trimestre1(){
    opcion0=new Option("Enero","Enero","defauldSelected");
    opcion1=new Option("Febrero","Febrero");
    opcion2=new Option("Marzo","Marzo");

    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}

Aquí creamos 3 variables a las cuales les asignamos el objeto 'Option' creado mediante la palabra clave 'new', para crear un objeto del tipo 'Option' debemos especificar como mínimo 2 parámetros, el primero es el texto que aparecerá en la lista y el segundo es el 'listvalue' que tendrá dicho elemento. También existe un tercer parámetro opcional que sirve para especificar si el elemento esta seleccionado, si queremos que esto sea así debemos poner el tercer parámetro con el valor 'defauldSelected'.

Después de crear los objetos 'Option' debemos asignárselos a la lista de los meses. Las demás funciones son iguales a esta lo único que cambia son los valores de los meses, igual acá va el código de las otras funciones...

function trimestre2(){
    opcion0=new Option("Abril","Abril","defauldSelected");
    opcion1=new Option("Mayo","Mayo");
    opcion2=new Option("Junio","Junio");

    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}
function trimestre3(){
    opcion0=new Option("Julio","Julio","defauldSelected");
    opcion1=new Option("Agosto","Agosto");
    opcion2=new Option("Septiembre","Septiembre");

    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}
function trimestre4(){
    opcion0=new Option("Octubre","Octubre","defauldSelected");
    opcion1=new Option("Noviembre","Noviembre");
    opcion2=new Option("Diciembre","Diciembre");

    document.forms.formulario.meses.options[0]=opcion0;
    document.forms.formulario.meses.options[1]=opcion1;
    document.forms.formulario.meses.options[2]=opcion2;
}

Lista con contador anidado 22/11/2023

  1. Item 1
  2. Item 2
    1. Item 2-1
    2. Item 2-2
  3. Item 3
    1. Item 3-1
    2. Item 3-2
    3. Item 3-3
      1. Item 3-3-1
      2. Item 3-3-2
<div class="ListaContador">
    <ol>
        <li>Item 1</li>
        <li>Item 2
            <ol>
                <li>Item 2-1</li>
                <li>Item 2-2</li>
            </ol>
        </li>
        <li>Item 3
            <ol>
                <li>Item 3-1</li>
                <li>Item 3-2</li>
                <li>Item 3-3
                    <ol>
                        <li>Item 3-3-1</li>
                        <li>Item 3-3-2</li>
                    </ol>
                </li>
            </ol>
        </li>
    </ol>
</div>
<style>
.ListaContador ol{
    counter-reset: elemento;
    list-style-type: none;
}
.ListaContador li:before {
    content: counters(elemento, '. ') ". ";
    counter-increment: elemento;
}
</style>
Cerrar