【发布时间】:2016-06-21 10:14:39
【问题描述】:
我连续有几个数据(比如姓名、地址、电话号码、电子邮件地址),因为它们占据了网页的薄页脚。
它们由空格-破折号-空格结构分隔,如下所示(但居中):
Name - address - phone - mail address
在小屏幕上,整个页面更小并且文本换行。我已经在使用不间断空格和自动换行来确保一切到位,但结果并不令人满意。
我得到的是:
Name - address -
phone - mail
我想要的是:
Name - address
phone - mail
如果某些字符恰好位于行首或行尾,有没有办法通过 CSS 或 JS 动态隐藏它们?
如果没有,请随时提出不涉及更改文本原始格式的不同解决方案。如果我找不到解决方案,我会选择:
- Name -- address -- phone -- mail -
变成:
- Name -- address -
- phone -- mail -
或类似的东西。
【问题讨论】:
-
CSS 无法做到这一点。使用 Javascript,它可能,如果非常棘手的话。首先,这些元素中的每一个,例如“姓名”、“地址”、“电话”等,都必须是
inline-block元素,并且它旁边的-字符必须是 @987654329 @伪元素。然后,您可以遍历每个inline-block元素,当您发现页面上的垂直位置低于之前的元素时,您可以将[the one before its pseudo-element]设置为display: none并在页面调整大小时重置 -
这就是我们需要
:nth-line()选择器的原因。 -
@Zachiel 看看这个 jsFiddle:jsfiddle.net/cy7a7kho 这是你要找的吗?这几乎正是我所说的。我给出的唯一警告是这种解决方案有点昂贵,因为每次调整窗口大小时都会执行它。话虽如此,用户在 prod 设置中真正调整了多少次窗口?
-
@Aeolingamenfel 感谢您的警告。
-
如果你想要一个纯 CSS 的解决方案,很多网站,在一定的屏幕宽度下,都会做这样的垂直菜单。 IE,您执行与我在上面建议的
inline-block相同的操作,然后将其切换为display: block并使用 CSS@media查询隐藏特定屏幕宽度以下的所有伪元素。
标签: javascript html css formatting