在两列表中(其中两列都设置为valign top并且文本设置为text-align:baseline),如果第二列的第一行中存在图像且图像高度高于文本本身,两列中的文本未对齐.
我想在第二列的第一行中存在图像时动态地向第一列添加填充顶部.如果调整窗口大小并且图像不再位于第一行(或者新图像被推入第一行),则第1列中文本的填充顶部应自动更新以确保基线文本在两列中排成一行.
<html>
<head>
<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/script.js"></script>
<link rel="stylesheet" type="text/css" href="styles/style.css" />
</head>
<body>
<table>
<tr>
<td style="vertical-align:top"><p class="tabhead">Note:</p></td>
<td style="vertical-align:top"><p class="tabtext">This is text and - z0mg no, not an image!<img src="http://files.softicons.com/download/web-icons/minicons-numbers-icons-by-icojam/png/16x16/blue/025.png" /> what will we do?<br />Save us!</p></td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
样式表
.tabhead
{
display: block;
vertical-align: top;
font-family: "Tahoma", verdana, arial, helvetica, sans-serif;
font-style: normal;
font-variant: normal;
font-weight: bold;
font-size: 9pt;
}
.tabtext
{
font-family: "Tahoma", verdana, arial, helvetica, sans-serif;
font-style: normal;
font-variant: normal;
font-weight: normal;
font-size: 9pt;
vertical-align: baseline;
}
Run Code Online (Sandbox Code Playgroud)
为了更容易一些,让我们在表格的第一个td元素上添加一个id ="column_1"属性.
$(document).ready(function()
{
window.setInterval("update_tbl_padding()", 100);
}
function update_tbl_padding()
{
//if column 1 has either a direct or indirect img element as a descendant
//if you wanted it to be a direct child element the selector would be
//$("#column_1 > img")
if($("#column_1 img").size() >= 1)
{
//just an example
var pad_top_val = "5px";
$("#column_1").css("padding-top", pad_top_val);
}
//since you're checking to see if a new image is pushed in, I'm guessing you
//would want to check to see if its taken out too...hence this else clause
else
{
var pad_top_default_val = "0px";
$("#column_1").css("padding-top", pad_top_default_val);
}
}
Run Code Online (Sandbox Code Playgroud)
没有检查SYNhax错误的代码或任何东西,但它应该很容易遵循.