javascript - Jade 没有正确渲染流体宽度等距的 div

标签 javascript html node.js css pug

我目前正在使用 express.js 和 Jade 将我一直在开发的 HTML5/CSS3/Javascript 网站迁移到 Node.js。

我有一个容器,它保持宽度可变,等距 divs(text-justify 方法)在纯 HTML 中工作得很好,但当由 Jade 生成时它失败了将它们隔开(在 chrome、firefox 和 opera 中测试)。令人困惑的是呈现的 HTML 和 css 属性是相同的。

纯 HTML fiddle :http://fiddlesalad.com/html/fluid-column-layout-html-works

Jade 生成的 HTML fiddle :http://fiddlesalad.com/less/fluid-column-layout-jade-not-working/

看起来 text-align: justify; 不工作....虽然我不知道为什么。

我是 Node.js、Express.js 和 Jade 的新手,所以我的 app.js 或路由处理程序可能没有正确配置(我使用了 express --session testnpm install 在更新我的 package.json 来处理我的依赖项之后)?

是否有其他方法可以使用等间距、流畅的 div(我也尝试过这种类似的方法:Fluid width with equally spaced DIVs)?

app.js:

    /**
     * Module dependencies.
     */

    var express = require('express');
    var routes = require('./routes');
    var user = require('./routes/user');
    var http = require('http');
    var path = require('path');

    var app = express();

    // all environments
    app.set('port', process.env.PORT || 3000);
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.json());
    app.use(express.urlencoded());
    app.use(express.methodOverride());
    app.use(express.cookieParser('your secret here'));
    app.use(express.session());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));

    // development only
    if ('development' == app.get('env')) {
      app.use(express.errorHandler());
    }

    app.get('/', routes.index);

    http.createServer(app).listen(app.get('port'), function(){
      console.log('Express server listening on port ' + app.get('port'));
    });

路由.js /* * 获取主页。 */

    exports.index = function(req, res){
      res.render('index', { title: 'Express' });
    };

最佳答案

哇。事实证明,纯 HTML 版本的空白是不同之处。你的 Jade 被渲染成这样:

<div class="grid"><div class="column">Item 1</div><div class="column">Item 2</div><div class="column">Item 3</div><div class="column">Item 4</div><div class="column">Item 5</div></div>

但是当你手动写出来时,你会得到:

<div class="grid">
  <div class="column">Item 1</div>
  <div class="column">Item 2</div>
  <div class="column">Item 3</div>
  <div class="column">Item 4</div>
  <div class="column">Item 5</div>
</div>

您可以尝试在配置中使用 app.locals({pretty:true}) 将漂亮模式设置为真,但这样您就失去了在生产环境中未将漂亮设置为真的好处.

至于达到同样目的的另一种方法,我目前没有答案。

关于javascript - Jade 没有正确渲染流体宽度等距的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209214/

相关文章:

html - 为较小的屏幕分辨率加载不同的内联图像

mysql - 多次插入 Mysql Node JS 中的 resultId

javascript - Javascript 中的属性值

html - 删除页面页脚会使页面变形。如何修复它?

javascript - window.print() 在 IE7 和 IE8 中卡住

node.js - Nodejs : how to set fake path for files to download

javascript - 在nodejs中与集群共享流

javascript - 在 Javascript 闭包中捕获计数器值

javascript - 在网站上连续播放音乐

javascript - 在 IE 中使用 javascript 嵌入 SWF 对象时出现问题