jquery - CSS 新手 - 如何动态移动按钮

标签 jquery css

我有一个表单,在通过 jquery 呈现后我正在修改它 - 只是因为我无法控制创建表单的代码。

无论如何,我都在作为表单一部分的登录按钮旁边添加了一个按钮。为此,我使用了以下 jquery:

$('.mynewbutton').hide();
$(".submit").addClass("buttonalign");
$('<div class="shared">').insertBefore($('.submit'));
$('.submit').after($('<div class="circle circlealign">i</div>'));

我添加的新按钮实际上是一个我使用 CSS 绘制的圆圈。 这工作正常 - 新按钮与登录对齐。 这是CSS:

.shared {
    position: absolute;
    width: 200px;
}

.buttonalign {
    position: absolute;
    top:340px;
}

.circlealign {
    position: absolute;
    top:340px;
}

我需要解决的问题是当登录表单返回错误消息时,它会在表单顶部显示错误并将所有内容下推。 所以我的登录按钮和新按钮最终覆盖了表单上的一些其他元素,因为它们的位置是固定的。

我将固定数字更改为百分比和 em,如下所示:

.shared {
    position: absolute;
    width: 100%;
}

.buttonalign {
    position: absolute;
    top:40em;
}

.circlealign {
    position: absolute;
    top:40em;
}

但这改变了新按钮的位置,使其不再与登录按钮对齐。它在页面的下方。
你能为我指出正确的方向吗?

谢谢。

编辑 1

这是呈现的 HTML.. 当然 jquery 的东西没有出现在这里,这很痛苦..但是你可以看到初始表单的样子

<H1>Login</H1><DL>
<P class="err">Logon Failed</P>
<form action="/cgi-bin/logon/logon" method="POST">
<DT>User ID</DT>
<DD>
<input class=" text" type="text"  name="userid">
</DD>
<DT>Password</DT>
<DD>
<input class=" password" type="password"  name="password" >
</DD>
<DT></DT><DD><input class="submit" type="submit" name="submit" value="Logon">
</DD>
</FORM></DL>

最佳答案

我很难理解您为什么要使用绝对定位,所以如果出于某种原因需要这样做,请原谅我。我的解决方案是将现有按钮包装在一个 div 中,然后将您的自定义按钮添加到该容器中。然后,您可以将您的元素放置在该容器内,当错误消息返回时,它们将与其他所有内容一起被推下。

HTML:

<H1>Login</H1>
<DL>
<P class="err">Logon Failed</P>
<form action="/cgi-bin/logon/logon" method="POST">
<DT>User ID</DT>
<DD>
    <input class=" text" type="text"  name="userid"/>
</DD>
<DT>Password</DT>
<DD>
    <input class=" password" type="password"  name="password" />
</DD>
    <DT></DT>
    <DD><input class="submit" type="submit" name="submit" value="Logon"/>
</DD>
</form></DL>

CSS:

#actionButtons > * {
    float: left;
    margin-right: 2px;
}

#actionButtons:after {
    content: "";
    clear: both;
    display: block;
}

jQuery(包装在 DOM 就绪函数中):

$(function(){
    $('.submit').wrap('<div id="actionButtons"/>');
    $('#actionButtons').append($('<div class="circle circlealign">i</div>'));
});

更新 - 圆形 CSS:

.circle {
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 15px;
    background: #d1d1c9;
    box-shadow: 1px 1px 2px #000;
    opacity: 0.95;

    font: italic bold 2em/1em "Times New Roman";
    text-align: center;
    color: #000;
    text-shadow: 0 1px 0 #666;
    text-decoration: none;
}

这是一个演示:http://jsfiddle.net/ebTS2/1/

关于jquery - CSS 新手 - 如何动态移动按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16987339/

相关文章:

javascript - JQuery 追加行为

html - 如何隐藏特定的单元格边框?

javascript - Pingdom 上的 Google 相关重定向链

javascript - Bootstrap 4 + 国际电话输入解决方法

jquery - 部分 Jquery "hide/show"工作,其他部分不工作

javascript - AngularJS 中的 ScrollTo 函数

php - 使用 jquery 打印 php 数组值?

javascript - 从父窗口加载内容到子窗口

javascript - 为什么登录对话框不起作用?

css - 如何防止对象环绕 float 图像?