我使用::selection
更改了文本高亮颜色,这在我的页面中非常有用。但是,我发现Chrome的行为与FF不同,后者使用默认的蓝色突出显示<br>
,而不是我为所有元素设置的颜色。 FF不会高亮显示<br>
,因此效果很好。
我试图覆盖::selection
的{{1}},但不起作用;试图使用<br>
,也不起作用;试过user-select:none;
,这让我的display:none;
全部消失了......
有什么想法吗?
答案 0 :(得分:2)
我认为您需要阅读this question with all its answers。
顺便说一下,如果您需要在Chrome中模拟此行为,我认为您可以使用<br/>
模拟<span>
。像这样:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
p.normal::selection {
background:#cc0000;
color:#ff0;
}
p.normal span::selection {
background:#cc00ff;
color:#ff0;
}
p.normal span {
width:100%;
clear:left;
display: block;
height: 1em;
}
p.moz::-moz-selection {
background:#cc0000;
color:#ff0;
}
p.webkit::-webkit-selection {
background:#cc0000;
color:#ff0;
}
</style>
</head>
<body>
<p class="normal">Hello Normal
<span></span>
<span></span>
<span></span>
How are you?
</p>
<p class="moz">Hello Mozilla
<br/>
<br/>
<br/>
How are you?
</p>
<p class="webkit">Hello Webkit
<br/>
<br/>
<br/>
How are you?
</p>
</body>
</html>
修改强>
经过多次测试后,我得出结论,要复制Chrome中的行为,您需要一个复制this styles的JavaScript。
<强> EDIT2:强>
要删除第二行中的粉色边框,我会再创建一个demo(我认为它更清晰)。
答案 1 :(得分:1)
您可以像这样在CSS中将所有<br>
设置为不可选择。
br
{
-webkit-user-select: none; /* Safari */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+/Edge */
user-select: none; /* Standard */
}
<p>Run the snippet to see for yourself.</p>
<br>
<p>See?</p>
答案 2 :(得分:0)
<br>
嵌套为<p>
::selection {
background: chartreuse;
}
div {
padding: .3em;
}
div + div {
border-top: 1px solid lightgray;
}
p {
margin: 0;
}
code:before {
content: "<";
}
code:after {
content: ">";
}
<div>
<p>Layout is fine</p>
<br>
<p>but selection <del>isn't</del> <ins>wasn't (fixed in Chrome as of v 59.0.3071.115 or earlier)</ins></p>
</div>
<div>
<p>One <code>br</code> in it's own <code>p</code> between this <code>p</code> </p>
<p><br></p>
<p>and this one</p>
</div>
<div>
<p>Two <code>br</code>s nested in the end of this <code>p</code><br><br></p>
<p>No <code>br</code>s in this <code>p</code>, and nothing between the <code>p</code></p>
</div>
<div>
<p>No <code>br</code>s in this <code>p</code>, and nothing between the <code>p</code>s</p>
<p><br>One <code>br</code>s nested in the start of this <code>p</code></p>
</div>
答案 3 :(得分:0)
您可以使用<hr/>
替换<br />
,然后将其不透明度设置为0.赞here。