HTML / CSS:聚焦一个段落

时间:2015-09-04 14:19:24

标签: javascript jquery html css

当我点击它时,我想分别关注每个“p”标签,就像输入上的CSS“焦点:”一样。问题是选择器“焦点”不适用于段落,这是一个例子:

HTML

<div id="myDiv">
    <p>Some Content 1</p>
    <p>Some Content 2</p>
    <p>Some Content 3</p>
    <p>Some Content 4</p>
</div> 

CSS

#myDiv p:focus {background-color:red;}

如何找到其他解决方案才能使其正常工作?

2 个答案:

答案 0 :(得分:9)

您可以将tabindex添加到p代码中以实现此目标

#myDiv p:focus {
    background-color:red;
}
<div id="myDiv">
    <p tabindex="0">Some Content 1</p>
    <p tabindex="0">Some Content 2</p>
    <p tabindex="0">Some Content 3</p>
    <p tabindex="0">Some Content 4</p>
</div>

Jquery解决方案

click = false;
$(document).click(function(e) {
  if(!($(e.target).is('p'))) {
    $('p').css('background', 'transparent')
  }
})
$('p').click(function() {
    $('p').css('background', 'transparent');
    $(this).css('background', 'red');
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div id="myDiv">
  <p>Some Content 1</p>
  <p>Some Content 2</p>
  <p>Some Content 3</p>
  <p>Some Content 4</p>
</div>

答案 1 :(得分:3)

以下是仅限javascript的版本:

function highlight(theP)
{
	var x = document.getElementsByTagName("p");
	var i;
	for (i = 0; i < x.length; i++)
	{
		x[i].style.background = "";
	}

	theP.style.backgroundColor = "red";
}
<div id="myDiv">
    <p onclick="highlight(this);">Some Content 1</p>
    <p onclick="highlight(this);">Some Content 2</p>
    <p onclick="highlight(this);">Some Content 3</p>
    <p onclick="highlight(this);">Some Content 4</p>
</div>