6.04 - 📹 CSS y HTML avanzado - Anki Macrocurso
MÓDULO 6 - Códigos; HTML, CSS, Latex, MathJax y JavaScript - Anki Macrocurso
Selectores (CSS)
Si quieres poner varios, se separan por comas (,), pero no siempre. .nightMode y .light siempre primeros.
.nightMode.night.light.front.back
Replay button / Botón de reproducir
/Tamaño del botón de reproducción/
.replay-button svg {
width: 45px;
height: 45px;
/Color de relleno del botón de reproducción/
.replay-button svg circle {
fill: white;
}
/Color de la flecha y perímetro botón de reproducción/
.replay-button svg path {
stroke: black;
fill: red;
}
Visto en la lecciones anterioeres
Fuentes (font)
Texto (text)
Fondo (background)
Imagen (selector + propiedades)
Selector: img
Ejemplo:
img {
border: 1px solid \#ddd;
border-radius: 4px;
padding: 5px;
width: 150px;
height: 222px;
margin: px;
box-shadow: 0 22px 3px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
opacity: 0.5;
filter: grayscale(100%);
}
- Filtros para las imágenes:
filter: … ;- blur(4px) / brightness(250%) / contrast(180%) / grayscale(100%) / invert(100%) / saturate(7) / sepia(100%) / drop-shadow(8px 8px 10px green)
Bordes (border)
border: Añade un borde a un elemento y establece algunas propiedades (grosor, estilo de línea, etc.)border-color: Color del borde.border-radius: Permite crear esquinas redondeadas para un elemento. En px
border-style (Diferentes estilos para el borde (sólido, puntos…). Valores:
dotted- Defines a dotted borderdashed- Defines a dashed bordersolid- Defines a solid borderdouble- Defines a double borderinset- Defines a 3D inset border. The effect depends on the border-color valueoutset- Defines a 3D outset border. The effect depends on the border-color valuenone- Defines no border
Márgenes
margin: ;
margin-top / margin-right / margin-bottom / margin-left (Tamaño del margen superior, derecho, inferior e izquierdo). En píxeles (px)
Relleno
padding: ;
padding-top / padding -right / padding -bottom / padding -left (Tamaño del relleno superior, derecho, inferior e izquierdo). En píxeles (px)
margin: para definir la distancia que debe existir entre los elementos HMTL
padding: para definir la distancia que debe existir alrededor de un elemento dentro del propio elemento
!important
No recomendado para el desarrollo de CSS a buen nivel, pero a nosotros nos sirve.
La regla !important en CSS se usa para añadir más importancia o prioridad a un valor que de normal. Si utilizar la regla !important , se sobrescribirá todos los estilos previos para esa propiedad específica de un elemento.
.container {
background: #bc8aff !important;
padding: 25px;
}
En CSS, el último selector es el que tiene prioridad frente al mismo selector con otras propiedades.
.container {
background: #bc8aff;
padding: 25px;
}
.container {
background: #000;
padding: 25px;
}
En este ejemplo, el selector .container será negro (#000) porque es el último.
Si queremos que sea el primer selector el que especifique el color de fondo del selector .container, podríamos añadir después de background: orange; la regla !important.
.container {
background: #bc8aff !important;
padding: 25px;
}
Otras soluciones al uso de !important: como dijimos en la lección de CSS básico, cuanto más específico sea un selector, mayor prioridad tendrá este a la hora de producir cambios en un elemento. Por ello, en vez de utilizar !important, para este ejemplo, podríamos hacer más específico el selector que queremos que modifique el elemento en cuestión. Así, nos ahorramos el utilizar esta regla y minimizamos los errores que nos puedan surgir.
#wrapper .row .column .container {
background: #ccc; /*gray*/
padding: 25px;
}
.column .container {
background: #bc8aff; /*purple*/
padding: 25px;
}
Gradientes
Los gradientes en CSS te permiten desplegar transiciones entre dos o más colores que tu elijas. Podemos elegir entre dos tipos de gradientes:
- Gradientes lineares (van de arriba hacia abajo, de derecha a izq, en diagonal, etc)
- Gradiente linear – Diagonal
background-image: linear-gradient(to bottom right, red, yellow);
- Gradiente linear con ángulo que quereamos (deg=degrees = grados)
background-image: linear-gradient(0deg, red, yellow);
- Gradiente linear - Varios colores
background-image: linear-gradient(red, yellow, green);
- Gradiente linear – Diagonal
- Gradientes radiales (definidos por su centro)
- Radial gradient (centro, periferia)
background-image: radial-gradient(red, yellow).
- Radial gradient (centro, periferia)
Sombras
Shadow en inglés.
text-shadow: 1px 1px 2px black, 0 0 25px blue, 0 0 5px darkblue;
}
Tooltip
Un tooltip se usa frecuentemente para mostrar información extra sobre algo cuando nosotros movemos nuestro cursor y lo ponemos encima de un elemento. Su selector de CSS es tooltip{}
.tooltip {
position: relative;
display: inline-block;
border-bottom: 1px dotted black;
}
.tooltip .tooltiptext {
visibility: hidden;
width: 120px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
position: absolute;
z-index: 1;
top: 150%;
left: 50%;
margin-left: -60px;
/ Fade in tooltip - takes 2 second to go from 0% to 100% opac: /
opacity: 0;
transition: opacity 2s;
}
.tooltip:hover .tooltiptext {
visibility: visible;
opacity: 1;
}
HTML
<div class="tooltip">Hover over me
<span class="tooltiptext">Texto</span>
</div>
Botones
Introducción
CSS
.button {
background-color: #4CAF50;
border: none;
color: white;
padding: 20px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
border-radius: 12px;
}
HTML
<button class="button button3">Botón</button>
Otro ejemplo:
{{Anverso}} (CSS de tooltip añadido)
<button class="button button3"><div class="tooltip">Hover over me
<span class="tooltiptext">Texto</span>
</div></button>
Sombra
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
Botón para ventana emergente
<button onclick="alert('Texto de la ventana emergente')">Clica este botón</button>
Botón para notificación
<div id="notification" style="display: none; position: fixed; bottom: 10px; right: 10px; background-color: #4CAF50; color: white; padding: 15px; border-radius: 5px;">
¡Bien hecho!
</div>
<script>
function showNotification() {
var notification = document.getElementById('notification');
notification.style.display = 'block';
setTimeout(function() {
notification.style.display = 'none';
}, 3000);
}
</script>
<button onclick="showNotification()">Mostrar notificación</button>
Cambiar entre modo claro-oscuro
<button class="switch-button" onclick="toggleMode()">Toggle Light/Dark Mode</button>
<script>
// Cargar el modo preferido al iniciar
window.onload = function() {
if (localStorage.getItem('theme') === 'dark') {
document.body.classList.add('dark-mode');
} else {
document.body.classList.add('light-mode');
}
};
// Función para alternar entre modos
function toggleMode() {
if (document.body.classList.contains('dark-mode')) {
document.body.classList.remove('dark-mode');
document.body.classList.add('light-mode');
localStorage.setItem('theme', 'light');
} else {
document.body.classList.remove('light-mode');
document.body.classList.add('dark-mode');
localStorage.setItem('theme', 'dark');
}
}
</script>
/* Estilos generales */
body {
font-family: Arial, sans-serif;
transition: background-color 0.5s, color 0.5s;
}
/* Modo Claro */
body.light-mode {
background-color: #ffffff;
color: #000000;
}
/* Modo Oscuro */
body.dark-mode {
background-color: #121212;
color: #e0e0e0;
}
/* Estilos para el botón del interruptor */
.switch-button {
position: center;
top: 10px;
right: 10px;
background-color: #4CAF50;
color: white;
border: none;
padding: 10px 20px;
cursor: pointer;
border-radius: 5px;
font-size: 16px;
transition: background-color 0.3s, color 0.3s;
}
.switch-button:hover {
background-color: #45a049;
}
Enlaces
<a href="enlace">Texto a enlazar</a>
Sinergia:
Campo de enlace + botón
<button><a href="enlace">Texto a enlazar</a></button>
Animaciones
Cuando especifica estilos CSS dentro de la regla @keyframes, la animación cambiará gradualmente del estilo actual al nuevo estilo en determinados momentos.
Para que una animación funcione, debe vincular la animación a un elemento.
El siguiente ejemplo vincula la animación "ejemplo" al elemento <div>. La animación durará 4 segundos y cambiará gradualmente el color de fondo del elemento <div> de "rojo" a "amarillo":
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: example;
animation-duration: 4s;
}
@keyframes example {
from {background-color: red;}
to {background-color: yellow;}
}
Tenemos que dar un valor en s a animation-duration: s; sino no existirá animación, pues predeterminadamente el valor es 0s.
/ The element to apply the animation to /div { width: 100px; height: 100px; position: relative; background-color: red; animation-name: example; animation-duration: 4s;
}
@keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;}
}
Dentro de div, propiedad animation-delay: 2s;. Crea un retraso de 2s es decir hasta dentro de 2s la animación no sucede. animation-iteration-count: infinite;, por si quieres que la animación sea infinita
Transiciones
.ejemplo1{
width: 100px;
height: 50px;
background: red;
transition: width 2s;
}
.ejemplo1:hover {
width: 300px;
}
<div class="ejemplo">Hola</div>
Borde en texto (stroke)
Selector: .stroke CSS
.stroke {
color: red ; / color de las letras/
-webkit-text-stroke: 2px red; / color del borde/
text-shadow: -1px -1px 1px #000, 2px 2px 2px #000, -2px 2px 2px #000, 2px -2px 2px #000;
}
HTML:
<div class= “stroke”> … </div>
{{clickable:Tags}} (poner tags de la nota pero si clicas te lleva al explorador, se crea con el addon pertinente).
MÓDULO 6 - Códigos; HTML, CSS, Latex, MathJax y JavaScript - Anki Macrocurso