


How to change the text selection color on a webpage using the ::selection pseudo-element with CSS Selectors?
Jul 04, 2025 am 03:01 AMWant to customize the style of text selected by users in the web page? It can be implemented through the ::selection pseudo-element of CSS. ::selection allows setting some properties such as background color, font color, etc. of selected text, but does not support borders or gradient backgrounds. When used, you can directly apply to specific tags or classes, such as p::selection or .highlight::selection. To ensure compatibility, it is recommended to add the -webkit- prefix to suit more devices. In addition, different selectors can be used to set different selection effects for various elements to improve the overall aesthetics of the page and user experience.
Want to change the color of the text on the web page? By default, the browser will highlight the user selected text with the color set by the system, but through the ::selection
pseudo-element of CSS, you can customize this part of the style.

What is ::selection
?
::selection
is a CSS pseudo-element that allows you to set specific styles for text selected by the user on the web page. For example, change the background color, font color, or even bold or adjust the font size.

It should be noted that this pseudo-element only supports a portion of CSS attributes:
-
color
-
background-color
-
cursor
-
caret-color
-
outline
and some text-related properties (such astext-shadow
is also supported in some browsers)
Others like borders and gradient backgrounds are not possible.
How to use ::selection
?
The basic syntax is very simple. Just add ::selection
to the selector:

p::selection { background-color: #ff9900; color: #ffff; }
The above code will make the selected text in the paragraph turn orange and the font white.
If you want to apply a unified selection style to the text of the entire page, you can use ::selection
with the wildcard selector:
*::selection { background-color: lightblue; color: darkblue; }
However, be aware that this will affect all elements, including the contents in the buttons and input boxes, and may cause some unexpected effects.
How to deal with compatibility issues?
Although mainstream modern browsers support ::selection
, it is best to add -webkit-
prefix in writing, especially on mobile browsers to be more secure:
p::selection { background-color: #ff9900; color: #ffff; } p::-webkit-selection { background-color: #ff9900; color: #ffff; }
Although most browsers no longer need prefixes, -webkit-
version can still cover more devices, especially older iOS browsers.
Can it be set according to different elements?
sure. You can set different selected styles according to different tags, class names and even status:
.highlight::selection { background-color: yellow; color: black; } .code-block::selection { background-color: #333; color: #0f0; }
In this way, elements with .highlight
class are selected with black characters on yellow background, while .code-block
is a dark gray background with bright green text, which makes the visual distinction obvious and more design-like.
Basically that's it. Using ::selection
can not only make the web style more unified, but also improve the user's reading experience. It is a small change but good effect.
The above is the detailed content of How to change the text selection color on a webpage using the ::selection pseudo-element with CSS Selectors?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Setting the size of HTML text boxes is a very common operation in front-end development. This article explains how to set the size of a text box and provides specific code examples. In HTML, you can use CSS to set the size of a text box. The specific code is as follows: input[type="text"

H5 page production refers to the creation of cross-platform compatible web pages using technologies such as HTML5, CSS3 and JavaScript. Its core lies in the browser's parsing code, rendering structure, style and interactive functions. Common technologies include animation effects, responsive design, and data interaction. To avoid errors, developers should be debugged; performance optimization and best practices include image format optimization, request reduction and code specifications, etc. to improve loading speed and code quality.

How to adjust WordPress themes to avoid misaligned display requires specific code examples. As a powerful CMS system, WordPress is loved by many website developers and webmasters. However, when using WordPress to create a website, you often encounter the problem of theme misalignment, which affects the user experience and page beauty. Therefore, it is very important to properly adjust your WordPress theme to avoid misaligned display. This article will introduce how to adjust the theme through specific code examples.

H5 page production process: design: plan page layout, style and content; HTML structure construction: use HTML tags to build a page framework; CSS style writing: use CSS to control the appearance and layout of the page; JavaScript interaction implementation: write code to achieve page animation and interaction; Performance optimization: compress pictures, code and reduce HTTP requests to improve page loading speed.

In Angular app, how to change the color of the icon when the mouse is hovered over it? Many developers will encounter needs when building applications using Angular...

Dynamic web element crawling problem: dealing with XPath and Class name changes, many crawler developers will encounter a difficult problem when crawling dynamic web pages: the goal...

How to solve the display problem caused by user agent style sheets? When using the Edge browser, a div element in the project cannot be displayed. After checking, I posted...

The :not() selector can be used to exclude elements under certain conditions, and its syntax is :not(selector) {style rule}. Examples: :not(p) excludes all non-paragraph elements, li:not(.active) excludes inactive list items, :not(table) excludes non-table elements, div:not([data-role="primary"]) Exclude div elements with non-primary roles.
