2

我尝试在外部 div 中垂直居中一个 div,但它不起作用。我试图在网上环顾四周,但找不到我的具体问题的解释......当尝试水平对齐时,它正在工作 =>“margin:0 auto;”

任何人 ?

<div style="height:240px;width:100%;">

 <div style="width:33%;height:100px;margin:auto 0;">
   <span class="" style="font-size:26px">Hello </span>
   <br/><br/>
   <img style="width:150px" src="example.jpeg"
/>
 </div>

</div>
4

4 回答 4

1

您可以使用此插件完成您的工作:

jQuery.fn.verticalAlign = function ()
{
    return this
            .css("margin-top",($(this).parent().height() - $(this).height())/2 + 'px' )
};

然后你可以像这样使用它:

$("#mydiv").verticalAlign()

对于您的代码:

<div style="height:240px;width:100%;">

 <div id="mydiv" style="width:33%;height:100px">
   <span class="" style="font-size:26px">Hello </span>
   <br/><br/>
   <img style="width:150px" src="example.jpeg"
/>
 </div>

</div>

只需添加以下内容:

$("#mydiv").verticalAlign()
于 2013-07-18T09:16:12.573 回答
1

margin:auto只能垂直居中具有已知高度(小提琴)的绝对定位元素

.container {
    position: relative;
}

.centered {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
}
于 2013-07-18T10:03:40.463 回答
1

利用display:table;

标记

<div class="outer">

 <div class="inner">
   <span class="" style="font-size:26px">Hello </span>
   <br /><br/>
   <img style="width:150px" src="http://placehold.it/150x50" />
 </div>

</div>

CSS

.outer
{
    display:table;
    height:240px;
    width:100%;
    border:1px solid black;
    text-align:center;
}
.inner
{
    display:table-cell;
    width:33%;
    height:100px;

    vertical-align:middle;
}

小提琴

于 2013-07-18T09:20:40.880 回答
0

试试这个代码。它的工作......

<style>
.child {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 150px;
height: 150px;
border: 1px solid red;
margin: auto auto;
}

</style>
</head>
<body style="height: 100%; margin: 0;">
<div class="child"></div>
</body>
于 2014-08-21T11:52:26.763 回答