我期待着建立一个工具提示,它位于元素旁边,但在它的中间。很容易把它放在上面和下面,并将它放在元素的水平中心。但是,有没有一种方法可以垂直地做到这一点(在元素的右侧或左侧,垂直放置在该元素高度的中间)?
就我而言,元素的高度是固定的(已知的),而工具提示的高度不是固定的,因为它可以包含各种文本内容。工具提示可以是元素的子级。
然而,我也很好奇,当两个高度都不固定(未知,可能会根据内容而不同)时,该如何做。通过高度我可以理解元素的高度和工具提示的高度。宽度可以是已知的和固定的。
发布于 2015-08-27 13:29:02
这已经很晚了,但是我试着在codepen上做了一个例子,如果我正确理解了你的问题,它会显示一个工作的例子。
http://codepen.io/trgraglia/pen/RWbKyj
使用CSS转换。
例如,transform:translateX(-50%);
会将一个元素向左移动50%。现在,您可以使用position
和bottom
或top
或left
或right
将其与父对象对齐,然后按其自身的尺寸移动它。
希望这能有所帮助!
发布于 2013-02-18 16:42:39
使用CSS和jQuery-
CSS
.div{
top:50%
}
jQuery
var divheight = $(.div).height() / 2;
$(.div).attr('style','margin-top:-'+divheight+'px;');
发布于 2013-02-18 16:21:57
如果你不知道这两个高度,只有两种方法:
Flexbox
display: table
和子display: table-cell
和vertical-align: middle
.
如果你对这个话题感兴趣,这里有一篇有更多技巧的好文章:http://www.vanseodesign.com/css/vertical-centering/
如您所见,在不知道元素高度也不使用CSS3的情况下垂直对齐元素的唯一方法是使用display: table-cell
。
https://stackoverflow.com/questions/14940540
复制