Introduction:
Creating a table with a fixed header and a fixed first column can provide a stable and streamlined user experience for viewing large datasets or tables that extend beyond the visible viewport. Traditionally, JavaScript or jQuery has been employed for this purpose. However, this can encounter performance issues on mobile browsers. This article explores a pure CSS solution to achieve this functionality while maintaining smooth scrolling.
Using CSS Sticky Positioning:
The CSS position: sticky property allows elements to stick to the top, side, or both when scrolled beyond a certain point. This property can be applied to achieve a fixed header and fixed column effect.
Steps:
Additional Considerations:
Example Code:
.container { max-width: 400px; max-height: 150px; overflow: scroll; } thead th { position: sticky; top: 0; } tbody td:first-child, tbody th:first-child { position: sticky; left: 0; } /* Styling */ thead th { background: #000; color: #FFF; z-index: 1; } tbody td, tbody th { padding: 0.5em; } tbody th { background: #FFF; border-right: 1px solid #CCC; box-shadow: 1px 0 0 0 #ccc; } table { border-collapse: collapse; }
Conclusion:
By utilizing CSS sticky positioning, it is possible to achieve a fixed header and fixed first column effect in a table without resorting to JavaScript. This solution provides a pure CSS-based approach that ensures smooth scrolling performance, especially on mobile browsers.
The above is the detailed content of How Can I Create a Table with a Fixed Header and Fixed Column Using Only CSS?. For more information, please follow other related articles on the PHP Chinese website!