22 | Esto es normal y esto es un subíndice: sub
23 | Esto es normal y esto es un superíndice: sub
24 |
25 |
26 |
27 | Loren ipsum dolor sit amet consectetur adipisicing elit. Facere dolore laboriosam, ea
28 | adipisci ducims deleniti recusandae laborum qui debitis sequi voluptatum eveniet autem
29 | eligendi resciunt est aspernatur comodi reiniciendis aliquam.
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/pract2/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | Las transiciones necesitan un evento que las dispare, no se pueden ejecutar por sí solas
3 |
4 | Existen cuatro propiedas de las transiciones
5 |
6 | transition-property: Establece la propiedad que se va a animar.
7 | Acepta los valores: all | none | propiedad [, propiedad]
8 |
9 | transition-duration: Establece la duración de la transición, si hubiera más de una se ponen separadas por comas.
10 | Acepta valores en segundos "s" y en milisegundos "ms"
11 |
12 | transition-delay: Establece el retraso que tendrá la transición antes de empezar
13 |
14 | transition-timing-function: Establece la forma en la que se moverá la transición en cada una de las interpolaciones
15 | Acepta los valores: ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | steps() | cubic-bezier()
16 |
17 | Tenemos un shorthand que agrupa estas 4 propiedades
18 | transition: transition-property transition-duration transition-delay transition-time-function
19 | */
20 |
21 | body {
22 | margin: 0;
23 | display: flex;
24 | justify-content: center;
25 | align-items: center;
26 | min-height: 100vh;
27 | }
28 |
29 | .box {
30 | width: 200px;
31 | height: 200px;
32 | background-color: royalblue;
33 | display: flex;
34 | justify-content: center;
35 | align-items: center;
36 | font-size: 3rem;
37 | color: white;
38 | transition-property: background-color, color;
39 | transition-duration: 1s;
40 | transition-delay: 0s, 1s;
41 | }
42 |
43 | .box:hover {
44 | background-color: green;
45 | color: black;
46 | }
47 |
--------------------------------------------------------------------------------
/pract3/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | Las transformaciones pueden ser de dos tipos, 2D y 3D
3 | Para ambas tenemos una sola propiedad que recibe funciones como valor.
4 |
5 | Transformaciones 2D
6 |
7 | transform:
8 | translate(x | x, y) | translateX() | translateY()
9 | valores positivos-> derecha abajo
10 | valores negativos-> izquierda arriba
11 |
12 | scale(x = y | x,y) | scaleX() | scaleY()
13 |
14 | skew(x | x,y) | skewX(angle) | skewY(angle)
15 |
16 | rotate(angle) -> Tenemos 4 formas de dar ángulos en CSS
17 | deg (360deg) -> grados sexagesimales
18 | grad (400grad)-> es una unidad de medida de ángulos planos
19 | rad (6.2832rad)-> es una unidad de ángulo en el plano en el SI
20 | turn (1turn) -> turn es el número de vueltas
21 |
22 | Cuando usamos angulos:
23 | valores positivos-> sentido horario
24 | valores negativos-> sentido antihorario
25 |
26 | */
27 |
28 | body {
29 | margin: 0;
30 | display: flex;
31 | justify-content: center;
32 | align-items: center;
33 | min-height: 100vh;
34 | }
35 |
36 | .box,
37 | .box-2 {
38 | width: 50px;
39 | height: 50px;
40 | background-color: royalblue;
41 | display: flex;
42 | justify-content: center;
43 | align-items: center;
44 | /* font-size: 3rem; */
45 | margin: 0 1rem;
46 | color: white;
47 | transition: transform 0.5s;
48 | /* transition: left 0.5s;
49 | position: relative;
50 | left: 0; */
51 | }
52 |
53 | .box:hover {
54 | background-color: green;
55 | color: black;
56 | /* transform: translate(-100%, -100%); */
57 | /* transform: scale(2); */
58 | /* transform: rotate(180deg); */
59 | transform: skew(20deg);
60 | /* left: 25%; */
61 | }
62 |
--------------------------------------------------------------------------------
/Practica3/Ejercicio3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Document
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/pract4/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | Transition timing function
3 |
4 | ease significa desacelerar/frenar
5 |
6 | ease: La transición comienza lentamente, acelera bruscamente y luego disminuye lentamente hacia el final.
7 |
8 | ease-in: La transición comienza lentamente, y luego se acelera progresivamente hasta el final.
9 |
10 | ease-out: La animación comienza abruptamente y luego se ralentiza progresivamente hacia el final.
11 |
12 | ease-in-out: La animación comienza lentamente, se acelera y luego se ralentiza hacia el final.
13 |
14 | linear: La transición se mueve de principio a fin a una velocidad constante.
15 |
16 | función calc: Nos sirve para hacer cálculos.
17 | calc(value operation value...)
18 |
19 | Shorthand transition
20 |
21 | transition: 2s transform ease-in
22 | transition: transform 2s ease-in
23 | transition: ease-in transform 2s
24 | */
25 |
26 | body {
27 | margin: 0;
28 | }
29 |
30 | .container {
31 | background-color: salmon;
32 | }
33 |
34 | .box {
35 | width: 80px;
36 | height: 60px;
37 | font-size: 0.8em;
38 | background-color: royalblue;
39 | margin: 2rem 0;
40 | display: flex;
41 | align-items: center;
42 | justify-content: center;
43 | /* transition-property: transform; */
44 | /* transition-duration: 2s; */
45 | }
46 |
47 | .container:hover .box {
48 | transform: translateX(calc(100vw - 100%));
49 | /* transition: transform 2s 1s ease-out; */
50 | }
51 |
52 | .ease {
53 | transition-timing-function: ease;
54 | }
55 | .ease-in {
56 | transition-timing-function: ease-in;
57 | }
58 | .ease-out {
59 | transition-timing-function: ease-out;
60 | }
61 | .ease-in-out {
62 | transition-timing-function: ease-in-out;
63 | }
64 | .linear {
65 | transition-timing-function: linear;
66 | }
67 |
--------------------------------------------------------------------------------
/pract8/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | Las animaciones funcionan de una forma similar a las transiciones, pero con la principal diferencia de que estas no necesitan un evento para iniciarse, son automáticas.
3 |
4 | Las animaciones tienen varias propiedades
5 | animation-name: nombre de la animación, es obligatoria
6 | animation-duration: duración de la animación, es obligatoria
7 | animation-iteration-count: establece el número de veces que queremos repetir la animación
8 | https://developer.mozilla.org/es/docs/Web/CSS/animation
9 |
10 | Los keyframes sirven para determinar las diferentes fases de la animación. Son obligatorios.
11 | Se establecen con @keyframes nombreAnimación{}
12 | Dentro tenemos que poner los selectores de tiempo, tenemos varias opciones
13 | https://developer.mozilla.org/es/docs/Web/CSS/@keyframes
14 | */
15 | body {
16 | margin: 0;
17 | background-color: #2a363b;
18 | font-family: sans-serif;
19 | min-height: 100vh;
20 | display: grid;
21 | place-items: center;
22 | }
23 |
24 | .box {
25 | width: 100px;
26 | height: 100px;
27 | background-color: red;
28 | position: relative;
29 | transform: rotate(45deg);
30 | animation-name: beat;
31 | animation-duration: 2s;
32 | animation-iteration-count: infinite;
33 | }
34 |
35 | .box::before,
36 | .box::after {
37 | content: "";
38 | display: block;
39 | position: absolute;
40 | width: 100px;
41 | height: 100px;
42 | background-color: red;
43 | border-radius: 50%;
44 | }
45 |
46 | .box::before {
47 | top: 0;
48 | left: -50px;
49 | }
50 |
51 | .box::after {
52 | top: -50px;
53 | left: 0;
54 | }
55 | @keyframes beat {
56 | 0% {
57 | transform: rotate(45deg) scale(1);
58 | }
59 |
60 | 50% {
61 | transform: rotate(45deg) scale(2);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/pract9/styles.css:
--------------------------------------------------------------------------------
1 | /*
2 | https://developer.mozilla.org/es/docs/Web/CSS/animation
3 |
4 | Las animaciones tienen más propiedades:
5 |
6 | animation-play-state: Establece si una animación está en ejecución o en pausa. Acepta los valores: running | paused
7 |
8 | animation-delay: Establece el tiempo de retardo que debe transcurrir antes de comenzar la animación.
9 |
10 | animation-direction: Establece el modo en el que se va a reproducir la animación.
11 | Acepta los valores: normal | reverse | alternate
12 |
13 | animation-timing-function: Establece la forma en la que se moverá la animación en cada una de las interpolaciones.
14 | Acepta los valores: ease | linear | ease-in | ease-out | ease-in-out | steps(n,[direction]) | cubic-bezier()
15 |
16 | animation-fill-mode: Establece el modo en que una animación CSS aplica sus estilos. Acepta los valores:
17 | none: La animación no aplicará los estilos ni antes ni después de su ejecución.
18 | forwards: El objeto sobre el que se aplica la animación quedará con los valores y estilos que le aplique el último keyframe de la ejecución de la animación
19 | backwards: La animación aplicará los valores definidos en el primer keyframe tan pronto como se aplique al objeto, y los retendrá durante el tiempo de animation-delay. El primer keyframe dependerá del valor de animation-direction
20 | both: Durante el período definido por animation-delay, la animación aplicará los valores de propiedad definidos en el fotograma clave que comenzará la primera iteración de la animación.
21 |
22 | animation: name duration timing-function delay iteration-count fill-mode;
23 | */
24 |
25 | body {
26 | margin: 0;
27 | min-height: 100vh;
28 | /* animation-name: background; */
29 | /* animation-duration: 5s; */
30 | background-color: royalblue;
31 | /* animation-fill-mode: both; */
32 | /* animation-play-state: paused; */
33 | /* animation-delay: 2s; */
34 | /* animation-iteration-count: 3; */
35 | /* animation-timing-function: steps(4); */
36 |
37 | animation: background 5s steps(4) 2s 3 both;
38 | }
39 |
40 | @keyframes background {
41 | 0% {
42 | background-color: greenyellow;
43 | }
44 |
45 | 100% {
46 | background-color: red;
47 | }
48 | }
49 |
50 | /* .box {
51 | height: 200px;
52 | background-color: salmon;
53 | display: flex;
54 | align-items: center;
55 | }
56 |
57 | .children {
58 | width: 100px;
59 | height: 100px;
60 | background-color: royalblue;
61 | animation-name: translate;
62 | animation-timing-function: linear;
63 | animation-duration: 3s;
64 | animation-fill-mode: forwards;
65 | animation-direction: alternate-reverse;
66 | animation-iteration-count: infinite;
67 | }
68 |
69 | @keyframes translate {
70 | 100% {
71 | transform: translateX(calc(100vw - 100%));
72 | }
73 | } */
74 |
--------------------------------------------------------------------------------
/pract6/styles.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | background-color: #2a363b;
4 | font-family: sans-serif;
5 | }
6 |
7 | .title {
8 | text-align: center;
9 | color: #aaa;
10 | }
11 |
12 | .buttons {
13 | width: 100%;
14 | margin-left: auto;
15 | margin-right: auto;
16 | display: flex;
17 | flex-direction: column;
18 | align-items: center;
19 | justify-content: space-between;
20 | }
21 |
22 | .button {
23 | background: none;
24 | outline: none;
25 | border: 2px solid #ffd8d5;
26 | font-size: 1.3rem;
27 | color: #ff847c;
28 | padding: 0.5rem 1rem;
29 | cursor: pointer;
30 | position: relative;
31 | overflow: hidden;
32 | width: 175px;
33 | margin-bottom: 1rem;
34 | }
35 |
36 | .button--fill {
37 | transition: color 0.4s;
38 | }
39 |
40 | .button--fill:hover {
41 | color: #2a363b;
42 | }
43 |
44 | .button--fill::before {
45 | content: "";
46 | position: absolute;
47 | display: block;
48 | width: 100%;
49 | height: 100%;
50 | top: 0;
51 | left: 0;
52 | background-color: #ff847c;
53 | transform: translateX(-100%);
54 | transition: transform 0.4s;
55 | z-index: -1;
56 | }
57 |
58 | .button--fill:hover::before {
59 | transform: translateX(0);
60 | }
61 |
62 | .button--cross {
63 | transition: color 0.4s;
64 | }
65 |
66 | .button--cross:hover {
67 | color: #2a363b;
68 | }
69 |
70 | .button--cross::before,
71 | .button--cross::after {
72 | content: "";
73 | position: absolute;
74 | display: block;
75 | width: 100%;
76 | height: 100%;
77 | top: 0;
78 | left: 0;
79 | background-color: #ff847c;
80 | transition: transform 0.6s linear;
81 | z-index: -1;
82 | }
83 | .button--cross::before {
84 | transform: rotateY(90deg);
85 | }
86 |
87 | .button--cross::after {
88 | transform: rotateX(90deg);
89 | }
90 |
91 | .button--cross:hover::before,
92 | .button--cross:hover::after {
93 | transform: rotate(0deg);
94 | }
95 |
96 | .button--grow {
97 | letter-spacing: -1px;
98 | transition: box-shadow 0.5s, letter-spacing 0.5s;
99 | }
100 |
101 | .button--grow:hover {
102 | letter-spacing: 5px;
103 | box-shadow: 0 0 0 5px #ff847c;
104 | }
105 |
106 | .button--scale-text {
107 | transition: color 0.4s;
108 | }
109 |
110 | .button--scale-text:hover {
111 | color: #2a363b;
112 | }
113 |
114 | .button--scale-text::before {
115 | content: attr(data-content);
116 | position: absolute;
117 | display: flex;
118 | align-items: center;
119 | justify-content: center;
120 | top: 0;
121 | left: 0;
122 | width: 100%;
123 | height: 100%;
124 | transform: scale(5);
125 | color: #ff847c;
126 | background-color: #2a363b;
127 | opacity: 0;
128 | transition: transform 0.5s, opacity 0.5s;
129 | }
130 |
131 | .button--scale-text:hover::before {
132 | opacity: 1;
133 | transform: scale(1);
134 | }
135 |
136 | .button--shiney {
137 | transition: color 0.4s;
138 | }
139 |
140 | .button--shiney:hover {
141 | color: #2a363b;
142 | }
143 |
144 | .button--shiney::before,
145 | .button--shiney::after {
146 | content: "";
147 | position: absolute;
148 | display: block;
149 | width: 100%;
150 | height: 100%;
151 | top: 0;
152 | left: 0;
153 | background-color: transparent;
154 | z-index: -1;
155 | }
156 |
157 | .button--shiney:hover::before {
158 | background-color: #7c90ff;
159 | }
160 |
161 | .button--shiney::after {
162 | display: flex;
163 | justify-content: center;
164 | align-items: center;
165 | top: 50%;
166 | height: 30%;
167 | background-color: #fff;
168 | transform: rotate(45deg) translateY(650%);
169 | transition: background-color 0.4s;
170 | }
171 |
172 | .button--shiney:hover::after {
173 | transition: background-color 0.4s, transform 0.6s;
174 | transform: rotate(45deg) translateY(-700%);
175 | }
176 |
--------------------------------------------------------------------------------
/etiquetas/etiquetas.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Document
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
Cantidad de veces te encuentras con líneas que están aparentemente en blanco o que terminan en un
28 | punto concreto, pero que en realidad tienen muchos espacios o tabuladores a continuación. En vez
29 | de darle a Supr una y otra vez, puedes usar esta combinación y desaparecerán todos a partir de
30 | donde tengas el cursor. Una tontería, pero cuando lo descubres ya no puedes dejar de usarlo.
31 |
32 |
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Praesentium sunt in, est quia, sapiente
33 | voluptatibus earum facere vitae nobis, maiores voluptate. Velit fugit, dolore quia id possimus
34 | voluptas pariatur provident.
35 |
36 |
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Praesentium sunt in, est quia, sapiente
37 | voluptatibus earum facere vitae nobis, maiores voluptate. Velit fugit, dolore quia id possimus
38 | voluptas pariatur provident.
39 | Cantidad de veces te encuentras con líneas que están aparentemente en blanco o que terminan en un
40 | punto concreto, pero que en realidad tienen muchos espacios o tabuladores a continuación. En vez
41 | de darle a Supr una y otra vez, puedes usar esta combinación y desaparecerán todos a partir de
42 | donde tengas el cursor. Una tontería, pero cuando lo descubres ya no puedes dejar de usarlo.
43 |
44 | Cantidad de veces te encuentras con líneas que están aparentemente en blanco o que terminan en un
45 | punto concreto, pero que en realidad tienen muchos espacios o tabuladores a continuación. En vez
46 | de darle a Supr una y otra vez, puedes usar esta combinación y desaparecerán todos a partir de
47 | donde tengas el cursor. Una tontería, pero cuando lo descubres ya no puedes dejar de usarlo.
48 |
49 |
50 |
51 |
52 |
53 |
54 |
58 |
59 |
60 |
61 |
62 |