用户单击表单文本框时的格式帮助

Posted

技术标签:

【中文标题】用户单击表单文本框时的格式帮助【英文标题】:Formatting help when user clicks on form text box 【发布时间】:2014-08-16 14:21:36 【问题描述】:

这里的新手,请温柔。当用户单击表单文本框(如电子邮件或名字)时,文本框边框变为蓝色,并且与静止格式相比,边框更宽。我想改一下,这样当用户点击时,文本框边框不改变颜色和边框宽度,但是文本框背景从浅灰色(#fafafa)变成白色(#ffffff)。

电子邮件服务提供商编写了原始表单代码(他们不提供任何自定义支持),我通过研究 html 修改了内联格式(例如文本框大小、字体属性、圆角、按钮格式等)属性在线,并通过反复试验。

<form id="IBNSubscribeForm" accept-charset="UTF-8" action="">
    <p>Email*<br/><input id="IBNSubscribeEmail" type="text/CSS" name="email" value="" placeholder="name@xyz.com" size="34" style="background-color:#fafafa; height:3em; border:1px solid #cccccc; border-radius:4px; -moz-border-radius: 4px "/><p/>
    <p>First name* <br> <input name="first_name" type="text" size="34" style="background-color:#fafafa; height:3em; border:1px solid #cccccc; border-radius:4px; -moz-border-radius: 4px" /><p/>
    <input id="IBNSubscribeButton" type="button" value="SUBSCRIBE!" style="font:Proxima Nova; font-size:13px; letter-spacing: 1px; color: #FFFFFF; font-weight: bold; background-color: #faac44; width: 11em; height: 4em; border-radius:4px; -moz-border-radius: 4px; border:none">
    <span id="IBNStatusMessage"></span>
</form>
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function isValidEmailAddress(emailAddress) 
var pattern = /^([a-zA-Z0-9])(([a-zA-Z0-9])*([._+-])*([a-zA-Z0-9]))*@(([a-zA-Z0-9-])+(.))+([a-zA-Z]2,4)+$/;
return pattern.test(emailAddress);

(function($) 
    $.fn.EmailCampaignsSubscribe = function(client_id, lists, opt)
var defaults = 
form: "IBNSubscribeForm",
email: "IBNSubscribeEmail",
            msg: "IBNStatusMessage",
            button: "IBNSubscribeButton",
            successMsg: "Thank you for signing up!",
            emailValidation: true,
            errorMsg: "Oops...please check your email address"
        ;
        var opt = $.extend(defaults, opt);
        $("#"+opt.button).click(function()
        var valid = true;
        if(opt.emailValidation)
if(!isValidEmailAddress($("#"+opt.email).val()))

valid = false;

            
    if(valid)
var data = $("#"+opt.form).serialize();
var img = "";
for (i in lists)
    img += "<img style='display:none;' src='http://server1.emailcampaigns.net/autoadd/?c="+client_id+"&"+data+"&lid="+lists[i]+"'>";
    
    $("#"+opt.form).html(opt.successMsg + img);
        else
        $("#"+opt.msg).html(opt.errorMsg);
        
        );
    ;
)(jQuery);
</script>
<script type="text/javascript">jQuery.fn.EmailCampaignsSubscribe(a00000a,[3]);</script>

【问题讨论】:

请修正缩进。 我将第一行与左边距对齐。如果还有其他缩进问题,那就是源代码格式化的方式。我没有修复它的知识。 【参考方案1】:

试试这个:

input[type=text] 
    background-color: #FAFAFA;
    border: 1px solid #ccc;


input[type=text]:focus 
    background-color: #FFFFFF;
    border: 1px solid #ccc;

你也可以用 javascript 做一些事情,但想让它对你来说很简单。

JSFiddle:

http://jsfiddle.net/3kN8F/1/

注意:我在这里使用红色来更好地为您演示:)

【讨论】:

谢谢;我无法让它工作 - 鉴于我提供的代码,新代码在哪里? 你可以把它放在 标签之间,在你页面的任何地方,为了方便 :) 在w3schools.com/css/css_howto.asp 阅读更多内容。我告诉过你内部样式表部分。因此,请阅读该部分以获取更多信息:)。【参考方案2】:

将其放在文档中的任何位置:

<style>
    [type="text"], [type="email"]
        background:#fafafa !important;
        height:3em important; 
        border:1px solid #cccccc important; 
        border-radius:4px important; 
        -moz-border-radius: 4px important;
    
    [type="text"]:focus, [type="email"]:focus
        background:#ffffff !important;
        height:3em !important;
        border:1px solid #cccccc !important;
        border-radius:4px !important;
        -moz-border-radius: 4px !important;
    
</style>

Example 在示例中,未聚焦时背景为红色,因此您可以看到差异。 通过将 background:red !important; 替换为 background:white !important; 来更改它 您还可以使用以下编码使焦点淡入:

 <style>
            [type="text"], [type="email"]
                background:#fafafa !important;
                height:3em important; 
                border:1px solid #cccccc important; 
                border-radius:4px important; 
                -moz-border-radius: 4px important;
                -moz-border-radius: 4px;
                -moz-border-radius: 4px
                -o-transition:.5s;
                -ms-transition:.5s;
                -moz-transition:.5s ;
                -webkit-transition:.5s;
                 transition:.5s  ;

            
            [type="text"]:focus, [type="email"]:focus
                background:#ffffff !important;
                height:3em !important;
                border:1px solid #cccccc !important;
                border-radius:4px !important;
                -moz-border-radius: 4px !important;
            
        </style>

Example of fade

希望这会有所帮助!

【讨论】:

谢谢;我尝试粘贴两个示例中的第一个,但无法正常工作。我知道您在文档中的任何地方都说过,但是您的代码是否需要在特定的 HTML 标记中? :focus 不能在 html 标签内。你网站的网址是什么?你可能有一些压倒一切的编码。 这是一个 SquareSpace 网站,尚未上线。我会在他们的用户论坛上询问添加 CSS 代码的最佳方式。 好的,Follow this tutorial。将上面的代码复制到

以上是关于用户单击表单文本框时的格式帮助的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 表单规则显示文本框时验证文本框

自动完成文本框在单击文本框时不显示结果

当我输入一个文本框时,我会填充一些文本框

禁用文本框丢失视图状态

填写值后在输入文本框时未触发提交。在 IE 中

单击文本框时会触发哪个 javascript 事件?