2013-10-13 3 views
1

Моя цель - сделать тег p с помощью show класс, который отображается при отображении span (с текстом «Показать текст»). Я попытался сделать это, используя псевдоселектор :focus, но используя этот метод делает тег p отображаться только до щелчка по нему, где тег p снова скрывается.Показать другой элемент при щелчке по тексту или сделать: отображение фокуса после потери фокуса

Есть ли способ сделать селекторный дисплей :focus даже после щелчка (или) есть ли другой/лучший способ (без использования JS), чтобы отобразить p, когда нажата кнопка «Показать меня», и сделайте так, чтобы после нажатия снаружи?

Fiddle Demo

HTML КОД

<span class="span1" tabindex="0">Show Me</span> 
<p class="show" >This will show on click</p> 

CSS КОД

body { 
    display: block; 
} 
.show { 
    display: none; 
} 
.span1:focus ~ .show { 
    display: block; 
} 
+0

Там бы другие способы для достижения этой цели, но не делая ' : фокус 'палка, потому что это не то, что это псевдо существует, верно? – Harry

+0

Я не могу думать ни о каких других способах, кроме использования JS, который я хочу предотвратить. –

+1

[This] (http://jsfiddle.net/Zsnqe/1/) - это одна из возможностей, но включает изменение разметки. Не зная, в чем смысл использования, я бы не рекомендовал это как ответ. – Harry

ответ

1

:focus псевдо-класса не будет работать, потому что, как именование указывает, что это применимо только тогда, когда в центре внимания на элементе, и нет никакого способа сделать фокус «палкой» даже после того, как мы щелкнем в другом месте.

Альтернативный способ достижения этого будет заключаться в использовании псевдо-класса/селектора :target[1]. Это сделало бы отображение p всякий раз, когда будет нажата ссылка, так как это считается «целью».

body { 
 
    display: block; 
 
} 
 
.show { 
 
    display: none; 
 
} 
 
#content:target { 
 
    display: block; 
 
}
<a class="span1" href='#content'>Show Me</a> 
 

 
<p class="show" id='content'>This will show on click</p>


[1] - :target селектор не поддерживается IE < = 8.

Смежные вопросы