基本上我想要的是一个 CSS 三角形,它在我的内容中心垂直对齐,位于我的内容的右侧,有轻微的填充,而不使用基于三角形的显式测量border-width
。
如果三角形像本例那样很大,则包装器应展开以包含 CSS 三角形,并且 CSS 三角形应始终垂直对齐在包装器的中间。如果有大量文本,CSS 三角形应该刚好与文本重叠(如果它们交叉)。
这似乎完全合理,但我遇到了一些问题;查看这个JsFiddle了解我现在所处的位置。
如果我分配一个min-height
,我可以到达1.
下面。问题1.
是我必须选择任意高度。此外,如果内容增长,它不会完全垂直居中,因为top: 25%
它并没有真正将它放在中间。为了轻松允许多个不同大小的箭头,我真的不想为此分配最小高度或任何高度,我只想让它自己计算它的大小。
我还必须使用 anoverflow: hidden
来防止滚动条出现,因为这样做right: -45px
会推动 CSS 三角形框的“右侧”,所以我也不能在overflow: visible
任何地方使用。
如果我删除固定高度,那么我最终得到2.
这是否可以在不使用显式高度和其他显式测量的情况下实现?您将如何正确垂直对齐它?如果您有使用 jQuery 来获取宽度等的想法,那也很好 - 我已经标记了它。