>现代网络开发通常利用CSS创建动态元素,例如滑块,模态和工具提示,从而最大程度地减少JavaScript Reliance。本文展示了实现“显示更多/更少”功能的纯CSS方法,甚至创建了功能性手风琴风格的示例。 我们将探索技术,潜在问题和解决方案。 此处省略了可访问性注意事项,但是未来改进的关键方面。
密钥概念:
此CSS仅“显示更多/不显示”依赖于“ Checkbox Hack”和同胞选择器。 HTML结构使用无序列表;最后一项包含隐藏的复选框及其标签。嵌套的无序列表保留要显示/隐藏的内容。>和max-height
css属性控制光滑的揭示/隐藏。 可能存在浏览器不一致;例如,光标行为在浏览器中可能有所不同。transition
基本CSS知识:
- 一般的同级选择器(
- ):选择所有兄弟姐妹遵循指定元素。
> ~
相邻的同胞选择器( - ):选择立即在同胞之后。
- :使用复选框的检查状态触发CSS更改。 codepen演示(输入中未提供的链接)提供了这些技术的交互式示例。
基本的HTML结构是(从原来简化):
造型复选框容器:
<ul> <li>Item 1</li> <li>Item 2</li> <li class="container"> <input type="checkbox" id="showHide"> <label for="showHide"></label> <ul> <li>Hidden Item 1</li> <li>Hidden Item 2</li> </ul> </li> </ul>>
样式位置标签并隐藏复选框:
> and.container
)来处理标签的内容(“更多”或“更少”)和动画。
.container { position: relative; height: auto; } [type="checkbox"] { position: absolute; left: -9999px; } label { background: #e4e3df; display: block; width: 100%; height: 50px; cursor: pointer; position: absolute; top: 0; }最初隐藏嵌套的
:
与CSS:::after
label:before, label:after { position: absolute; } /* ... (styles for :before and :after based on checked state) ... */
<ul></ul>
复选框的检查状态显示隐藏的内容:
[type="checkbox"] ~ ul { display: none; }
选中标签的位置和内容:>
onclick
codepen演示(链接省略)展示此基本切换效果。
添加平滑的过渡:
[type="checkbox"]:checked ~ ul { display: block; }
对于平滑的过渡,使用
>和[type="checkbox"]:checked + label { top: 100%; } /* ... (styles for :before and :after when checked) ... */:
>
标签的过渡也已更新:
codepen演示(省略链接)演示了改进的,更顺畅的过渡。
max-height
transition
浏览器注意事项:
[type="checkbox"] ~ ul { overflow: hidden; max-height: 0; transition: max-height .45s cubic-bezier(.44,.99,.48,1); } [type="checkbox"]:checked ~ ul { max-height: 300px; /* Or a calculated height */ }请注意,光标行为在浏览器之间可能不一致(尤其是与过渡)。 结论:
label { transition: top .45s cubic-bezier(.44,.99,.48,1); }
>本文展示了一种功能强大的仅使用CSS的方法,用于“显示更多/不显示”功能。 尽管存在局限性(主要是浏览器不一致,并且需要预定的max-height
),但该技术为许多情况提供了干净的,无JavaScript的解决方案。 请记住,在构建交互式组件时始终优先考虑可访问性。
以上是用纯CSS实施'显示更多/更少”功能的详细内容。更多信息请关注PHP中文网其他相关文章!

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版
中文版,非常好用

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能