一个漂亮的 PlaceHolder
预览:
不知道为什么下面这个窗口中的 JavaScript 代码没有运行-_-||,想看实际效果就把下面的代码保存下来打开看吧。
代码:
<!DOCTYPE HTML>
<html lang="ZH-CN" dir="ltr">
<head>
<title></title>
<style>
* {
line-height: 142%;
} html {
overflow: auto;
} div.textbox, select {
width: 320px;
/*以下两个属性在实际使用时需要去掉*/
margin-top:20px;
margin-left:20px;
} div.textbox > div {
margin-bottom: 8px;
} body {
margin: 0;
font-family: "Microsoft Yahei UI","Microsoft Yahei",Verdana,Simsun,"Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
color: #000;
background-color: #fff;
background-image: none;
background-repeat: repeat;
background-position: top left;
direction: ltr;
font-size: 88%;
-webkit-font-smoothing: antialiased;
} input, select, textarea, button {
font-size: 100%; outline:none;
font-family: "Microsoft Yahei UI","Microsoft Yahei",Verdana,Simsun,"Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
} input[type=text], input[type=password], input[type=email], input[type=tel] {
ime-mode: inactive;
} input[type=email], .ltr_override {
direction: ltr;
} input[type=text], input[type=password], input[type=email], input[type=tel] {
padding: 4px 8px;
height: 1.46em;
width: 302px; /* padding-left 和 padding-right 为 8+8 还有 border-left 和 border-right 为 1 + 1 ,所以 width 为 320 - 16 - 2 */
} input[type=text], input[type=password], input[type=email], input[type=number], input[type=tel], input[type=search], textarea {
width: 18.54em;
padding: 4px 8px;
font-family: "Microsoft Yahei UI","Microsoft Yahei",Verdana,Simsun,"Segoe UI","Segoe UI Web Regular","Segoe UI Symbol","Helvetica Neue","BBAlpha Sans","S60 Sans",Arial,sans-serif;
font-size: 100%;
color: #212121;
border: 1px solid #bababa;
background-color: rgba(255,255,255,.8);
filter:Alpha(opacity=80);
} input[type=text], input[type=password], input[type=email], input[type=number], input[type=tel], input[type=search] {
height: 1.57em;
} input[type=text], input[type=password], input[type=email], input[type=tel] {
width: 302px;
} div.placeholder {
color: #666;
background-color: transparent;
margin-top: 7px; margin-top:6px \9;
margin-left: 9px;
white-space: nowrap;
} div.ltr_override.placeholder {
margin-left: 9px;
margin-right: auto;
text-align: left;
}
</style>
<script type="text/javascript">
function InpFocus(obj) {
var login = obj; login.style.border = "1px solid #999";
}
function InpBlur(obj) {
var login = obj; login.style.border = "1px solid #bababa";
}
function InpKeypress(obj) {
var login = obj; if (login.value === "" && window.event.keyCode === 8) return; var placeHolder = login.nextElementSibling || util.getNextSibling(login.nextSibling); placeHolder = util.getDomNode(placeHolder.childNodes); placeHolder.innerText = "";
}
function InpKeyup(obj) {
var login = obj;
var placeHolder = login.nextElementSibling || util.getNextSibling(login.nextSibling); placeHolder = util.getDomNode(placeHolder.childNodes); if (login.value === "") {
placeHolder.innerText = "用户名"
} else {
placeHolder.innerText = ""
}
} var util = {
getNextSibling: function (node) {
var n = node; while (n.nodeType != 1) {
n = n.nextElementSibling || n.nextSibling;
} return n;
},
getDomNode: function (arr) {
for (var i = 0; i < arr.length; i++) {
if (arr[i].nodeType === 1) return arr[i];
}
}
};
</script>
</head> <body>
<div class="textbox">
<div style="width: 100%; position: relative;">
<input id="login" name="login" class="ltr_override" type="text" style="position:relative; z-index:6;" autocomplete="off"
onfocus="InpFocus(this);" onblur="InpBlur(this);" onkeypress="InpKeypress(this);" onkeyup="InpKeyup(this);" />
<div class="phholder" style="left: 0px; top: 0px; width: 100%; position: absolute; z-index: 5;">
<div class="placeholder ltr_override" aria-hidden="true" style="cursor: text;">用户名</div>
</div>
</div>
</div>
</body>
</html>
一个漂亮的 PlaceHolder的更多相关文章
- 一个漂亮的js表单验证页面+验证码
一个漂亮的js表单验证页面 见图知其意, 主要特性 带密码安全系数的判断 其他的就没有啥啦 嘿嘿嘿 当然,其代码也在Github上 我也准备了一套可以直接Ctrl + v; Ctrl + c 运行的代 ...
- ctex moderncv版本更新--用latex写一个漂亮的简历
我的电脑是win7系统32位,ctex版本是v2.9.2.164 full(http://www.ctex.org/CTeXDownload) 一直不太清楚moderncv里面类似\cventry这种 ...
- PS网页设计教程XXIV——从头设计一个漂亮的网站
作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...
- 分享一个漂亮的ProgressBar控件
codeprject上看到的一个漂亮的ProgressBar控件.是用vb.net开发的. C#直接在工具箱中引用即可. 地址:http://www.codeproject.com/Articles/ ...
- 小强的HTML5移动开发之路(5)——制作一个漂亮的视频播放器
来自:http://blog.csdn.net/dawanganban/article/details/17679069 在前面几篇文章中介绍了HTML5的特点和需要掌握的基础知识,下面我们开始真正的 ...
- 一个漂亮的php验证码类
一个漂亮的php验证码类(分享) 作者: 字体:[增加 减小] 类型:转载 下面小编就为大家分享一个漂亮的php验证码类.需要的朋友可以过来参考下 直接上代码: 复制代码 代码如下: //验证 ...
- 给Ajax一个漂亮的嫁衣——Ajax系列之五(下)之序列化和反序列化
给Ajax一个漂亮的嫁衣——Ajax系列之五(下)之序列化和反序列化 标签: ajaxdictionaryjsonobject服务器function 2012-07-25 18:41 2242人阅读 ...
- 一个漂亮而强大的自定义view
代码地址如下:http://www.demodashi.com/demo/13502.html 简介 主要提供一个漂亮而强大的自定义SeekBar,进度变化由提示牌 (sign)展示,具有强大的属性设 ...
- 一个漂亮而强大的RecyclerView
代码地址如下:http://www.demodashi.com/demo/13470.html 简介 主要提供了简单易用强大的RecyclerView库,包括自定义刷新加载效果.极简通用的万能适配器A ...
随机推荐
- python re模块和collections
re模块下的常用方法 import re ret = re.findall('a', 'eva egon yuan') # 返回所有满足匹配条件的结果,放在列表里 print(ret) #结果 : [ ...
- cocos源码分析--ClippingNode绘图原理
在OpenGL 绘制过程中,与帧缓冲有关的是模版,深度测试,混合操作.模版测试使应用程序可以定义一个遮罩,在遮罩内的片段将被保留或者丢弃,在遮罩外的片段操作行为则相反.深度测试用来剔除那些被场景遮挡的 ...
- 《Linux 性能及调优指南》3.2 CPU瓶颈
翻译:飞哥 ( http://hi.baidu.com/imlidapeng ) 版权所有,尊重他人劳动成果,转载时请注明作者和原始出处及本声明. 原文名称:<Linux Performance ...
- Java方法通过RestTemplate调用restful接口
背景:项目A需要在代码内部调用项目B的一个restful接口,该接口是POST方式,header中 Authorization为自定义内容,主要传输的内容封装在body中,所以使用到了RestTemp ...
- day4----函数-闭包-装饰器
本文档内容: 1 python中三种名称空间和作用域 2 函数的使用 3 闭包 4 装饰器 一 python中三种名称空间和作用域 1.1名称空间: 当程序运行时,代码从上至下依次执行,它会将变量与值 ...
- python变量存储和深浅拷贝
python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址,而不 ...
- 重识linux-linux的新增与删除用户组和切换命令
重识linux-linux的新增与删除用户组 1 相关文件 /etc/group /etc/gshadow 2操作相关 groupadd group1 groupmod group1 groupdel ...
- openx -书表添加字段
OpenX的版本是2.8.10.在数据表加完数据库之后,还不能读取和保存字段. OpenX使用scheme来 管理数据库表和字段, 修改数据库结构同时也要修改相关schema, 一个是etc/tabl ...
- hive执行报错:Both left and right aliases encountered in JOIN 's1'
原因:两个表join的时候,不支持两个表的字段 非相等 操作. 可以把不相等条件拿到 where语句中. 例如: right JOIN test.dim_month_date p2 on p1.mon ...
- canal 配置
参考:https://www.2cto.com/database/201609/547661.html Spring配置 spring配置的原理是将整个配置抽象为两部分: xxxx-instance. ...