一个Web IM的UI练习
2011-07-08 14:30
148 查看
一个Demo。只完成了html+css部分,还没来及添加交互的js以及更多想法是用websocket做个后台
html -
css-
如图:
html -
<div class="im_wrap"> <div class="im_header rad2"> <div class="lay1"> <div class="oper_bar r"> <a href="#" class="oper_min oper_change_skin"></a> <a href="#" class="oper_min oper_mini"></a> <a href="#" class="oper_min oper_close"></a> </div> <span class="nickname">云起</span> </div> <div class="lay2"> <div class="oper_bar"> <a href="#" class="oper oper_a1"></a> <a href="#" class="oper oper_a2"></a> <a href="#" class="oper oper_a3"></a> </div> <div class="oper_bar r"> <a href="#" class="oper oper_a4"></a> </div> </div> </div> <div class="im_body"> <div class="im_search"> <form action=""> <input typ=="text" class="search_input rad4" placeholder="查找"/> </form> <span class="search_icon"></span> </div> <div class="im_list_wrap"> <dl class="open_status"> <dt><span class="type_name">最近联系人</span> <span class="num">(0/3)</span></dt> <dd style="display:none;"> <ul class="im_list"> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st online">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> <li class="cur"> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st mobile">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st offline">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> </ul> </dd> </dl> <dl> <dt class="cur"><span class="type_name">我的好友</span> <span class="num">(2/5)</span></dt> <dd> <ul class="im_list"> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st online">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> <div class="personal_info_wrap"> <div class="p_info"> <img src="pic/p1.jpg" class="p_face" alt="" /> <p class="p_name">云起</p> <p>男,上海 浦东</p> <p>关注:100 粉丝:100 微博:1000</p> <p class="p_sign">又是一个大晴天</p> </div> <div class="p_oper"> <a class="follow">+ 加关注</a> <span class="followed">√ 已关注 | <a href="">取消</a></span> </div> </div> </li> <li class="cur"> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st mobile">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st offline">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st offline">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> <li> <div class="face"> <img src="pic/p1.jpg" alt="" /> <span class="st offline">online</span> </div> <div class="im_info"> <div class="u_name">云起</div> <div class="sign">又是一个大晴天</div> </div> </li> </ul> </dd> </dl> <dl> <dt><span class="type_name">陌生人</span> <span class="num">(3/8)</span></dt> <dd></dd> </dl> <div class="bottom"> <div class="close_wrap">▲</div> </div> </div> </div> </div>
css-
/* global */ .h30{height:30px;} .rad2{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;} .rad4{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;} .im_wrap{ position:fixed;left:0;top:150px; width:250px;height:80px; background:#fff;z-index:3000; } /* header */ .im_header{ width:250px;height:52px; background: url(../images/im/header_bg.png) repeat-x 0 0; box-shadow:0 0 5px #518CEA; } /* -lay1 */ .lay1{height:22px;} .nickname{padding-left:30px;color:#fff;} .oper_min{ float:left;display:inline;margin:1px; width:18px;height:18px;overflow:hidden; background:url(../images/im/oper_min.png) no-repeat -2px 0; } .oper_change_skin{background-position:-2px 0;} .oper_mini{background-position:-24px 0;} .oper_close{background-position:-44px 0;} .oper_change_skin:hover{background-position:-2px -19px;} .oper_mini:hover{background-position:-24px -19px;} .oper_close:hover{background-position:-44px -19px;} /* -lay2 */ .lay2{height:30px;} .oper{ float:left;display:inline;margin:1px; width:25px;height:25px;overflow:hidden; background:url(../images/im/oper.png) no-repeat -36px 0; } .oper_a1{background-position:-36px 0;} .oper_a2{background-position:-65px 0;} .oper_a3{background-position:-107px 0;} .oper_a4{background-position:-276px 0;} .oper_a1:hover{background-position:-36px -27px;} .oper_a2:hover{background-position:-65px -27px;} .oper_a3:hover{background-position:-107px -27px;} .oper_a4:hover{background-position:-276px -27px;} /* body */ /* -search */ .im_search{ padding:0 5px;position:relative; height:36px;line-height:36px; background:#EDEDED url(../images/im/search_bg.png) repeat-x 0 0; } .search_input{ position:absolute;top:6px;left:5px;z-index:1; padding-left:25px; width:212px;height:22px;line-height:22px; border:1px solid #DDDDDD;color:#787878; } .search_icon{ position:absolute;top:7px;left:10px;z-index:2; width:21px;height:22px; background:url(../images/im/search.png) no-repeat 0 0; } /* -im_list_wrap */ .im_list_wrap{margin-top:-2px;padding-top:2px;background:#fff;} .im_list_wrap dl{} .im_list_wrap dt{ margin:2px 0; height:20px;line-height:20px; font-size:12px; } .im_list_wrap dt:hover{ background:url(../images/im/type_list_bg_hover.png) repeat-x 0 0; } .im_list_wrap dt.cur{ background:url(../images/im/type_list_bg.png) repeat-x 0 0; } .im_list_wrap dt span.num{font-size:11px;} .im_list_wrap dt span.type_name{ padding-left:20px; background:url(../images/im/arr_01.png) no-repeat 10px 3px; } .im_list_wrap dl.open_status span.type_name{ background:url(../images/im/arr_02.png) no-repeat 8px 5px; } /* -im_list */ .im_list{} .im_list li{ position:relative; padding:10px 0 10px 22px; height:30px;/* overflow:hidden */; } .im_list li:hover{ background:url(../images/im/li_bg_hover.png) repeat-x 0 0; } .im_list li.cur{ background:url(../images/im/li_bg_cur.png) repeat-x 0 0; } .im_list .face{ float:left;display:inline;position:relative; } .im_list .face img{ width:30px;height:30px; -moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px; } .face .st, .face .online, .face .offline, .face .mobile{ position:absolute;bottom:5px;right:0px; width:9px;height:9px;overflow:hidden;text-indent:-2000px; background:url(../images/im/st_online.png) no-repeat 0 0; } .face .offline{ background:url(../images/im/st_offline.png) no-repeat 0 0; } .face .mobile{ width:9px;height:12px;bottom:6px; background:url(../images/im/st_mobile.jpg) no-repeat 0 0; } .im_list .im_info{ float:left;margin-left:9px;display:inline; width:170px;height:35px;overflow:hidden; } .im_info .u_name{margin-top:-3px;width:180px;height:15px;overflow:hidden;line-height:15px;} .im_info .sign{color:#999999;} /* -bottom */ .bottom { margin-top:1px; height:14px;line-height:14px; background:#E8E8E8;text-align:center; font-size:12px;color:#9C9C9C; } .bottom .close_wrap{ margin:0 auto; width:94px;height:13px; } .bottom .close_wrap:hover{background:#838383;color:#E8E8E8;} /* -personal_info */ .personal_info_wrap{ position:absolute;left:251px;top:0;padding:3px;/* --!!! */display:block; width:260px;height:134px;z-index:2000; border:1px solid #A9AFAF;background:#fff url(../images/im/p_info_bg.png) repeat-x 0 0; } .p_info{ padding-top:9px; height:102px; border-bottom:1px solid #DBDBDB; } .p_face{ float:left;display:inline;margin:0 7px 0 9px; width:50px;height:50px; -moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px; } .p_info p{float:left;display:inline;width:190px;height:19px;line-height:19px;overflow:hidden;} .p_name{margin-top:-3px;} .p_info .p_sign{padding-left:10px;width:245px;height:40px;overflow:hidden;color:#888888;} .p_oper{ height:20px; border-top:1px solid #F9F9F9; } .follow, .followed{padding:3px 5px;background:#70C04C;color:#fff;cursor:pointer;} .follow:hover, .followed:hover{text-decoration:none;} .followed{background:#EAEAEA;color:#666;} .im_list li:hover .personal_info_wrap{display:block;}
如图:
相关文章推荐
- QT http练习——创建一个能够下载URL资源的UI程序,并保存到本地指定目录下
- ios开发UI基础—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 课堂练习1: 请定义一个交通工具(Vehicle)的类
- 《Javascript DOM 编程艺术》一个练习
- UIday1703:UITest17 代码练习
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现
- UI练习
- 【练习】输入一个单向链表,输出该链表中倒数第k 个结点
- 在UIAlterView的代理方法中 点击确定时 添加一个UIView到[[UIApplication sharedApplication].keyWindow上只出现了0.5秒左右就消失的问题
- 一个基于Yahoo UI的Ajax俄罗斯方块游戏
- 一个基于Yahoo UI的Ajax俄罗斯方块游戏
- 2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡 (0 1背包 特殊处理一个物品)
- 2018年全国多校算法寒假训练营练习比赛(第二场) E 小G有一个大树(树状DP 未解决)
- 郭克华手机编程教学视频----我的练习源码(6)实战:实现一个简单的监听程序
- OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(上)
- 在一个activity中更改另一个activity的UI
- 用“响应式JS-UI框架PathJs-UI制作一个代码域”
- 用UILocalNotification实现一个闹钟(Swift)
- iOS开发UI基础—27使用UItableview完成一个简单的QQ好友列表(一)
- Event Handler的开发与部署--扩展练习:开发一个通用的EventHandler