Use HTML's data-* attribute to assist in CSS style setting, and state control can be achieved through attribute selectors. 1. Suitable for state management rather than substitute for class; 2. Unified state maintenance through JS and trigger style changes; 3. Pay attention to performance, naming specifications and state synchronization. For example, the button[data-state="active"] controls the button style, or the data-expanded controls the drop-down menu arrow display, making the structure more semantic and improving the efficiency of CSS and JS collaboration.
Using HTML's data-*
attribute to assist in CSS style setting is actually a very practical trick. Although data-*
itself is mainly used for JS, you can position these custom data attributes through attribute selectors in CSS to implement some specific style control.

Why use data-*
instead of class?
Sometimes you may encounter a situation where you want to change the style based on some "state" of the element, such as whether the button is "activated" or "disabled". At this time, you can use class to switch, but if you have maintained these states in JS, directly reading data-*
attribute will be more convenient to manage in a unified manner.
For example:

<button data-state="active">Click me</button>
Then write it in CSS:
button[data-state="active"] { background-color: green; }
This approach is suitable for state controls that do not require frequent animations or complex interactions.

How to use data-*
attribute in CSS
CSS itself cannot dynamically modify the values of data-*
, but they can be matched through the property selector. This means you can apply different styles based on different data-*
values.
Common usages include:
- Control component status (such as
data-loading
,data-disabled
) - Distinguish different types of elements (such as
data-type="primary"
) - Dynamically update properties with JS to trigger style changes
For example:
<div data-role="menu" data-open="true">Menu content</div>
Corresponding to CSS:
div[data-role="menu"][data-open="true"] { display: block; } div[data-role="menu"][data-open="false"] { display: none; }
This writing method allows you to control display and hide by modifying the value of data-open
through JS without changing the DOM structure.
Notes and suggestions
There are a few points to note when using data-*
attribute to cooperate with CSS:
- Don't abuse : It's more suitable for the scenarios of state control classes than to replace class.
- Performance issues : The property selector is slightly slower than the class selector, but it doesn't differ much in modern browsers.
- The naming should be clear : for example,
data-loading
is easier to maintain thandata-l
. - Avoid getting out of sync with JS state : If both JS and CSS rely on the same
data-*
value, remember to synchronize the update.
For example, a drop-down menu component, you may want to add a small icon with an arrow facing up when the menu is expanded, which can be controlled with data-expanded
:
<select data-expanded="false">...</select>
CSS:
select[data-expanded="true"]::after { content: "▼"; }
Of course, this is just a simple diagram. In actual projects, more details such as pseudo-elements and positioning may be needed.
Basically that's it. Using data-*
attributes well can make your HTML structure more semantic and make the collaboration between CSS and JS smoother.
The above is the detailed content of HTML `data-*` Attributes for CSS Styling. 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

The rational use of semantic tags in HTML can improve page structure clarity, accessibility and SEO effects. 1. Used for independent content blocks, such as blog posts or comments, it must be self-contained; 2. Used for classification related content, usually including titles, and is suitable for different modules of the page; 3. Used for auxiliary information related to the main content but not core, such as sidebar recommendations or author profiles. In actual development, labels should be combined and other, avoid excessive nesting, keep the structure simple, and verify the rationality of the structure through developer tools.

The web page structure needs to be supported by core HTML elements. 1. The overall structure of the page is composed of , , which is the root element, which stores meta information and displays the content; 2. The content organization relies on title (-), paragraph () and block tags (such as ,) to improve organizational structure and SEO; 3. Navigation is implemented through and implemented, commonly used organizations are linked and supplemented with aria-current attribute to enhance accessibility; 4. Form interaction involves , , and , to ensure the complete user input and submission functions. Proper use of these elements can improve page clarity, maintenance and search engine optimization.

Client-sideformvalidationcanbedonewithoutJavaScriptbyusingHTMLattributes.1)Userequiredtoenforcemandatoryfields.2)ValidateemailsandURLswithtypeattributeslikeemailorurl,orusepatternwithregexforcustomformats.3)Limitvaluesusingmin,max,minlength,andmaxlen

To use HTML button elements to achieve clickable buttons, you must first master its basic usage and common precautions. 1. Create buttons with tags and define behaviors through type attributes (such as button, submit, reset), which is submitted by default; 2. Add interactive functions through JavaScript, which can be written inline or bind event listeners through ID to improve maintenance; 3. Use CSS to customize styles, including background color, border, rounded corners and hover/active status effects to enhance user experience; 4. Pay attention to common problems: make sure that the disabled attribute is not enabled, JS events are correctly bound, layout occlusion, and use the help of developer tools to troubleshoot exceptions. Master this

Self-closing tags are elements in HTML that do not require closed tags because they do not contain content. Common examples include: ① Insert pictures; ② Add line breaks; ③ Create horizontal lines; ④ Define form input; ⑤ Link external resources; ⑥ Provide metadata. These tags work through attributes such as or. There are two correct ways to write: standard HTML syntax, such as XHTML style, but HTML5 recommends the former. Note that you cannot use self-closed form on labels that require the package content. If the error is wrong, it should be changed to a correctly closed Hello. Proper use of self-closing tags helps keep your code simple and efficient, and improves compatibility with other tools such as frameworks.

Use tags in HTML to group options in the drop-down menu. The specific method is to wrap a group of elements and define the group name through the label attribute, such as: 1. Contains options such as apples, bananas, oranges, etc.; 2. Contains options such as carrots, broccoli, etc.; 3. Each is an independent group, and the options within the group are automatically indented. Notes include: ① No nesting is supported; ② The entire group can be disabled through the disabled attribute; ③ The style is restricted and needs to be beautified in combination with CSS or third-party libraries; plug-ins such as Select2 can be used to enhance functions.

To embed video or audio with subtitles and audio tracks into a web page, it can be achieved through HTML native functionality. 1. Use tags to add subtitles files in WebVTT format and set the kind, srclang and label attributes; 2. Support multi-language subtitles through multiple elements, and use the default attribute to set the default language; 3. Multi-tracks can control multiple element switching through JavaScript, or use more complex media extension solutions; 4. Pay attention to browser compatibility, path configuration and format verification to ensure normal operation on different devices and provide backup solutions.

When encountering HTML verification errors, you must first clarify the problem and correct it according to the specifications. 1. When the required attributes are missing, the src and alt and a href of img should be completed; 2. When the tag nesting is incorrect, the structure should be clarified and the tags should be closed correctly to avoid confusion in nesting block-level elements; 3. When using invalid or discarded tags, you should refer to the MDN document to replace it with modern writing methods, such as replacing center and font with CSS; 4. When character encoding problems, add metacharset="UTF-8" and ensure that the file is saved in UTF-8 format to solve it.
