aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/css/_colon_target/index.html
blob: bb426f225dae40342342064af6af55a56eebaac7 (plain)
1
2
3
4
5
6
7
8
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
---
title: ':target'
slug: 'Web/CSS/:target'
tags:
  - CSS
  - Layout
  - Pseudo clase CSS
  - Referencia
  - Web
translation_of: 'Web/CSS/:target'
---
<div>{{CSSRef}}</div>

<p>La <a href="/es/docs/Web/CSS/Pseudo-classes">pseudo-clase</a> <strong><code>:target</code></strong> de <a href="/es/docs/Web/CSS">CSS</a> representa un elemento único (el <em>elemento objetivo</em>) con un {{htmlattrxref("id")}} que coincide con el fragmento de la URL.</p>

<pre class="brush: css no-line-numbers">/* Selecciona un elemento con una ID que coincida con el fragmento de la URL actual */
:target {
  border: 2px solid black;
}</pre>

<p>Por ejemplo, la siguiente URL tiene un fragmento (indicado por el signo #) que apunta a un elemento llamado <code>section2</code>:</p>

<pre>http://www.example.com/index.html#section2</pre>

<p>El siguiente elemento sería seleccionado por un selector <code>:target</code> cuando la URL actual sea igual a la anterior:</p>

<pre class="brush: html">&lt;section id="section2"&gt;Ejemplo&lt;/section&gt;</pre>

<h2 id="Sintaxis">Sintaxis</h2>

<pre class="syntaxbox">{{csssyntax}}</pre>

<h2 id="Ejemplos">Ejemplos</h2>

<h3 id="Una_tabla_de_contenido">Una tabla de contenido</h3>

<p>La pseudo-clase <code>:target</code> se puede usar para resaltar la parte de una página a la que se ha vinculado desde una tabla de contenido.</p>

<h4 id="HTML">HTML</h4>

<pre class="brush: html">&lt;h3&gt;Tabla de contenido&lt;/h3&gt;
&lt;ol&gt;
 &lt;li&gt;&lt;a href="#p1"&gt;¡Salta al primer párrafo!&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#p2"&gt;¡Salta al segundo párrafo!&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="#nowhere"&gt;Este enlace no va a ninguna parte,
   porque el objetivo no existe.&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Mi artículo divertido&lt;/h3&gt;
&lt;p id="p1"&gt;Puede orientar elegir como blanco &lt;i&gt;este párrafo&lt;/i&gt; utilizando un
  fragmento de URL. ¡Haz clic en el enlace de arriba para probar!&lt;/p&gt;
&lt;p id="p2"&gt;Este es &lt;i&gt;otro párrafo&lt;/i&gt;, también accesible
  desde los enlaces de arriba. ¿No es encantador?&lt;/p&gt;
</pre>

<h4 id="CSS">CSS</h4>

<pre class="brush: css">p:target {
  background-color: gold;
}

/* Agrega un pseudo-elemento dentro del elemento de destino */
p:target::before {
  font: 70% sans-serif;
  content: "►";
  color: limegreen;
  margin-right: .25em;
}

/* Estilo de elementos en cursiva dentro del elemento de destino */
p:target i {
  color: red;
}</pre>

<h4 id="Resultado">Resultado</h4>

<p>{{EmbedLiveSample('Una_tabla_de_contenido', 500, 300)}}</p>

<h3 id="CSS-Puro_lightbox">CSS-Puro lightbox</h3>

<p>Puede usar la pseudo-clase <code>:target</code> para crear un lightbox sin usar JavaScript. Esta técnica se basa en la capacidad de los enlaces de anclaje para señalar elementos que están inicialmente ocultos en la página. Una vez segmentado, el CSS cambia su <code>display</code> para que se muestren.</p>

<div class="note"><strong>Nota:</strong> Un CSS-Puro lightbox más completo basado en la pseudoclase <code>:target</code> está <a href="https://github.com/madmurphy/takefive.css/">disponible en GitHub</a> (<a href="https://madmurphy.github.io/takefive.css/">demo</a>).</div>

<h4 id="HTML_2">HTML</h4>

<pre class="brush: html">&lt;ul&gt;
  &lt;li&gt;&lt;a href="#ejemplo1"&gt;Abrir ejemplo #1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="#ejemplo2"&gt;Abrir ejemplo #2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="lightbox" id="ejemplo1"&gt;
  &lt;figure&gt;
    &lt;a href="#" class="close"&gt;&lt;/a&gt;
    &lt;figcaption&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit.
      Donec felis enim, placerat id eleifend eu, semper vel sem.&lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;div class="lightbox" id="ejemplo2"&gt;
  &lt;figure&gt;
    &lt;a href="#" class="close"&gt;&lt;/a&gt;
    &lt;figcaption&gt;Cras risus odio, pharetra nec ultricies et,
      mollis ac augue. Nunc et diam quis sapien dignissim auctor.
      Quisque quis neque arcu, nec gravida magna.&lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;</pre>

<h4 id="CSS_2">CSS</h4>

<pre class="brush: css">/* lightbox sin abrir */
.lightbox {
  display: none;
}

/* lightbox abierto */
.lightbox:target {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Contenido de Lightbox */
.lightbox figcaption {
  width: 25rem;
  position: relative;
  padding: 1.5em;
  background-color: lightpink;
}

/* Botón Cerrar */
.lightbox .close {
  position: relative;
  display: block;
}

.lightbox .close::after {
  right: -1rem;
  top: -1rem;
  width: 2rem;
  height: 2rem;
  position: absolute;
  display: flex;
  z-index: 1;
  align-items: center;
  justify-content: center;
  background-color: black;
  border-radius: 50%;
  color: white;
  content: "×";
  cursor: pointer;
}

/* superposición Lightbox */
.lightbox .close::before {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  position: fixed;
  background-color: rgba(0,0,0,.7);
  content: "";
  cursor: default;
}</pre>

<h4 id="Resultado_2">Resultado</h4>

<p>{{EmbedLiveSample('CSS-Puro_lightbox', 500, 220)}}</p>

<h2 id="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
   <th scope="col">Estado</th>
   <th scope="col">Comentarios</th>
  </tr>
  <tr>
   <td>{{SpecName("HTML WHATWG", "browsers.html#selector-target", ":target")}}</td>
   <td>{{Spec2("HTML WHATWG")}}</td>
   <td>Define la semántica específica de HTML.</td>
  </tr>
  <tr>
   <td>{{SpecName("CSS4 Selectors", "#the-target-pseudo", ":target")}}</td>
   <td>{{Spec2("CSS4 Selectors")}}</td>
   <td>Ningún cambio.</td>
  </tr>
  <tr>
   <td>{{SpecName("CSS3 Selectors", "#target-pseudo", ":target")}}</td>
   <td>{{Spec2("CSS3 Selectors")}}</td>
   <td>Definición Inicial.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilidad_con_navegadores">Compatibilidad con navegadores</h2>

<div>


<p>{{Compat("css.selectors.target")}}</p>
</div>

<h2 id="Ver_también">Ver también</h2>

<ul>
 <li><a href="/es/docs/Using_the_:target_selector">Usando la pseudoclase :target en selectores</a></li>
</ul>