当图像存在于第二列的第一行时,jQuery动态更改表中第一列的填充顶部

And*_*ley 3 javascript jquery

在两列表中(其中两列都设置为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)

rni*_*ber 7

为了更容易一些,让我们在表格的第一个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错误的代码或任何东西,但它应该很容易遵循.