2017-08-09 33 views
2

我想提示用户点击太阳,所以我想把一些文字放在上面。然而,太阳变得模糊,导致文字也变得模糊!如何点击模糊的太阳?

我试图覆盖模糊效果,将文本包装在span中,但似乎div的类的效果占主导地位。任何想法/想法?

HTML:

<div class="sun">Click</div> 

CSS:

.sun { 
    width: 20em; height: 20em; 
    background: #ffff99; 
    border-radius: 10em; 
    animation: flow 10s infinite alternate; 
    transform:translate(-30%, -30%) scale(0.2); 
    -webkit-filter: blur(10px); 
} 

您可以在此Demo现场查看。

+0

箱阴影可能是太阳的替代:用效果模糊https://jsfiddle.net/r3un0bpd/1//unblur的onclick https://jsfiddle.net/r3un0bpd/3 /注意与模糊的差别是否很好 –

+0

不错的选择@GCyrillus,如果你能发表一个答案,整理那个文本,我会赞成它! ;) – gsamaras

+0

好吧,我和我添加了一个CSS模糊效果。 thx的反馈无论如何;) –

回答

2

我创建了一个父DIV并设置position:absolute的跨度:

.sun { 
 
    width: 20em; height: 20em; 
 
    background: #ffff99; 
 
    border-radius: 10em; 
 
    animation: flow 10s infinite alternate; 
 
    transform:translate(-30%, -30%) scale(0.2); 
 
    -webkit-filter: blur(10px); 
 
} 
 
.relative { 
 
    position:relative; 
 
} 
 
.absl { 
 
    position:absolute; 
 
    left:46px; 
 
    top:52px; 
 
}
<div class="relative"> 
 
    <div class="sun"></div> 
 
    <span class="absl">Click</span> 
 
</div>

4

对父元素的模糊效果将应用于子元素,因此您不能以这种方式使用它。

你可以做的是包装与容器的两个元素和它们相对定位到容器元素:

.container { 
 
    position: relative; 
 
} 
 
.sun { 
 
    position: absolute; 
 
    width: 20em; height: 20em; 
 
    background: #ffff99; 
 
    border-radius: 10em; 
 
    animation: flow 10s infinite alternate; 
 
    transform:translate(-30%, -30%) scale(0.2); 
 
    -webkit-filter: blur(10px); 
 
} 
 
.container span { 
 
    position: absolute; 
 
    top: 18px; 
 
    left: 45px; 
 
}
<div class="container"> 
 
    <div class="sun"></div> 
 
    <span style="-webkit-filter: blur(0px)">Click</span> 
 
</div>

+0

你太快兄弟 –

+0

@gsamaras为什么我没有得到正确的答案? – Dekel

+0

@Dekel为了平衡,并且因为其他答案已经整理了文本。 – gsamaras

1

您也可以使用box-shadow并重新缩放量程以便读取;)。

添加上点击一个肘节效应经由看到来自影子一样模糊效果tabindex

tabindex内容属性允许作者控制的元件是否被认为是可聚焦的,它是否是应该可以使用顺序聚焦导航到达,以及为了顺序聚焦导航的目的,元素的相对顺序是什么。名称“选项卡索引”来自“选项卡”键的常用用途,以导航可聚焦元素。术语“标签”是指通过使用顺序聚焦导航可达到的可聚焦元素向前移动。

.sun:first-child { 
 
    width: 20em; 
 
    height: 20em; 
 
    background: #ffff99; 
 
    box-shadow: inset 0 0 4em rgba(255, 255, 255, 0.8), 0 0 5em 1em #ffff99; 
 
    border-radius: 10em; 
 
    animation: flow 10s infinite alternate; 
 
    transform: translate(-30%, -30%) scale(0.2); 
 
    transition: 0.25s; 
 
} 
 

 
[tabindex] { 
 
    cursor: pointer; 
 
} 
 

 
.sun+.sun { 
 
    width: 20em; 
 
    height: 20em; 
 
    background: #ffff99; 
 
    border-radius: 10em; 
 
    animation: flow 10s infinite alternate; 
 
    transform: translate(-30%, -90%) scale(0.2); 
 
    -webkit-filter: blur(10px); 
 
} 
 

 
span { 
 
    display: inline-block; 
 
    transform: scale(5); 
 
    transform-origin:top left; 
 
} 
 

 
.sun:first-child:focus { 
 
    pointer-events: none; 
 
    box-shadow: inset 0 0 0 rgba(255, 255, 255, 0.8), 0 0 0 0 #ffff99; 
 
} 
 
body { 
 
background:skyblue; /* ;) */
<div class="sun" tabindex="0"><span style="-webkit-filter: blur(0px)">Click to toggle blur</span></div> 
 
<div class="sun"><span style="-webkit-filter: blur(0px)">original</span></div>

+0

令人惊叹!您的代码的哪部分模拟点击? – gsamaras

+0

@gsamaras tabindex属性允许元素捕捉点击事件 –

+0

酷!然后这个'.sun:first-child:focus'进场了吗?对不起,烦扰你,但这可能是我可以使用的解决方案..如果我得到它的工作原理。 =) – gsamaras