【问题标题】:Removing CSS "filter: blur" effect - doesn't work删除 CSS“过滤器:模糊”效果 - 不起作用
【发布时间】:2019-10-11 17:34:49
【问题描述】:

有没有人知道如何将 filter:blur 应用于“文本 A、B、C 等”?行,但保持列表数字(1、2、3 - 圈起来)不模糊

首先我尝试执行以下操作(请参阅下面的示例代码):

我添加了 filter: blur(9px);.meaning 类(负责两者 - 文本和数字),我把所有东西都模糊了(see the screenshot )。然后我尝试通过将 filter: blur(0) 添加到 .ol.circle > li:before 类(其中, 作为一个 ":before" 伪类负责列出文本之前的数字)。没有结果 - 数字一直很模糊。

然后我从类中删除了模糊,并决定尝试通过 HTML 部分解决问题。所以我将模糊 直接 插入到带有文本的行中:

<li style="padding-left:1em;filter: blur(9px)">Text A</li>

这再次模糊了 both - 文本及其列表编号。我不知道该怎么办... :-(

Code at JSFiddle: clean - no blur

.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 的评论。 This 正是我想要的。谢谢!

【问题讨论】:

  • 对不起,伙计们,也许我从一开始就不清楚 - 混乱不是“阴影”,而是“过滤器:模糊”。我需要从列表编号中删除模糊。我已经更新了问题(代码、屏幕截图、文本本身)以使其更加清晰。
  • 您无法删除过滤器,如果您将过滤器应用于元素,它将应用于其所有内容并且您无法删除它。您需要将特定元素定位到您想要过滤器的位置
  • 是的,你是对的,但是当我将过滤器应用于 .meaning 类时,模糊效果也会(出于某种原因)影响 ol.circle 类(这很奇怪)。当我尝试禁用 ol.circle 的过滤器时(通过 filter: blur(0); 命令),模糊不会消失。这就是我要解决的问题...
  • 没有模糊效果。见截图:screenshot.how/ElL9G3
  • 是的,我在那里放置了一个 clean 版本。添加模糊的示例代码在帖子的底部。

标签: html css blur css-filters


【解决方案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);
}

【讨论】:

    【解决方案2】:

    尝试添加这个 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>

    【讨论】:

    • 谢谢,但请。请参阅对问题的评论-问题不在于阴影。 :-(
    猜你喜欢
    • 2015-12-05
    • 2017-05-18
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 1970-01-01
    相关资源
    最近更新 更多