【Nodejs开发】第2章 网站首页的布局
admin
2023-04-13 16:02:06
0

请关注我的小站:http://oideas.herokuapp.com/

1.布局之前的准备工作

上一章我们已经搭建好了环境,本站就开始我们的OMinds的开发吧。

在开始之前,先让我们来装点东西,打开cmd,切换到project目录,输入命令:


npm install -g supervisor


效果如下图(由于正在等待安装只截了一部分):

【Nodejs开发】第2章 网站首页的布局

注意:每次我们更新代码后,都需要手动停止并重启应用,使用 supervisor 模块可以解决这个问题,每当我们保存修改的文件时,supervisor 都会自动帮我们重启应用。所以这里安装supervisor ,以便于我们能方便看到自己的布局效果。

在任何你觉得合适的地方,建立一个文本文档,写入内容如下:


@echo off
cd E:\nworks\OMinds
supervisor app.js


其中cd E:\nworks\OMinds 是你的项目目录,保存之后,重命名为server.bat,以后启动server只需点击server.bat即可。

注意:假如你的project在e盘,而bat在桌面上,那么需要在以上代码@echo off后面添加一行代码:


 e:


表示切换到e盘。

OK,准备工作已经做好,让我们跑一下server看看吧:

【Nodejs开发】第2章 网站首页的布局


2.开始布局(本站只使用chrome浏览器做效果,如果你自己的网站布局已做好,可以跳过这一章)

首先实现导航栏,在public文件夹下建立p_w_picpaths、js两个目录,加上已经存在的stylesheets目录,共3各目录,打开style.css,清空里面的内容,加入以下css:


body{
    margin: 0 auto;
    padding: 0;
    background: url(../p_w_picpaths/bgnoise_lg.png) repeat left top;
    font: bold 12px/18px "Helvetica Neue", Helvetica, Arial, sans-serif;
}
ul {
    list-style: none;  
}
#navigation {
    margin: 20px auto; 
    text-transform: uppercase;
    color: #444;
}
#navigation:after {
    clear: both;
    content: ".";
    display: block;
    height: 0;
    visibility: hidden;
}
#navigation ul {   
     margin: 0 auto;
     padding:0;
}
#navigation li {
    float: left;
    border-style: solid;
    border-width: 1px;
    border-color: #BABABA #BABABA #BABABA #FFF;
    box-shadow: 0 1px rgba(255,255,255,1) inset;
    -webkit-box-shadow: 0 1px rgba(255,255,255,1) inset;
    background: #F7F7F7; /* Old browsers */
    background: -moz-linear-gradient(top, #F7F7F7 0%, #EDEDED 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F7F7F7), color-stop(100%,#EDEDED)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* IE10+ */
    background: linear-gradient(top, #F7F7F7 0%,#EDEDED 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F7F7F7', endColorstr='#EDEDED',GradientType=0 ); /* IE6-9 */   
}
#navigation li:hover, #navigation li.current {
    box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    -webkit-box-shadow: 0 1px rgba(255,255,255,0.2) inset;
    border-color: #262626 !important;
    background: #4D4D4D; /* Old browsers */
    background: -moz-linear-gradient(top, #4D4D4D 0%, #262626 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4D4D4D), color-stop(100%,#262626)); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(top, #4D4D4D 0%,#262626 100%); /* IE10+ */
    background: linear-gradient(top, #4D4D4D 0%,#262626 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4D4D4D', endColorstr='#262626',GradientType=0 ); /* IE6-9 */
}
#navigation a {
    display: block;
    padding: 10px 15px;
    color: #444;
    text-decoration: none;
    text-shadow: 0 1px #FFF;
}
#navigation a:hover, #navigation li.current a {
    color: #FFF;
    text-shadow: 0 1px #000;
}
#navigation li:first-child {
    border-left-color: #BABABA;
    border-radius: 100px 0 0 100px;
}
#navigation li:last-child {
    border-radius: 0 100px 100px 0;
}


在p_w_picpaths文件夹里把我们的背景图片添加进去:


【Nodejs开发】第2章 网站首页的布局

打开views下的inde.ejs文件,在此之前,先让我们调整一下项目的编码,在eclipse下,右键->properties->resource,text file encoding 选择utf-8,由于目前不支持gbk,index.ejs内容如下(是设置编码格式的):




  
    
    <%= title %>
    
    
    
  
  
    
  


打开浏览求看一下导航的效果:

【Nodejs开发】第2章 网站首页的布局

可以看到搜索与登录之间有一块留白,这个可以根据自己需要进行调整,我的想法是当点击搜索时向右拉出搜索框,不过暂时不着急。

其次,实现内容布局,再次打开style.css,添加以下css代码:

.content {
    max-width: 690px;
    margin: 20px auto;
}
.cell {
    margin: 0 auto;
    background-color: #fff;
    clear: both;
    padding: 18px 20px;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
    margin-bottom: 20px;
    border-radius: 4px;
}
.cell_loc{
    float:right;
    padding:2px 6px;
    background:url(../p_w_picpaths/bgnoise_lg.png);
    border-radius: 9px;
    border-color: #BABABA #BABABA #BABABA #FFF;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2) inset,
                0 0 0 1px rgba(0, 0, 0, 0.2) inset;
    font-size:6px;
}
.cell_author {
    font-size: 14px;
    vertical-align: middle;
    line-height: 100%;
    margin: 0 0 17px;
}
.cell_author img {
    border-radius: 20px;
    box-shadow: 0 0 6px hsla(0, 27%, 42%, .5);
    width: 40px;
    height: 40px;
    max-width: 100%;
    vertical-align: middle;
    margin: 0 10px 0 0;
    border: 0;
}
.cell_author img:hover{
    box-shadow: 0 0 8px hsla(350, 89%, 48%, 0.69);
}
.cell_author a {
    color: #9b8878;
}
.cell_author a:hover {
    color: #300;
}
.cell_text {
    word-break: break-all;
    line-height: 160%;
}
.cell_bar {
    margin: 15px 0 0 0;
    height: 30px;
    font-size: 12px;
}
.cell_bar ul li {
    float: left;
}
.cell_bar ul li a {
    display: block;
    height: 28px;
    line-height: 30px;
    margin-right: 10px;
    text-indent: 20px;
    color: #BEBEBE;
    width: 80px;
    font-weight: 500;
}
.cell_bar ul li a:hover {
    color: #9e8c7b;
}
.cell_bar_comm {
    float: right;
    margin: 0;
    padding: 0;
}
.cell_bar_comm li {
    float: left;
}
.cell_share {
    float: right;
}
.share_icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    overflow: hidden;
    background: url(../p_w_picpaths/share_logo.png) no-repeat;
}
.share_sn {
    float: right;
    margin-right: 5px;
    background-position: -50px 0px;
}
.share_tc {
    float: right;
    margin-right: 15px;
    background-position: -100px 0px;
}
.share_rr {
    float: right;
    margin-right: 5px;
    background-position: -150px 0px;
}


打开index.ejs,在之后添加代码:


OMinds 1#
OMinds,发表你的心事,你可以不用登录,不用在乎是否会被别人嘲笑,因为在这里大家都是一样的没有谁会嘲笑你。
  • 评[10]


其中p_w_picpaths/tem.jpg为:


【Nodejs开发】第2章 网站首页的布局

好,刷新浏览器看看效果如何:

【Nodejs开发】第2章 网站首页的布局


好基本上小站原型已成,下面做一下修剪,在views目录下新建header.ejs、footer.ejs文件,将index.ejs中以上的代码全部拷贝到header.ejs中,并在index.ejs的最顶端添加代码:


<%- include header%>


将index.ejs中最后一个

及以后的代码提取到footer.ejs中,并在indes.ejs中添加代码:


<%- include footer%>


那么,最后index.ejs中应该为:


<%- include header%>
    
OMinds 1#
OMinds,发表你的心事,你可以不用登录,不用在乎是否会被别人嘲笑,因为在这里大家都是一样的没有谁会嘲笑你。
  • 评[10]
<%- include footer%>


以上的首页是没什么问题了,有了显示,就需要有数据来源,来源就是通过投稿页,那么下面来布局投稿页面,先在header.ejs中把代码:


  • 投稿

  • 修改为:


  • 投稿

  • 表示我们通过upminds地址访问投稿页面,直接拷贝复制index.ejs文件命名为:upminds.ejs,将header和footer以外的代码删除。再次打开style.css添加css:


    .upideas_content {
        position: relative;
        width: 690px;
        margin: 0 auto;
        padding: 0 10px 0 10px;
    }
    .clear_fix {
        display: block;
    }
    .clear_fix:after {
        content: ".";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
    }
    .up_content {
        box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
        background: #fff;
        padding: 20px;
        margin-bottom: 20px;
        margin-top: 20px;
        display: block;
        border-radius: 4px;
    }
    .up_bar {
        color: #666;
        width: 200px;
        float: right;
    }
    .up_bar h4 {
        font-size: 16px;
        padding: 0 0 20px 0;
        margin: 0;
    }
    .up_bar ol li {
        padding: 15px 0;
        border-top: 1px solid #efefef;
        list-style-position: inside;
        list-style-type: decimal;
        line-height: 140%;
    }
    .up_content_text {
        width: 422px;
        float: left;
    }
    .up_idea_text {
        box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
        border: 1px solid #ccc;
        background: #f9f9f9;
        font-size: 14px;
        line-height: 18px;
        padding: 10px;
        resize: none;
        width: 400px;
    }
    .up_idea_err{
        float: left;
        color:#FF0000;
        padding: 10px 0 0 0;
    }
    .up_idea_btn {
        border-radius: 2px;
        box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
        background: #FF8000;
        color: #fff;
        font-size: 14px;
        line-height: 18px;
        padding: 10px 20px 10px 20px;
        border: 0 none;
        float: right;
    }


    upminds.ejs中的代码:

    <%- include header%>
        

    投稿须知

    1. 分享自己或朋友的Minds(心事),不浮夸、有意义,不含政治、×××、广告、诽谤、歧视等内容。
    2. 分享的Minds(心事),将在审核之后发布。
    3. 转载请注明出处,任何由Minds引发的法律等纠纷,本站概不负责。
    4. 不得盗用站内其他会员的Minds。
    <%- include footer%>


    打开routes/index.js文件,内容最终为:

    module.exports = function(app) {
      app.get('/', function (req, res) {
        res.render('index', { title: 'OMinds' });
      });
      app.get('/upminds', function (req, res) {
            res.render('upminds', { title: 'OMinds' });
      });
    };


    打开浏览器,点击投稿导航,效果:


    【Nodejs开发】第2章 网站首页的布局

    好了,本站的基本布局以及OK了,有些同学可能会说了,导航里面不是还有很多东西没实现吗,不要紧,当前已经能基本满足需求,别人能投稿,能显示别人的投稿不就ok了吗,其他的慢慢来。

    下一章将会链接db,来动态显示内容,不然,一直静态的多没意思啊。

    注:有些同学可能回觉得,呀,你做这个教程干嘛啊,直接把源码给我们不久ok了吗,还在这墨迹个什么啊,我写的代码很乱,是之前ideas项目的代码,现在做的是Ominds,完全是从头开始做的,一步一步做的,不过,不用担心,我一定会做完的,也没多少东西,每天一章的话,基本上1周半就完事了。


    请关注我的小站http://oideas.herokuapp.com/,最好是能注册一下,当然,由于用的是外机,很卡,不能要求什么了。


    源码已上传到git,点击这里下载

    ideas-ominds交流群:158325682,有想要一起做的,或者有什么不懂的都可以找我哦。


    csdn全blog地址:http://blog.csdn.net/joveth/article/category/1862915


    相关内容

    热门资讯

    员工用企业账号向顾客发送“有偿... “5000陪我一晚上有时间吗?”近日,贵阳一沪上阿姨门店的企业成员账号给顾客发送“有偿陪睡”信息一事...
    一枚鸡蛋的价值跃升之旅(合力奋... □本报全媒体记者 陈晨 蒋晓芳 本报通讯员 范鑫 一枚普通的鸡蛋,在科技创新的加持下,能释放出多大能...
    四川省省长施小琳:将“人工智能... 中新社成都5月11日电 (单鹏 程兆 王鹏)四川省省长施小琳11日在成都表示,四川将“人工智能+”作...
    75个OpenAI打工人,一夜... ▲头图由AI辅助生成 智东西 编译 | 陈佳 编辑 | 漠影 智东西5月11日消息,今日,据《华尔街...
    英媒披露:美国要求在格陵兰新开... 【文/观察者网 王一】美国总统特朗普仍没有放弃他对格陵兰岛的野心。据英国广播公司(BBC)5月12日...
    南京审计大学一男生被曝在校内偷... 南京审计大学5月12日通报:2026年5月11日晚,有网友在网络平台反映我校某学生涉嫌偷拍他人隐私。...
    告别“从摇篮到坟墓”保障?“瑞... 【文/观察者网 柳白】那个人们熟知的,以“从摇篮到坟墓”保障著称的高福利国家瑞典,正在悄然发生变化。...
    以算电协同赋能新型能源体系 来源:经济日报 “十五五”时期是我国基本实现社会主义现代化夯实基础、全面发力的关键时期,也是我国加快...
    原创 芯... 文/王新喜 近期,中芯国际创始人张汝京在采访中表示,认为在半导体行业取得成功就必须能够制造3nm或2...
    Maximo机器人太阳能安装系... Maximo是由AES公司孵化的太阳能机器人企业,近日宣布在AES位于加州克恩县加州城附近的Bell...