我编写了以下程序来从数据库中获取通知并显示它。情况是显示div
里面div.note
垂直居中。
我试过了vertical-align: middle
,vertical-align: center
但都失败了。我发现它们是用于表格单元格的。所以我选择了这个。
<?php
include("../common/config.php");
$query = "SELECT content FROM st_notifications";
$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc));
while($row = mysqli_fetch_row($result))
{
echo "<div class='note'><div style='word-wrap: break-word;'>".$row[0]."</div></div>";
}
?>
<script>
$(function () {
$(".note").each(function () {
var note = $(this);
var diff = 100 - ($("div", note).outerHeight() / 2);
$("div", note).css({ 'margin-top': diff >= 0 ? diff : 0 });
});
});
</script>
输出是这样的。
的CSS.note
是:
.note {
height: 200px;
width: 500px;
margin: 25px auto 0px auto;
background-color: #fff;
padding: 10px;
vertical-align: baseline;
background-image: url(../images/notebg.png);
background-size: 100% 100%;
}
Chrome 调试器的输出是:
您可以看到两个边距都不100px
是相对分配的。
我读了这个。但不知道如何将其与我的问题联系起来
这里的解决方案似乎非常长。
有人能告诉我哪里错了吗?提前致谢。
PS:我通过直接调用元素并使用 each() 函数来尝试使用 jQuery,两者都给出了相同的结果。Chrome 中没有关于 JavaScript 或 PHP 的调试错误。