输入框美化(placeholder)
来源:互联网 发布:mysql having 用法 编辑:程序博客网 时间:2024/06/05 21:52
本文主要介绍针对输入框的美化
为了兼容ie7+,不能直接使用H5的属性placeholder,但是又需要实现输入提示效果,所以总结了以下两种方式。
最终实现效果示例:
方式一:
通过添加p标签,并绑定js事件来模拟输入框光标进入隐藏效果。
<div class="foo-input foo-user"> <input class="input-text" type="text" value=""> <p class="remindp">输入您的姓名</p><i></i></div><div class="foo-input foo-tel"> <input class="input-text" type="text" value=""> <p class="remindp">输入手机号码</p><i></i></div><div class="foo-input foo-com"> <input class="input-text" type="text" value=""> <p class="remindp">输入公司全称</p><i></i></div>
JS事件
<script> $(document).ready(function (event) { //表单输入框 $(".foo-input").click(function () { $(this).children(".remindp").hide(); $(this).children(".input-text").focus(); }); $(".foo-input input").blur(function () { var val = $(this).val(); if (val != "") { $(this).next(".remindp").hide(); } else { $(this).next(".remindp").show(); } }); $(".input-text").focus(function () { $(this).next(".remindp").hide(); }); });</script>
图一就是通过这种方式实现的。主要原理是直接通过操作元素的隐藏显示来达到效果。
方式二:
方式二主要通过使用h5的placeholder属性,然后针对IE浏览器做兼容处理。
<div class="reg-tel"> <input id="mobile" name="mobile" type="text" placeholder="输入电话号码"><i></i></div><div class="reg-code clearfix"> <div class="input-code"> <input id="sureCode" name="sureCode" type="text" placeholder="输入验证码"><i></i> </div> <div class="get-code"> <input type="button" id="getSms" type="button" value="获取验证码"/> </div></div>
H5属性在chrome和firefox下当然没问题啦,但是要兼容IE7及其以上呢,就需要处理一下了,其实原理还是跟方式一类似,只不过在其他浏览器中是默认效果就感觉挺好的。
<script> /* * jQuery placeholder, fix for IE6,7,8,9 */ var JPlaceHolder = { //检测 _check: function () { return 'placeholder' in document.createElement('input'); }, //初始化 init: function () { if (!this._check()) { this.fix(); } }, //修复 fix: function () { jQuery(':input[placeholder]').each(function (index, element) { var self = $(this), txt = self.attr('placeholder'); self.wrap($('<div></div>').css({ position: 'relative', zoom: '1', border: 'none', background: 'none', padding: 'none', margin: 'none' })); var pos = self.position(), h = self.outerHeight(true), paddingleft = self.css('padding-left'); var holder = $('<span></span>').text(txt).css({ position: 'absolute', left: pos.left, top: pos.top, height: h, lienHeight: h, paddingLeft: paddingleft, color: '#aaa' }).appendTo(self.parent()); self.focusin(function (e) { holder.hide(); }).focusout(function (e) { if (!self.val()) { holder.show(); } }); holder.click(function (e) { holder.hide(); self.focus(); }); }); } }; //执行 jQuery(function () { JPlaceHolder.init(); });</script>
图二就是通过这种方式实现的,在IE7及以上都是完美显示。
优化及兼容注意事项
- 布局问题,首先在布局上一定要注意层级关系,表单前面的小图标可能需要通过z-index来调整,不然可能不显示,一般我是用绝对定位来布局,当然也可以用背景和流布局。
- 布局好之后设置div的padding来给小图标腾出位置。input输入框的宽度一定要跟显示的一样,不然在有些浏览器中出现输入cookie提示时就暴露问题了,会出现输入框的宽度和提示下拉框的宽度不一样,很难看。意思就是说不要用padding来设置。
- 输入框中的字体是可以调整的,就是设置的时候一定要对input针对性的设置才行,通常浏览器自带的默认字体可能不符合整个页面设计效果,所以可能需要单独设置一下。前面两个效果都是通过设置了字体的。
- 对input原生效果的清除,目前我常用的有如下属性
border: none;或者设置成颜色和背景一样
outline: none;这里是取消focus边框轮廓效果
当然你可以添加box-shadow添加边框阴影效果,有个外发光的效果。
1 0
- 输入框美化(placeholder)
- 输入框placeholder字体
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- 表单样式美化(1)-----输入框Text,密码框Password,文本域Textarea样式美化
- 网页输入框的提示实现 placeholder
- 修改输入框placeholder文字颜色
- 修改输入框placeholder的样式
- 使用onfocus实现输入框的placeholder
- 输入框placeholder文字修改默认颜色
- 各种输入框的各种placeholder
- 修改输入框placeholder文字的样式
- 修改输入框placeholder文字默认颜色
- 输入框--仿placeholder,oninput检测用户输入事件
- Qt之界面美化输入框
- nginx.conf一般配置说明
- JTopo绘制网络拓扑图
- 1075. PAT Judge (25)-PAT甲级真题
- PL/SQL Developer客户端安装及配置
- Two Sum and Two Sum II
- 输入框美化(placeholder)
- 机器学习实战-决策树
- iOS --- 如何暂停和继续CALayer上的动画
- Real-Time Rendering-第一章 Introduction
- 第二周《C语言及程序设计》实践项目32 循环思想启蒙:输出小星星
- 线程安全随机队列
- 安装eclipse的JRebel6.4.3的插件
- hibernate在不联网时不能解析配置文件解决方案
- leetcode318:Maximum Product of Word Lengths(medium)