Home > Web Front-end > JS Tutorial > How to Create a CSS3 Blurred Text Link Effect

How to Create a CSS3 Blurred Text Link Effect

William Shakespeare
Release: 2025-03-04 01:04:09
Original
273 people have browsed it

Detailed explanation of the effects of fuzzy text in CSS3 and FAQs

Key Points

  • CSS3 can create blur text effects with transparent text colors and text shadows, but not all browsers support the text-shadow attribute. In this case, you can use Modernizr or write custom text shadow detection code as a workaround.
  • A pleasing effect can be achieved for the navigation menu by smoothly blurring the links in and out while hovering or focusing. This involves defining a "blur" class that can be applied to any link and then using a CSS style that can be applied in all browsers.
  • When creating blurred text effects, be sure to pay attention to accessibility and visibility issues. In addition, the amount of blur can be controlled by adjusting the third text shadow attribute (defining the amount of blur). It can be modified to increase or decrease blur effect.

The following is an example of the text effect I saw on Chris Coyier's CSS Tricks website. Blur text can be created in CSS3 by applying transparent text colors and text shadows:

.blur-text {
  color: transparent;
  text-shadow: 0 0 5px https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000;
}
Copy after login
Copy after login

How to Create a CSS3 Blurred Text Link Effect

Unfortunately, not all browsers support text-shadow. IE9 and below will apply transparent colors, but no shadow effect - the text becomes invisible. We have to turn to Modernizr or write our own text shadow detection code. The following JavaScript code attaches the "textshadow" class to the HTML element when the browser supports it. So we can use the CSS selector of ".textshadow .blur-text" to ensure that it is applied only if the effect does not cause bad behavior:

if (document.createElement("detect").style.textShadow === "") {
  document.getElementsByTagName("html")[0].className += " textshadow";
}
Copy after login
Copy after login

Warning: Opera's fuzzy behavior Chrome and Firefox display fuzzy text, but are disabled in IE. However, Opera can be weird; it supports text-shadow, but does not want to apply it to transparent text. This seems to be a mistake, as applying the color of rgba(0,0,0,0) will solve the problem.

Fuzzy link

With some extra CSS3 magic, we can make the links smoothly blur in and out when hovering or focusing. This can be a pleasant effect for the navigation menu. We will define a "blur" class (or "blur in" class) that can be applied to any link. The link will start with blur and return to normal focus when activated. Similarly, we will define the "blur out" class that blurs the text when hovering/focusing, i.e.:

<a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">开始模糊,结束清晰</a>
<a href="https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b">开始清晰,结束模糊</a>
Copy after login

We now need basic CSS styles that apply to all browsers—even those that do not support text-shadow:

a.blur {
  text-decoration: none;
  color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b339;
}

a.blur:hover, a.blur:focus {
  text-decoration: underline;
  color: https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b933;
}
Copy after login

The next set of styles applies to all .blur elements, regardless of whether they have focus or not:

  • We remove the link underline and outline
  • Set the text color to transparent and
  • Apply CSS3 transitions that animate smoothly between no text shadows and full text shadows. The effect starts after 100 milliseconds and is completed after 400 milliseconds.
.blur-text {
  color: transparent;
  text-shadow: 0 0 5px https://www.php.cn/link/93ac0c50dd620dc7b88e5fe05c70e15b000;
}
Copy after login
Copy after login

Finally, we define two text shadow states. The third text shadow attribute defines the "fuzzy amount". It will animate between 0 and 4px, but if more or less blur is required, you can modify it:

if (document.createElement("detect").style.textShadow === "") {
  document.getElementsByTagName("html")[0].className += " textshadow";
}
Copy after login
Copy after login

View the link fuzzy demo page - the source code contains all the required CSS and JavaScript. I hope you find it useful, but be careful about accessibility/visibility issues when using this effect. If you use it elsewhere, I'd love to receive your comments and post the URL.

FAQs for fuzzy text effects in CSS3

(The FAQs part is omitted here because it is too long and is highly repetitive with the original content. FAQs can be selectively retained or reorganized as needed and rewritten in a more concise language.)

The above is the detailed content of How to Create a CSS3 Blurred Text Link Effect. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template