有人对如何将 filter:blur 应用于“文本A,B,C等”有想法吗?行,但保持列表编号(1、2、3-圈)不模糊吗?
首先,我尝试执行以下操作(请参见下面的示例代码):
我在。意义类中添加了 filter:blur(9px); (这同时负责文本和数字),并使所有内容都变得模糊({{3 }})。然后,我尝试通过在 .ol.circle> li:before 类中添加 filter:blur(0)来中和模糊列表编号。 ,作为“:before”伪类负责列表号(位于文本之前)。没有结果-数字保持模糊。
然后我从课程中删除了模糊,并决定尝试通过 HTML 部分解决问题。所以我直接将模糊 插入文本行:
<li style="padding-left:1em;filter: blur(9px)">Text A</li>
这又使两者都模糊了-文本及其列表号。我不知所措...:-(
.meaning {
font-family: Tahoma, Geneva, sans-serif;
width: auto;
text-align: left;
color: #1f2c60;
text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);
font-size: 20px;
font-weight: 600;
filter: blur(9px);
}
ol.circle > li:before {
margin-right: 1em;
margin-left: -2.77em;
content: counter(item);
background: #1f2c60;
border-radius: 100%;
color: white;
width: 1.7em;
text-align: center;
display: inline-block;
filter: blur(0);
}
已解决!!请参见Brilliand的评论。 Code at JSFiddle: clean - no blur正是我想要的。谢谢!
答案 0 :(得分:1)
尝试添加此CSS:
text-shadow: none;
此处(最后一项),这样数字将不会具有文本阴影效果。文本->文本A ... B ...将保持模糊
.meanings_and_examples {
display: flex;
flex-direction: column;
}
ol.circle {
list-style-type: none;
}
ol.circle > li {
counter-increment: item;
margin-bottom: 2px;
}
ol.circle > li:before {
margin-right: 1em;
margin-left: -2.77em;
content: counter(item);
background: #1f2c60;
border-radius: 100%;
color: white;
width: 1.7em;
text-align: center;
display: inline-block;
text-shadow: none;/*add this*/
}
ul {
list-style-type: none;
padding: 0;
padding-bottom: 10px;
padding-left: 1em;
}
li {
line-height: 1.6;
}
.meaning {
font-family: Tahoma, Geneva, sans-serif;
width: auto;
text-align: left;
color: #1f2c60;
text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);
font-size: 20px;
font-weight: 600;
}
.example {
width: auto;
text-align: left;
font-style: italic;
font-weight: 400;
}
<div class="meanings_and_examples">
<div class="meaning">
<ol class="circle">
<li style="padding-left:1em">Text A</li>
<div class="example">
<ul>
<li>Text B</li>
</ul>
</div>
<li style="padding-left:1em">Text C</li>
<div class="example">
<ul>
<li>Text D</li>
</ul>
</div>
<li style="padding-left:1em">Text E</li>
<div class="example">
<ul>
<li>Text F</li>
</ul>
</div>
</ol>
</div>
</div>
答案 1 :(得分:1)
模糊滤镜会模糊您对其应用的整个元素。它不是继承的属性,因此您不能为特定的子元素覆盖它;您只需要将其应用于正确的事物即可。
li
元素的结构如下:
<li style="padding-left:1em">
::before
"Text A"
</li>
(从Chrome的开发工具复制)
如何将样式仅应用于该结构的文本部分,而不包括:: before?你不能没有那种结构。但是,如果您将结构更改为此:
<li style="padding-left:1em">
::before
<span class="blur-this">Text A</span>
</li>
现在,您可以仅将模糊范围作为目标:
.blur-this {
filter: blur(9px);
}