Table of Contents
Tips we used in the past
Set a real underline style
Home Web Front-end CSS Tutorial Styling Links with Real Underlines

Styling Links with Real Underlines

Apr 17, 2025 am 10:57 AM

Styling Links with Real Underlines

Before discussing how to style the underscore, let’s first think about a question: Should we use underscores?

In graphic design, underscores are often considered to be inadequate enough. There are better ways to emphasize focus, build hierarchies and distinguish titles.

Butterick's "Practical Typesetting" has clear suggestions:

If you want to use underscores, use bold or italics instead. In special cases, such as the title, you can also consider using all capitals, small capitals, or changing the font size. Still don't believe it? I suggest you find a book, a newspaper or a magazine to see if there is any underlined text. This style is mainly associated with supermarket tabloids.

But the network environment is different. Hyperlinks are the defining characteristics of the Internet; they have been underlined since the birth of the Internet. This is a generally understood convention, and its meaning is very clear - underlined to indicate links .

However, many popular websites have already un-underscore: for example, The New York Times, The New York Magazine, The Washington Post, Bloomberg, Amazon, Apple, GitHub, Twitter, Wikipedia. Google's chief designer Jon Wiley explained in 2014 that removing the underscore from the search results page can create a cleaner look. It is worth noting that most of these sites retain a slightly different bright blue (#0000EE) that has been the default setting for browsers since the birth of the web. While this provides visual tips for most users, it may not be enough to pass the WCAG accessibility compliance test.

Color cannot be used as the only visual means to convey information, indicate actions, prompt responses, or distinguish visual elements. — WCAG 2.1

WCAG does not strictly require underscore for links, but it does recommend doing so. Color blind users need to be able to recognize links. You can differentiate them in other ways, such as using bold font weights. Or you can keep this long-established visual assist feature. But if we were to use underscores, we wanted them to look pretty . Medium designer Marcin Wichar describes the perfect underscore as:

[…] Visible but not overly conspicuous – make people realize what content is clickable but not overly attracting attention. It should be at the right distance from the text, comfortably below the text, and even the descending body occupies the same space.

Traditionally, achieving this requires some CSS tricks .

Tips we used in the past

This is a trick that all developers are familiar with: border-bottom . By using border-bottom to simulate underscores, we can control color and thickness. There is one problem with these pseudo-underscores: the distance from the text is too large. They are located below the letter descending body. You can solve this problem by using line-height , but this will bring about its own problems. Similar technologies utilize box-shadow . Marcin Wichary pioneered the most complex technology, using background-image to simulate underscores. These are all useful tips, but no longer needed.

Set a real underline style

Ultimately, thanks to two new CSS properties, we can distinguish links without sacrificing styles.

  • text-underline-offset controls the position of the underline.
  • text-decoration-thickness controls the thickness of underscores, overscores and strikethroughs.

According to WebKit Blog:

You can also specify from-font for both properties, which will extract the relevant metric values ​​from the font file itself used.

UX agency Clearleft boldly uses (pseudo) underscores to clearly attract people's attention to links with colorful styles. Here is an example of a pseudo-underscore:

 <code>a { text-decoration: none; border-bottom: #EA215A 0.125em solid; }</code>
Copy after login

Note that this pseudo-underscore is clearly located below the descending body of the letter "y":

Here is the same paragraph, using DevTools to apply the same style to the true underscore using the new CSS property:

 <code>a { text-decoration-color: #EA215A; text-decoration-thickness: .125em; text-underline-offset: 1.5px; }</code>
Copy after login

You will notice that I used the em unit in the sample code. The specification strongly recommends using it instead of pixels so that the thickness scales with the font.

These properties have been published in Safari and will appear in Firefox 70.

As Microsoft Edge browser migrates to Chromium, we will eventually get cross-browser support for text-decoration-style property, which provides the following options: solid (default), double, dotted, dotted, and wavy lines. Using these new properties in combination opens up a range of possibilities.

However, perhaps the biggest improvement on the underscore on the web is that it can be achieved without the developers doing anything. In the past, the descending feeling was ruthlessly cut off by underscores, which is far from grace. Developers used to solve this disadvantage by applying text shadows that match the background color. text-decoration-skip-ink provides a better way to leave room for the descent body.

Conveniently, it is set to the new default value for underscores; this means that the appearance of underscores has been improved, and most web developers are still unaware of the existence of this property. If you want the underscore to span the glyph, you can set this property to none .

The above is the detailed content of Styling Links with Real Underlines. 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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1660
14
PHP Tutorial
1260
29
C# Tutorial
1233
24
Google Fonts   Variable Fonts Google Fonts Variable Fonts Apr 09, 2025 am 10:42 AM

I see Google Fonts rolled out a new design (Tweet). Compared to the last big redesign, this feels much more iterative. I can barely tell the difference

How to Create an Animated Countdown Timer With HTML, CSS and JavaScript How to Create an Animated Countdown Timer With HTML, CSS and JavaScript Apr 11, 2025 am 11:29 AM

Have you ever needed a countdown timer on a project? For something like that, it might be natural to reach for a plugin, but it’s actually a lot more

HTML Data Attributes Guide HTML Data Attributes Guide Apr 11, 2025 am 11:50 AM

Everything you ever wanted to know about data attributes in HTML, CSS, and JavaScript.

A Proof of Concept for Making Sass Faster A Proof of Concept for Making Sass Faster Apr 16, 2025 am 10:38 AM

At the start of a new project, Sass compilation happens in the blink of an eye. This feels great, especially when it’s paired with Browsersync, which reloads

How We Created a Static Site That Generates Tartan Patterns in SVG How We Created a Static Site That Generates Tartan Patterns in SVG Apr 09, 2025 am 11:29 AM

Tartan is a patterned cloth that’s typically associated with Scotland, particularly their fashionable kilts. On tartanify.com, we gathered over 5,000 tartan

How to Build Vue Components in a WordPress Theme How to Build Vue Components in a WordPress Theme Apr 11, 2025 am 11:03 AM

The inline-template directive allows us to build rich Vue components as a progressive enhancement over existing WordPress markup.

PHP is A-OK for Templating PHP is A-OK for Templating Apr 11, 2025 am 11:04 AM

PHP templating often gets a bad rap for facilitating subpar code — but that doesn&#039;t have to be the case. Let’s look at how PHP projects can enforce a basic

Programming Sass to Create Accessible Color Combinations Programming Sass to Create Accessible Color Combinations Apr 09, 2025 am 11:30 AM

We are always looking to make the web more accessible. Color contrast is just math, so Sass can help cover edge cases that designers might have missed.

See all articles