我想知道是否有HTML/CSS只有方法来检测(或至少,显示/隐藏一些元素与伪类等)采取行动时,元素的内容溢出(仅在垂直方向)。是的,我知道它可以做,我知道如何做到这一点(我不需要JS例子,请参考),我只想知道是否有一个聪明的方法,没有任何 JavaScript。检测是否溢出没有javascript
我试图显示一个“更多...”按钮,只有当溢出时才会出现,并试图在没有JS的情况下实现此功能。
我想知道是否有HTML/CSS只有方法来检测(或至少,显示/隐藏一些元素与伪类等)采取行动时,元素的内容溢出(仅在垂直方向)。是的,我知道它可以做,我知道如何做到这一点(我不需要JS例子,请参考),我只想知道是否有一个聪明的方法,没有任何 JavaScript。检测是否溢出没有javascript
我试图显示一个“更多...”按钮,只有当溢出时才会出现,并试图在没有JS的情况下实现此功能。
下面是该解决方案为100%高度的版本 - 因此,当内容设法占据比整个页面越多,你得到一个“更多...”链接。这适用于所有浏览器。
http://jsfiddle.net/nottrobin/u3Wda/1/
我使用的JavaScript只为 “添加另一行” 控制 - 演示purpoes。实际的解决方案中没有使用JavaScript。
警告:
使容器元素overflow: hidden
并给它一个max-height
。然后把你的“更多”链接放在那个容器元素中,position: absolute
因此它只是在max-height
之内。现在“更多”链接将不会显示,除非容器内的内容将容器推到其max-height
。
如果你对你的line-height
小心,那么你应该能够防止任何线被切成两半。
例子:
足够的文本:http://jsfiddle.net/nottrobin/MrAKv/17/
太多的文字:http://jsfiddle.net/nottrobin/MrAKv/16/
较短的版本将只在支持的浏览器工作max-height
:
http://caniuse.com/#search=max-height
如果您需要IE6的支持,使用这个稍微简洁的解决方案:
http://jsfiddle.net/nottrobin/MrAKv/18/
(免责声明 - 只有谷歌浏览器)
对我来说看起来不错。我希望在我们收到OP回复时删除我的答案。编辑:除了它杀死下降的事实,请参阅:http://jsfiddle.net/thirtydot/MrAKv/10/ – thirtydot
@thirtydot好点。谢谢。通过调整行高即可轻松修复:http://jsfiddle.net/MrAKv/15/。 –
这是一个不错的和聪明的例子,但不幸的是,它不适用于变化的高度。容器将填充用户的浏览器高度,它只是一个项目列表,每行一个,然后继续,显示出可能(但不是必须)溢出浏览器高度的大量条目。我认为这是问题的根源。 –
元素是否有固定的高度? –
@Knu:你有想法吗? – thirtydot
@dot kinda是的。 – Knu