CSS how to position an element in a middle (half height / vertical 50%) of another element

后端 未结 4 1677
北荒
北荒 2021-02-08 07:07

I\'m looking forward to build a tooltip which is positioned next to the element, but in a middle of it. It\'s easy to put it over and under and position it in the horizontal cen

相关标签:
4条回答
  • 2021-02-08 07:27

    This is pretty late but I tried to make an example on codepen which shows a working example if I understood your question correctly.

    http://codepen.io/trgraglia/pen/RWbKyj

    Use CSS transform.

    For example, transform:translateX(-50%);, will move an element left by 50% of ITSELF. Now you can align it to the parent with position and bottom or top or left or right and then move it by the dimensions of itself.

    Hope this helps!

    0 讨论(0)
  • 2021-02-08 07:43

    using CSS & jQuery-

    CSS

    .div{
        top:50%
    }
    

    jQuery

    var divheight = $(.div).height() / 2;
    $(.div).attr('style','margin-top:-'+divheight+'px;');
    
    0 讨论(0)
  • 2021-02-08 07:44

    If you know the height of the content the easiest way to center the tooltip is to set the line-height of tooltip to the height of content.You can see how i did that here jsFiddle

    0 讨论(0)
  • 2021-02-08 07:52

    If you don't know both heights, there are only two ways:

    1. Set the parent display: table and children display: table-cell and vertical-align: middle.
    2. Using CSS3 Flexbox: http://www.w3.org/TR/css3-flexbox/ but with limited browser support: http://caniuse.com/#search=flexbox

    If you are interested in this topic, here there is a good article with more tips: http://www.vanseodesign.com/css/vertical-centering/

    As you can see, the only way to vertical align an element without knowing its height and nor using CSS3 is using display: table-cell.

    0 讨论(0)
提交回复
热议问题