【问题标题】:How to add a DIV next to a centralized INPUT box without skewing the input box如何在不倾斜输入框的情况下在集中输入框旁边添加 DIV
【发布时间】:2013-06-29 20:50:40
【问题描述】:

我有一个表格,在那个表格中我有一个表格,只有一行和一个 TD,它集中了其中的任何内容。我旁边有一个空的 DIV,我将其用作警告,以防他们离开输入框时输入框为空:

<td align="center" >Ange din bokningskod: <input id="bokningskod" type="text" name="bokningskod" autofocus="true" maxlength="8" size="10" onblur="bookingNotEmpty();" /> <div id="alertB" ></div></td >

JavaScript 函数如下所示:

function bookingNotEmpty()
{
    if (document.getElementById("bokningskod").value == "") {
        document.getElementById('alertB').innerHTML = "<< Kan ej vara tomt!";
        document.getElementById("bokningskod").focus();
        return false;
        }
    document.getElementById('alertB').innerHTML = "";
}

我的问题是什么?

如果 INPUT 框为空,则将文本添加到 DIV 中,但由于它是集中的,因此将 INPUT 框移动到左侧。

即使我在 DIV 中添加文本,我是否可以通过某种方式使 INPUT 框保持集中?

提前致谢!

//安德烈亚斯

【问题讨论】:

    标签: javascript css html-table


    【解决方案1】:

    试试这个:

    #alertB {
      width: 100%;
    } 
    

    Fiddle:

    【讨论】:

    • 感谢您抽出时间回答@Tamil,但这并没有解决我的问题。
    • @Andreas:你试过那个小提琴吗?您可以更新它以显示您的确切问题。
    • 不,我没有检查小提琴,会这样做!
    【解决方案2】:

    我想你的问题是 div 正在进入下一行?如果是这种情况,那么您需要使 div 内联。默认是块;

    yourDiv { display: inline }; 
    

    这里是小提琴:http://jsfiddle.net/JXypM/

    【讨论】:

    • 谢谢!我会试试这个并报告。
    【解决方案3】:

    只需定位 div absolute 使其脱离流程,您也可以将 float:right 应用于警报 div。

    <td align="center" class="inputalert" >
        Ange din bokningskod: 
        <input id="bokningskod" type="text" name="bokningskod" autofocus="true" maxlength="8" size="10" onblur="bookingNotEmpty();" /> 
        <div class="alertdiv" id="alertB" ></div>
    </td >
    

    CSS

    .inputalert {
        position:relative; //needed to keep the div in the td
    }
    
    .inputalert .alertdiv {
        position:absolute;
        right:0px;
        top:0px;
    }
    

    .inputalert .alertdiv {
        float:right;
    }
    

    您也可以将警报 div 放在另一个 td 中,以便它显示在一边

    <td align="center" class="inputalert" >
        Ange din bokningskod: 
        <input id="bokningskod" type="text" name="bokningskod" autofocus="true" maxlength="8" size="10" onblur="bookingNotEmpty();" /> 
    </td >
    <td>
        <div class="alertdiv" id="alertB" ></div>
    </td>
    

    【讨论】:

    • 我必须使用 CLASS 吗?即使在 CSS 中我也不能继续使用 ID 吗?
    • 不幸的是它没有用。在第一种情况下,DIV 出现在与文本混合的中心(不确定是在顶部还是在后面)。在第二个建议中,div 出现在 INPUT 框下方。
    • 您可以使用 ID,但这仅适用于单个 ID,我使用了一个类,以防您打算使用其他输入/div 组合进行操作。至于重叠,您将不得不调整列/表格宽度的大小。它必须足够大以容纳文本、输入框和 div 及其文本,即使您将它们全部正常布局,您也必须这样做。
    • 另外编辑以添加第二列,这将使输入位于其自己的列中,而警报 div 位于其旁边的列中
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多