CSS自动识别滚动溢出显示展开按钮实例页面

回到相关文章 »

效果:

《HTML并不简单》是目前市面上唯一一本围绕HTML展开介绍Web前端开发的书籍,去粗取精,有的放矢。2024年7月出版,作者张鑫旭,382页,定价109元。

《HTML并不简单》是目前市面上唯一一本围绕HTML展开介绍Web前端开发的书籍,去粗取精,有的放矢。2024年7月出版,作者张鑫旭,382页,定价109元。

这本书的特点是独家,稀缺,作为业界少有的花大量时间研究与实践HTML的人,里面所呈现的知识是其他地方很难看到的。

代码:

CSS代码:
/* 无关紧要基础样式 */
section {
    border: 1px solid #ccc;
    max-height: 120px;
    overflow: hidden;
    position: relative;
}
label {
    position: absolute;
    inset-inline: 0; bottom: 0;
    height: 2em;
    --start-color: #0000;
    --end-color: #0002;
    background: url(arrow.svg) no-repeat 50% 100% / 1.5rem 1.5rem, linear-gradient(var(--start-color), var(--end-color));
    visibility: hidden;
}
label:has(:checked) {
    rotate: 180deg;
    --start-color: #0002;
    --end-color: #0000;
}
section:has(:checked) {
    max-height: none;    
}
/* 是否可滚动检测 */
section {
    --flag: false;
    animation: setFlag 1ms;
    scroll-timeline: --detectScroll;
    animation-timeline: --detectScroll;
}
@keyframes setFlag {
    from, to { --flag: true; }    
}
@container style(--flag: true) {
    label {
        visibility: visible;    
    }
}
section:has(:checked) label {
    visibility: visible;
}
HTML代码:
<section>
    <p>段落内容1...</p>
    <label><input type="checkbox" hidden></label>
</section>
<section>
    <p>段落内容1...</p>
    <p>段落内容2...</p>
    <label><input type="checkbox" hidden></label>
</section>