• 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]


    开始,我们有了一系列的解决方案,我们将动手搭建新系统吧。

    用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe

    工欲善其事必先利其器。需要用到以下工具。

    Visual Studio 2012

    您可以安装MVC4 for vs2010用VS2010来开发,但是貌似你将不能使用EF5.0将会是EF4.4版本,但这没有多大的关系。

    MVC4将挂载在.NET Framework4.5上。

    好!

    打开我们熟悉的VS创建一个空解决方案。我起了个名字叫AppSolution,类库命名空间将与App开头,如App.BLL,App.Web等命名,喜欢酷一点的朋友你可以用的名字来命名

    如Joy.BLL,Jason.BLL,zhangsan.BLL,随便你。直接是BLL也可以

    我们将创建项目

    1. MVC4.0的App.Admin 网站 Internet选项,选择Razor视图

      

    先下载Easyui1.3.2

    最高版本是1.3.4我们选择1.3.2是因为1.3.2以上的是jquery 2.0

    jquery2.0将不支持IE8.假如你已经抛弃IE8,那您可以体验更高的版本和更小更快的js库。(官方他是这样说的)

    删掉不必要的东西,因为有些东西我们要了,有些保留,复制easyui到相应目录下,我喜欢把脚本和样式分开放。

    • 1.把jquery.easyui.min.js放到scripts目录下
    • 2.主题themes放到到content下 这里我只保留灰色和蓝色主题,其他主题我的审美有限度,大家可以到easyui官方下载新的主题
    • 3.把Images文件夹移动到content下
    • 4.Filters文件删掉
    • 5.把素材和site.css放到content目录下,我已经为大家准备好这个项目所要用到的图片素材,不够我们再添加
    • 6.把controllers的AccountController.cs,HomeController.cs删除
    • 7.把View视图自带的cshtml删掉。
    • 8.把script无关或者不是压缩的我都删掉了,因为我认为不必要调试。以后我们遇到问题,用其他工具来辅助调试,如httpAnalyes软件等

     好了,我们开始搭建

     还是新建一个“空”的控制器HomeController,添加index视图

    index代码

    <!DOCTYPE html>
    
    <html>
    <head>
        <title>Index</title>
        <meta name="viewport" content="width=device-width" />
         <script src="@Url.Content("~/Scripts/jquery.min.js")" type="text/javascript"></script>
         <script src="@Url.Content("~/Scripts/jquery.easyui.min.js")" type="text/javascript"></script>
         @Styles.Render("~/Content/css")
         @Styles.Render("~/Content/themes/blue/css")
         @Scripts.Render("~/bundles/home")
    </head>
    <body class="easyui-layout">
        <div id="OverTimeLogin"  class="easyui-dialog" data-options="closed:true,modal:true">
            <iframe width="726px" scrolling="no" height="497px" frameborder="0"  id="iOverTimeLogin"></iframe>
        </div>
        <div data-options="region:'north',border:false,split:true" style="height: 60px;">
            <div class="define-head">
                <div class="define-logo">
                   <div id="LoginTopLine">System Manage</div>
                    <div id="LoginBotoomLine">MVC4+EF5.0+EasyUI</div>
                </div>
                <div class="define-account">
                       
                </div>
            </div>
        </div>
        <div data-options="region:'west',split:true,title:'菜单列表'" style=" 200px; height:100%; padding-top: 2px; background-color:#fff; overflow:auto">
            <div id="RightTree" style=" background-color:#fff;">
                <div class="panel-loading">加载中...</div>
            </div>
        </div>
        <div data-options="region:'south',border:false" style="height: 20px;">
            <div class="define-bottom">
                
    
            </div>
        </div>
        <div data-options="region:'center',border:false">
            <div id="mainTab" class="easyui-tabs" data-options="fit:true">
                <div title="我的桌面" data-options="closable:true" style="overflow: hidden; background:#fff">
                    <iframe scrolling="auto" frameborder="0" src="" style=" 100%; height: 100%;"></iframe>
                </div>
            </div>
        </div>
        <div id="tab_menu" class="easyui-menu" style=" 150px;">
            <div id="tab_menu-tabrefresh" data-options="iconCls:'icon-reload'">
                刷新</div>
            <div id="tab_menu-openFrame">
               在新的窗体打开</div>
            <div id="tab_menu-tabcloseall">
                关闭所有</div>
            <div id="tab_menu-tabcloseother">
                关闭其他标签页</div>
            <div class="menu-sep">
            </div>
            <div id="tab_menu-tabcloseright">
               关闭右边</div>
            <div id="tab_menu-tabcloseleft">
               关闭左边</div>
            <div id="tab_menu-tabclose" data-options="iconCls:'icon-remove'">
              关闭</div>
            <div id="menu" class="easyui-menu" style=" 150px;">
            </div>
        </div>
    </body>
    </html>
    

      

    这里我们看到head @Styles.Render("~/Content/css")这些代码,这是MVC4的捆版压缩技术,将css和javascript压缩输出到页面。我已经做好了所以大家只要看下就可以。也可以谷歌一下他的原理组成。博客园很多大虾也都给出了答案。其文件是App_Start下的BundleConfig.cs

    $(function () {
              $('#tab_menu-tabrefresh').click(function () {
                  /*重新设置该标签 */
                  var url = $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src");
                  $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src", url);
              });
              //在新窗口打开该标签
              $('#tab_menu-openFrame').click(function () {
                  var url = $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src");
                  window.open(url);
              });
              //关闭当前
              $('#tab_menu-tabclose').click(function () {
                  var currtab_title = $('.tabs-selected .tabs-inner span').text();
                  $('#mainTab').tabs('close', currtab_title);
                  if ($(".tabs li").length == 0) {
                      //open menu
                      $(".layout-button-right").trigger("click");
                  }
              });
              //全部关闭
              $('#tab_menu-tabcloseall').click(function () {
                  $('.tabs-inner span').each(function (i, n) {
                      if ($(this).parent().next().is('.tabs-close')) {
                          var t = $(n).text();
                          $('#mainTab').tabs('close', t);
                      }
                  });
                  //open menu
                  $(".layout-button-right").trigger("click");
              });
              //关闭除当前之外的TAB
              $('#tab_menu-tabcloseother').click(function () {
                  var currtab_title = $('.tabs-selected .tabs-inner span').text();
                  $('.tabs-inner span').each(function (i, n) {
                      if ($(this).parent().next().is('.tabs-close')) {
                          var t = $(n).text();
                          if (t != currtab_title)
                              $('#mainTab').tabs('close', t);
                      }
                  });
              });
              //关闭当前右侧的TAB
              $('#tab_menu-tabcloseright').click(function () {
                  var nextall = $('.tabs-selected').nextAll();
                  if (nextall.length == 0) {
                      $.messager.alert('提示', '前面没有了!', 'warning');
                      return false;
                  }
                  nextall.each(function (i, n) {
                      if ($('a.tabs-close', $(n)).length > 0) {
                          var t = $('a:eq(0) span', $(n)).text();
                          $('#mainTab').tabs('close', t);
                      }
                  });
                  return false;
              });
              //关闭当前左侧的TAB
              $('#tab_menu-tabcloseleft').click(function () {
    
                  var prevall = $('.tabs-selected').prevAll();
                  if (prevall.length == 0) {
                      $.messager.alert('提示', '后面没有了!', 'warning');
                      return false;
                  }
                  prevall.each(function (i, n) {
                      if ($('a.tabs-close', $(n)).length > 0) {
                          var t = $('a:eq(0) span', $(n)).text();
                          $('#mainTab').tabs('close', t);
                      }
                  });
                  return false;
              });
    
          });
    $(function () {
        /*为选项卡绑定右键*/
        $(".tabs li").live('contextmenu', function (e) {
            /*选中当前触发事件的选项卡 */
            var subtitle = $(this).text();
            $('#mainTab').tabs('select', subtitle);
            //显示快捷菜单
            $('#tab_menu').menu('show', {
                left: e.pageX,
                top: e.pageY
            });
            return false;
        });
    });
    
    
    
    
    function addTab(subtitle, url, icon) {
        if (!$("#mainTab").tabs('exists', subtitle)) {
            $("#mainTab").tabs('add', {
                title: subtitle,
                content: createFrame(url),
                closable: true,
                icon: icon
            });
        } else {
            $("#mainTab").tabs('select', subtitle);
            $("#tab_menu-tabrefresh").trigger("click");
        }
        $(".layout-button-left").trigger("click");
        //tabClose();
    }
    function createFrame(url) {
        var s = '<iframe frameborder="0" src="' + url + '" scrolling="auto" style="100%; height:99%"></iframe>';
        return s;
    }
    
    
        $(function () {
            $(".ui-skin-nav .li-skinitem span").click(function () {
                var theme = $(this).attr("rel");
                $.messager.confirm('提示', '切换皮肤将重新加载系统!', function (r) {
                    if (r) {
                        $.post("../../Home/SetThemes", { value: theme }, function (data) { window.location.reload(); }, "json");
                    }
                });
            });
        });
    

      

    index的脚本,这个home.js的脚本,他集成了tab页的右键菜单我已经集成到系统。运行之前要在Global.asax启用压缩

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Http;
    using System.Web.Mvc;
    using System.Web.Optimization;
    using System.Web.Routing;
    
    namespace App.Admin
    {
        // 注意: 有关启用 IIS6 或 IIS7 经典模式的说明,
        // 请访问 http://go.microsoft.com/?LinkId=9394801
    
        public class MvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                WebApiConfig.Register(GlobalConfiguration.Configuration);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                //启用压缩
                BundleTable.EnableOptimizations = true;
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                AuthConfig.RegisterAuth();
            }
        }
    }
    

      

    在BundleConfig.RegisterBundles(BundleTable.Bundles);前面加入

    //启用压缩
    BundleTable.EnableOptimizations = true;
    好,我们来看看效果!

    如果你要启用灰色主题那么在将@Styles.Render("~/Content/themes/blue/css")

    修改为@Styles.Render("~/Content/themes/gray/css")即可

    其实这一些没什么好说的,只是为系统搭建了一个简单的框架。如果用easyui没有不下几个小时也是很难搭建起来的,不过别担心,我为大家准备了原代码

    代码下载  下载的源码有的同学运行有问题请把App_Start下的BundleConfig.cs更改为

    using System.Web;
    using System.Web.Optimization;
    
    namespace App.Admin
    {
        public class BundleConfig
        {
            // 有关 Bundling 的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=254725
            public static void RegisterBundles(BundleCollection bundles)
            {
    
                bundles.Add(new ScriptBundle("~/bundles/common").Include(
                            "~/Scripts/common.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/home").Include(
                           "~/Scripts/home.js"));
                bundles.Add(new ScriptBundle("~/bundles/account").Include(
                           "~/Scripts/Account.js"));
                //easyui
                bundles.Add(new StyleBundle("~/Content/themes/blue/css").Include("~/Content/themes/blue/easyui.css"));
                bundles.Add(new StyleBundle("~/Content/themes/gray/css").Include("~/Content/themes/gray/easyui.css"));
                bundles.Add(new StyleBundle("~/Content/themes/metro/css").Include("~/Content/themes/metro/easyui.css"));
    
    
                bundles.Add(new ScriptBundle("~/bundles/jqueryfrom").Include(
                            "~/Scripts/jquery.form.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/easyuiplus").Include(
                            "~/Scripts/jquery.easyui.plus.js"));
    
                bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                            "~/Scripts/jquery.validate.unobtrusive.plus.js"));
    
                // 使用 Modernizr 的开发版本进行开发和了解信息。然后,当你做好
                // 生产准备时,请使用 http://modernizr.com 上的生成工具来仅选择所需的测试。
                bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                            "~/Scripts/modernizr-*"));
    
                bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
    
    
    
    
    
            }
        }
    }
    

      

      1 html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, button, textarea, select, p, blockquote, th, td {margin: 0;padding: 0;}
      2 html, body {height: 100%;width: 100%;}
      3 body {font: 12px/1.33 "微软雅黑",Verdana,"宋体",Helvetica,sans-serif;background-color:#fff}
      4 /*通用
      5 ===============================================*/
      6 table {border-spacing: 0;}
      7 .tablespacing {border-spacing: 3px;}
      8 .clear{ clear:both}
      9 fieldset, img {border: 0 none;}
     10 li {list-style: none outside none;}
     11 h1, h2, h3, h4, h5, h6 {font-size: 100%;font-weight: normal;}
     12 cite, em {font-style: normal;}
     13 input[type="button"], input[type="reset"], input[type="submit"], input[type="radio"], input[type="checkbox"] {cursor: pointer;}
     14 input[type="text"],input[type="password"],textarea{border:1px solid #ccc}
     15 input[type="text"],input[type="password"]{ padding:2px; height:16px;}
     16 .clearfix:after {clear: both;content: ".";display: block;height: 0;visibility: hidden;}
     17 label[disabled="true"], label[disabled=""], label[disabled="disabled"] {color: #000000;}
     18 a:link, a:visited {text-decoration: none;}
     19 a:hover {text-decoration:none;}
     20 
     21 .displaynone{display:none}
     22 .fl{ float:left}
     23 .fr{ float:right}
     24 header,footer,nav,section {display: block;}
     25 .pd10{ padding:10px}
     26 .pd3{ padding:3px}
     27 .pd0{ padding:0px}
     28 .pt5{ padding-top:5px}
     29 .pt10{ padding-top:10px}
     30 .pr5{ padding-right:5px}
     31 .pr10{ padding-right:10px}
     32 .pr20{ padding-right:20px}
     33 .pb5{ padding-bottom:5px}
     34 .pb10{ padding-bottom:10px}
     35 .pl5{ padding-left:5px}
     36 .pl10{ padding-left:10px}
     37 .pl20{ padding-left:20px}
     38 .mt2{ margin-top:2px}
     39 .mb2{ margin-bottom:2px}
     40 .mt5{ margin-top:5px}
     41 .mb5{ margin-bottom:5px}
     42 .mb-3{ margin-bottom:-3px}
     43 .lh24{ line-height:24px}
     44 .lh30{ line-height:30px}
     45 
     46 .wid100f{width:100%}.wid80{ width:80px}.wid100{ width:100px}.wid120{ width:120px}.wid150{ width:150px}.wid590{ width:590px}
     47 
     48 /*选择*/
     49 .SelLookUp{ background:url('Images/icon/lookup.png') no-repeat center; padding:8px 11px}
     50 .ui-state-default .SelLookUp{ background-position:right; padding:2px 20px 2px 5px; color:#2B77BD; font-weight:normal}
     51 
     52 /*所有按钮样式
     53 ===============================================*/
     54 .mvctool
     55 {
     56     height:30px;
     57 }
     58 .searchText{float:left; margin:2px 5px 0 0}
     59 
     60 .icon-reload{background:url(Images/tools.png) no-repeat 0px -180px;height:16px;padding-left:18px;display:inline-block}
     61 .icon-search{background:url(Images/tools.png) no-repeat -1px -259px;height:16px;padding-left:18px;display:inline-block}
     62 .icon-save{background:url(Images/tools.png) no-repeat 0px -137px;height:16px;height:16px;padding-left:18px;display:inline-block}
     63 .icon-ok{background:url(Images/tools.png) no-repeat 0px -218px;height:16px;height:16px;padding-left:18px;display:inline-block}
     64 .icon-remove{background:url(Images/tools.png) no-repeat 0px -30px;height:16px;height:16px;padding-left:18px;display:inline-block}
     65 .icon-add{background:url(Images/tools.png) no-repeat 0px 0px;height:16px;padding-left:18px;display:inline-block}
     66 .icon-edit{background:url(Images/tools.png) no-repeat 0px -62px;height:16px;height:16px;padding-left:18px;display:inline-block}
     67 .icon-details{background:url(Images/tools.png) no-repeat 0px -97px;height:16px;height:16px;padding-left:18px;display:inline-block}
     68 .icon-man{background:url(Images/icons.png) no-repeat 0px 0px;height:16px;padding-left:18px;}
     69 .icon-return{background:url(Images/icons.png) no-repeat 0px -311px;height:16px;padding-left:18px;}
     70 .icon-group{background:url(Images/icons.png) no-repeat 0px -42px;height:16px;padding-left:18px;}
     71 .icon-key{background:url(Images/icons.png) no-repeat 0px -374px;height:16px;padding-left:18px;}
     72 .icon-send{background:url(Images/icons.png) no-repeat 0px -293px;height:16px;padding-left:18px;}
     73 .icon-show{background:url(Images/icons.png) no-repeat 0px -333px;height:16px;padding-left:18px;}
     74 .icon-uncheck{background:url(Images/icons.png) no-repeat 0px -190px;height:16px;padding-left:18px;}
     75 .icon-settings{background:url(Images/icons.png) no-repeat 0px -107px;height:16px;padding-left:18px;}
     76 .icon-share{background:url(Images/icons.png) no-repeat 0px -128px;height:16px;padding-left:18px;}
     77 .icon-flag{background:url(Images/icons.png) no-repeat 0px -148px;height:16px;padding-left:18px;}
     78 .icon-clock{background:url(Images/icons.png) no-repeat 0px -169px;height:16px;padding-left:18px;}
     79 .icon-close{background:url(Images/icons.png) no-repeat 0px -64px;height:16px;padding-left:18px;}
     80 .icon-cancelclose{background:url(Images/icons.png) no-repeat 0px -87px;height:16px;padding-left:18px;}
     81 .icon-check{background:url(Images/icons.png) no-repeat 0px -210px;height:16px;padding-left:18px;}
     82 .icon-comment{background:url(Images/icons.png) no-repeat 0px -352px;height:16px;padding-left:18px;}
     83 .icon-export{background:url(Images/icons.png) no-repeat 0px -230px;height:16px;padding-left:18px;}
     84 .icon-female{background:url(Images/icons.png) no-repeat 0px -19px;height:16px;padding-left:18px;}
     85 .icon-copy{background:url(Images/icons.png) no-repeat 0px -250px;height:16px;padding-left:18px;}
     86 .icon-error{background:url(Images/icons.png) no-repeat 0px -271px;height:16px;padding-left:18px;}
     87 
     88 select.select,select.select2{ height:22px; line-height:22px; border:1px solid #E1E1E1; color:#7A7A7A; background:#FAFAFA; vertical-align:middle; }
     89 select.select{padding:1px;}
     90 select.select2{padding:2px;}
     91 input.normal{ width:255px; }
     92 input.small{ width:95px;}
     93 input.small2{ width:50px; }
     94 input.small3{ width:130px; }
     95 input.middle{ width:210px; }
     96 .txtInput{ margin-right:5px; padding:0 3px 0 3px; height:22px; line-height:22px; background:#FAFAFA; border:1px solid #D7D7D7; vertical-align:middle; font-size:12px; font-family:'微软雅黑'; }
     97 .txtInput2{ padding:0 3px 0 3px; height:20px; line-height:20px; background:#FAFAFA; border:1px solid #D7D7D7; vertical-align:middle; font-family:'微软雅黑'; }
     98 .btnSubmit{ padding:0 10px; height:28px; line-height:28px; color:#3D80B3; font-weight:bold; border:1px solid #AED0EA; background:url(Images/btn_bg.gif) 0 -44px repeat-x; cursor:pointer; vertical-align:middle; overflow:hidden; }
     99 .btnSubmit:hover{ background-position:0 -72px;}
    100 .btnSearch{ padding:0 8px; height:24px; line-height:24px; color:#707070; border:1px solid #D7D7D7; background:url(Images/btn_bg.gif) repeat-x; cursor:pointer; vertical-align:middle; overflow:hidden; }
    101 .btnSearch:hover{ background-position:0 -22px; color:#005eac; }
    102 .btnSelect{ padding:0; border:1px #e1e1e1 solid; color:#707070; cursor:pointer; vertical-align:middle; overflow:hidden; background:url(Images/btn_bg.gif) repeat-x; }
    103 .btnSelect:hover{ background-position:0 -22px; color:#005eac; }
    104 .btnSelect span.add{ display:block; height:20px; line-height:20px; padding:1px 3px 1px 18px; white-space:nowrap; background:url(tools_icon.gif) 2px -27px no-repeat; }
    105 .btnInput{ margin:auto; padding:0 5px; border:1px #e1e1e1 solid; color:#707070; background:url(Images/btn_bg.gif) repeat-x; cursor:pointer; vertical-align:middle; line-height:24px; height:22px; overflow:hidden; }
    106 
    107 /*file容器样式*/
    108 a.files{ width:52px; height:22px; overflow:hidden; display:block; border:1px solid #d7d7d7; background:url(Images/upfile_bg.gif) left top no-repeat;text-decoration:none; }
    109 /*file设为透明,并覆盖整个触发面*/
    110 a.files input{ margin-left:-270px; font-size:24px; cursor:pointer; filter:alpha(opacity=0); opacity:0; }
    111 /*取消点击时的虚线框*/
    112 a.files, a.files input{ outline:none;/*ff*/hide-focus:expression(this.hideFocus=true);/*ie*/ }
    113 .expic{cursor: pointer; width: 140px; height: 140px; border: 1px #ccc solid;}
    114 .uploading{ float:left; background:url(Images/loading2.gif) no-repeat left center; padding-left:18px;display:none; line-height:24px; height:24px; color:#333; }
    115 #FileUpload{ width:140px;}
    116 /* Styles for validation helpers
    117 -----------------------------------------------------------*/
    118 .field-validation-error{background:url(Images/icon-error.png) no-repeat 0px 0px;padding-left:18px; margin-bottom:-3px;color: #ff0000;}
    119 .field-validation-valid{display: none;}
    120 input.input-validation-error,select.input-validation-error{border: 1px solid #ff0000;background-color: #ffeeee;}
    121 .validation-summary-errors{font-weight: bold;color: #ff0000;}
    122 .validation-summary-valid{display: none;}
    123 /*from*/
    124 /*easyui inherit*/
    125 .panel-body{ overflow:visible;}
    126 /* Styles for editor and display helpers----------------------------------------------------------*/
    127 fieldset{width: 100%;margin-left: 4px;padding: 1em;border: 1px solid #CCC;}
    128 legend{font-size: 1.1em;font-weight: 600;padding: 2px 4px 8px 4px;}
    129 .search{width: 600px;float: left;}
    130 /* Tabs样式
    131 =========================================================*/
    132 .tab_nav{ margin:8px auto; height:23px; line-height:23px; border-bottom:1px #e1e1e1 solid; font-family:"微软雅黑"; }
    133     .tab_nav li{ float:left; height:22px; margin:0 2px 0 5px; border:1px #e1e1e1 solid; border-bottom:0; background:url(Images/btn_bg.gif) repeat-x; text-align:center; }
    134     .tab_nav li.selected,.tab_nav li.selected a:hover{ background:none; border-bottom:1px solid #fff; margin-bottom:-1px; _border-top:1px; }
    135     .tab_nav li a:link,.tab_nav li a:visited,.tab_nav li a:active{ display:block; float:left; padding:0 10px; height:22px; color:#767676; outline:none; }
    136     .tab_nav li a:hover{ background:url(Images/btn_bg.gif) repeat-x left -22px; }
    137     .tab_nav li.selected a{ color:#3D80B3; }
    138     .tab_con{ display:none; position:relative; }
    139 /*表格样式
    140 =============================================*/
    141 .msgtable,.form_table{ width:100%; border:1px solid #EDECFF; font-family:Verdana, Geneva, sans-serif; }
    142 .msgtable th{ padding:0.5em; font-weight:700; background:url(tools_bg.gif) left -150px repeat-x; }
    143 .msgtable td{ padding:0.4em; border-bottom:1px solid #F3F3F3; }
    144 .msgtable .tr_odd_bg{ background:#F9F9F9; }
    145 .msgtable .tr_hover_col{ background:#EAEAEA; }
    146 
    147 .form_table th{padding:5px 8px 5px 0;color:#333;text-align:right;}
    148     .form_table td{padding:6px 0 5px 10px;text-align:left;color:#717171;line-height:200%}
    149     .form_table label{ margin-left:10px; padding:7px 0 0; font-family:"宋体"; }
    150     .form_table label.attr{color:#1d1d1d}
    151     .form_table label input{ margin-right:5px; vertical-align:middle;}
    152     .form_table span label{ margin:0; padding:0; }
    153     .form_table textarea{font-size:12px;padding:3px;color:#000;border:1px #d2d2d2 solid;vertical-align:middle; font-family:"微软雅黑";}
    154     .form_table textarea.small{ width:350px; height:75px;}
    155     .form_table textarea.big{ width:500px; height:350px;}
    156     .form_table img.operator{ width:12px; height:12px; margin:0 6px; cursor:pointer; vertical-align:bottom; }
    157 .setinput355 input,.setinput355 textarea{ width:355px; }    
    158 .setinput255 input,.setinput255 textarea{ width:255px; }
    159 .setinput95 input,.setinput95 textarea{ width:95px;}
    160 .setinput50 input,.setinput50 textarea{ width:50px; }
    161 .setinput130 input,.setinput130 textarea{ width:130px; }
    162 .setinput210 input,.setinput210 textarea{ width:210px; }
    163 
    164 .border_table{ border-width:1px; margin:0; background:#fff; }
    165     .border_table th{ border:1px solid #e1e1e1; vertical-align:middle; padding:0px 10px; white-space:nowrap; word-break:keep-all; }
    166     .border_table td{ border:1px solid #e1e1e1; vertical-align:middle; padding:5px 10px 5px; white-space:nowrap; word-break:keep-all; }
    167     .border_table thead th{ color:#333;white-space:nowrap;text-align:center;background:url(tools_bg.gif) repeat-x left -150px; }
    168     .border_table tbody th{padding-right:5px; text-align:right;color:#707070;background-color:#f9f9f9}
    169     .border_table .spec_pic{margin-bottom:5px}
    170     .border_table label{color:#777}
    171     .border_table tr.td_c td{text-align:center}
    172 
    173 .select-any{ padding:10px}
    174 .select-any li{ float:left; display:inline-block; height:22px; line-height:22px; padding-right:15px; white-space:nowrap}
    175 
    176 .top_pic_shadow{position:relative; float:left; height: 158px; width:130px; margin-top:3px; background:#eee;}
    177 .top_pic{ position:absolute; background:#fff; left:-3px; top:-3px; border:1px solid #ced7e7; padding:4px 4px 0; height: 158px; width:120px; text-align:center; overflow:hidden}
    178 .top_pic:hover{ border:1px solid #ffbd67}
    179 .top_pic img{ cursor:pointer; width:120px; height:120px}
    180 .top_pic div{ color:#666}
    181  
    182 .sizetable input{width: 40px; height:20px; line-height: 20px;}
    183 .sizetable{ background:#ddd}
    184 .sizetable tr td{ background:#fff; padding:2px}
    185 .sizetable tr td.lf{ text-align:right; width:50px; background:#f0f0f0; color:#666}
    186  
    187  
    188 textarea{ padding:2px;}
    189 .fromEditTable{ width:100%; }
    190 .fromEditTable td{ height:30px; padding-left:5px; border-bottom:dashed 1px #ccc}
    191 .setTextWidth300 input[type="text"]{width:300px;}
    192 .setTextWidth300 textarea{width:300px; margin:5px 0 5px 0;}
    193 .setTextWidth200 input[type="text"]{width:200px;}
    194 .setTextWidth200 textarea{width:200px; margin:5px 0 5px 0;}
    195 .setTextWidth100 input[type="text"]{width:100px;}
    196 .setTextWidth100 textarea{width:100px; margin:5px 0 5px 0;}
    197 .setTextWidth80 input[type="text"]{width:80px;}
    198 .setTextWidth80 textarea{width:80px; margin:5px 0 5px 0;}
    199 #ErrMesList{ display:none; }
    200 #ErrMesListContent{padding-left:10px;min-width:200px; line-height:22px;}
    201 #ErrMesListContent ul li{list-style:disc}
    202 
    203 /*themes*/
    204 .ui-skin-nav {float: left;padding: 0;list-style: none outside none;}
    205 .ui-skin-nav .li-skinitem {float: left;font-size: 12px;margin-left: 5px;text-align: center;}
    206 .ui-skin-nav .li-skinitem span {cursor: pointer;width:12px;height:10px;display:inline-block;border:1px solid #fff;}
    207 .ui-skin-nav .li-skinitem span.cs-skin-on{border: 1px solid #FFFFFF;}
    208 .ui-skin-nav .li-skinitem span.gray{background-color:gray;}
    209 .ui-skin-nav .li-skinitem span.blue{background-color:blue;}
    210 .ui-skin-nav .li-skinitem span.pepper-grinder{background-color:#BC3604;}
    211 .ui-skin-nav .li-skinitem span.cupertino{background-color:#D7EBF9;}
    212 .ui-skin-nav .li-skinitem span.dark-hive{background-color:black;}
    213 .ui-skin-nav .li-skinitem span.sunny{background-color:#FDD140;}
    214 
    215 
    216 /* 即时消息 */
    217 .webim-logo{color:#1e5dda}
    218 .webim-logo img{ vertical-align:middle}
    219 .icon-webim{ background:url(WebIM/css/images/webimlogo.gif) no-repeat left 0; height:20px; width:20px;}
    220 
    221 .webim-lfbox{ float:left; width:546px; border-right:1px solid #ddd}
    222 .webim-rtbox{ float:right;width:158px; padding:0 10px}
    223 
    224 .webim-info-tit{ line-height:30px; overflow:hidden; padding:0 10px}
    225 .webim-info-tit h2{ float:left; font-size:12px; padding-right:20px}
    226 .webim-info-tit-name{ float:left; width:450px; padding-top:5px; line-height:0}
    227 .webim-info-tit-name li{ display:inline-block; margin-right:5px; margin-bottom:5px; line-height:20px; padding-right:2px; border:1px solid #77b8de; background:#cbebfb; border-radius:4px;}
    228 .webim-info-tit-name li a{ display:inline-block;}
    229 .webim-info-tit-name li a.webim-info-tit-thename{ padding:0 2px}
    230 .webim-info-tit-name li a img{ vertical-align:middle; padding-right:2px}
    231 a.webim-info-tit-name-close{ background:url(WebIM/css/images/webim-02.gif) no-repeat; display:inline-block; padding-top:1px; width:7px; height:7px; cursor:pointer;}
    232 .webim-info-tit-name li:hover{background:#ebf9ff;}
    233 .webim-info-tit-name li:hover a{ color:#ff6600}
    234 .webim-info-tit-name li.current{ border:1px solid #c6ad56; background:#fffadb;}
    235 .webim-info-tit-name li.current a,.webim-info-tit-name li.current a:visited,.webim-info-tit-name li.current a:hover{ color:#e98e18}
    236 .webim-info-tit-name li.current a.webim-info-tit-name-close{ background:url(WebIM/css/images/webim-02b.gif) no-repeat;}
    237 .webim-info-tit-name li.current:hover a.webim-info-tit-name-close{ background:url(WebIM/css/images/webim-02.gif) no-repeat;}
    238 
    239 .webim-info-contentbox{ background:#fff; padding:10px;}
    240 .webim-info-content p{ padding-bottom:10px}
    241 .webim-info-content .tit{ color:#666; padding-bottom:0}
    242 
    243 .webim-send-about{  height:22px; line-height:22px; padding:0 10px}
    244 .webim-send-about .fl a{ padding-right:10px}
    245 .webim-send-about .fr a{ padding-left:10px}
    246 .webim-send-butbox{  height:36px; line-height:36px; padding:0 10px}
    247 .webim-send-butbox p{ float:left; width:460px; display:table; height:36px}
    248 .webim-send-butbox p span.inter{ display:table-cell; vertical-align:middle; line-height:18px}
    249 .webim-send-butbox p span.inter-ps{ text-overflow:ellipsis; overflow:hidden}
    250 span.inter-ps span{ display:inline-block; padding-right:5px}
    251 .webim-send-but{ float:right; background:url(WebIM/css/images/webim-09.gif) no-repeat; width:63px; height:26px; margin-top:5px; border:none; cursor:pointer}
    252 
    253 .webim-person{ margin:5px 0 5px 0;}
    254 .webim-list-tab{ margin-bottom:5px; overflow:hidden}
    255 .webim-list-tab li{ float:left; height:20px; line-height:20px; border-bottom:2px solid #fff; padding:0 5px}
    256 .webim-list-tab li.current{border:2px solid #fff; border-bottom:none; font-weight:bold}
    257 .webim-org-search{ padding-bottom:5px}
    258 .webim-org-search input[type="text"]{ width:132px; height:16px; line-height:16px; border:1px solid #a6d2e8; background:#fff}
    259 .webim-org-search input[type="button"]{ background:url(WebIM/css/images/webim-04.gif) no-repeat; width:37px; height:20px; line-height:20px; vertical-align:top; border:none; cursor:pointer}
    260 .webim-latest ul li{ background:url(WebIM/css/images/webim-01.gif) no-repeat 0 2px; padding-left:20px; padding-bottom:5px}
    261 
    262 .psselect-lf,.psselect-rt{ float:left; width:160px; height:350px; padding:10px; border:1px solid #C5DBEC}
    263 .psselect-lf .webim-list-tab li{ float:left; height:20px; line-height:20px; border-bottom:1px solid #c6dbef; padding:0 5px}
    264 .psselect-lf .webim-list-tab li.current{border:1px solid #c6dbef; border-bottom:none; font-weight:bold}
    265 
    266 .psselect-rt{ float:right; line-height:22px;}
    267 .psselect-md{ float:left; width:30px; height:350px; line-height:350px; text-align:center; font-family:"宋体"}
    268 
    269 .memberlist{ background:#f3f3f3; border:1px solid #ccc; height:300px; overflow:auto}
    270 /* 信息系统样式 */
    271 .article-content{ background:#edf6ff; border:1px solid #a5cbe7; border-radius:5px; padding:10px; margin-bottom:10px; overflow:hidden; width:100%}
    272 .article-content tr td{ vertical-align:top}
    273 .article-content .lf{ width:150px; color:#999; line-height:18px}
    274 .comment-tit{ background:#D3EBF8; border:1px solid #A5CBE7; border-bottom:none; border-radius:5px 5px 0 0; height:24px; line-height:24px; text-indent:10px}
    275 .comment-content{ border:1px solid #a5cbe7; border-radius:0 0 5px 5px; padding:10px; margin-bottom:10px}
    276 .comment-content .mymes{ border-bottom:1px dashed #ddd; padding:10px 0}
    277 .mytitle{ padding-bottom:5px; color:#999}
    278 .mytitle span{ color:#ab7100}
    279 .mycomment{ text-indent:24px}
    280 #comment-txt-input{ margin-bottom:5px}
    281 .infolist-icon{ padding:2px 2px 2px 17px; background:url(/Content/images/icon/text.png) no-repeat;}
    282 
    283 .thefile-tit{ font:normal 18px/36px Microsoft YaHei; text-align:center}
    284 .thefile-about{ border-bottom:1px dashed #cecfce; text-align:center; color:#999}
    285 .thefile-about span{ padding:0 10px}
    286 .thefile-compress{ padding:10px 0; line-height:18px}
    287 .fabu-tit{ background:#D3EBF8; border-bottom:1px solid #90C1DD; padding:10px; margin-bottom:5px; font-size:14px; font-weight:bold; color:#296d9c}
    288 /*导航按钮*/
    289 .arrow-first,.arrow-pre,.arrow-next,.arrow-last{ background:url(/Content/Images/arrow.gif) no-repeat; display:inline-block; height:16px; width:16px; cursor:pointer; vertical-align:middle}
    290 .arrow-first{ background-position:-7px 0}
    291 .arrow-pre{ background-position:-35px 0}
    292 .arrow-next{ background-position:-63px 0}
    293 .arrow-last{ background-position:-91px 0}
    294 .but-row a,.but-row a:visited{ border:1px solid #B4C1C9; border-radius:5px; display:inline-block; height:16px; line-height:16px; padding:2px 4px; margin-left:5px}
    295 .but-row a:hover{ border:1px solid #4994de; background:#eff7ff}
    296 .but-row a.but-disabled,.but-row a.but-disabled:visited,.but-row a.but-disabled:hover{ color:#bdd3e7; background:none; border:1px solid #B4C1C9; cursor:default}
    297 .but-row a.but-disabled span{ opacity:0.35; cursor:default}
    298 /* 页码样式 */
    299 .pages-box{ clear:both; border:2px solid #ddd; border-top:1px solid #ddd; overflow:hidden; height:100%; width:100%}
    300 .pages-box tr td{ padding:15px 10px}
    301 .pages .item{padding:1px 0;} /*数字页索引样式*/
    302 .pages .cpb {color:#ff6600; font-weight:bold; padding: 1px 6px;} /*当前页样式*/
    303 .pages a { text-decoration:none;padding: 2px 6px; margin:0 1px; border: 1px solid #ddd;}
    304 .pages a:hover { background-color: #ff8800; color:#fff; border:1px solid #ff8800; text-decoration:none;font-weight:normal;}
    305 .pages input{ width:40px; border:1px solid #c1d2e2; text-align:center; padding:2px}
    Site.css

    关于代码:代码没有上传整个解决方案,你下载解压后,只需要引用现有类库即可,关于里面的素材,不懂的可以问我,里面包含里以后所有要用到的素材,请关注系统的童鞋不要删除,可以修改

    下一讲预告:漂亮的登录页面

  • 相关阅读:
    UNIX网络编程——处理服务器中大量的TIME_WAIT
    UNIX网络编程——套接字选项(心跳检测、绑定地址复用)
    UNIX网络编程——TCP 滑动窗口协议
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    [Training Video
    Use formatter to format your JAVA code
    右键菜单没有新建文本文件了,怎么办?
  • 原文地址:https://www.cnblogs.com/zhangjunwei87/p/4669878.html
Copyright © 2020-2023  润新知