应该是一个非常简单的使用jade和css在div中不显示图片的问题,但我一直解决不了,求教各位大神。
我是个新手,在学习用nodejs+mongodb+jade做网页。这个问题中应该只涉及到了jade和css。 我想做一个由div分块的网页,每个块里面显示一张图片。示意图如下:
图中蓝色部分是一个大的div块,橙色部分是3个小的div块,绿色矩形表示3张图片。做起来应该是很简单的。 下面是我的CSS代码和Jade代码。
homePage.css: html{height:100%;} body{height:98%;background-color:rgb(128,128,128);} #Container{ min-height:100%; height: 50%; width:95%; margin:0 auto; background-color:white; overflow: hidden; } #ButtonBlock{ height: 35%; width:100%; padding:25px 0px 0px 0px; text-align: center; background-color: darkorchid; }
homePage.jade: doctype html html head title Hotel Home Page link(rel=‘stylesheet’, href=’/stylesheets/hotelHomePage.css’)
body div#Container div#ButtonBlock img(src=’/images/button1.jpg’) br div#ButtonBlock img(scr=‘images/button2.jpg’) br div#ButtonBlock img(src=’/images/button2.jpg’) br img(src=‘images/button1.jpg’)
写的时候缩进是没有问题的,这里没有显示缩进。自己感觉代码写得挺正常的,但是运行起来效果是这样: 图中的“按钮1”“按钮2”就是要显示的图片。可以看见上方div和下方div都可以正确显示图片,只有中间的div不能显示图片。请问错误在哪里呢?谢谢各位大神!
为什么绝对路径,相对路径混写的。
inspect 一下出问题的element,看是哪个attribute出问题了。
@zysam 你说的是图片的路径吗。我这样写是为了看看是不是路径写法的影响。实际上这两种写法都可以。我试过写了一个handler来处理由图片发送的get请求,显示它请求的url,发现即使我写的’images/button2.jpg’,get请求的url也是’/images/button2.jpg’。所以应该不是这个地方的问题,我也就先放在这没改了。
@leapon 是不是用util.inspect去查看对象的意思啊?但是我觉得这个问题貌似根本就没有涉及到js代码。图片发送的get请求是自动处理的(以前我是手动写了个router.get()来处理图片发送过来的get请求),除了这个get请求之外,好像就没有什么涉及到js的了。 我最想不明白的是,三个紫色div块用的是同一个ButtonBlock的ID,也就是它们的属性参数是相同的,图片也是相同的button1.jpg和button2.jpg,为什么上下两个都可以显示图片,只有中间的不行。
你确定缩进没问题?全tab还是全空格?
不管有没有问题,你在浏览器里右键”查看元素“,看看html代码符合不符合你的预期。如果真是缩进问题,html代码就和你预想的不同。
@pylpyl 不是。是检查DOM element的
@leapon 我这样做了一下,确实发现有不正常的地方。上方div块中的图显示为200px × 50px,并且图片的路径在img标签中是显示为一个链接的,即有下划线,点击后会显示该图片。如图所示:
而中间div块的图片显示为0px × 0px,并且它在img标签中的路径不是一个链接,如图:
我以为是图片尺寸太大,用了10px的正方形图片,结果还是一样的。真是完全没道理啊!完全想不出原因。
@coordcn 我用的全TAB。缩进确实没问题的,如果有问题运行到这个页面会报错的。查看了元素确实发现了不正常的地方,就是中间div块的大小显示为0px × 0px,而且它在img标签里面的路径不是链接(其它图片路径显示为链接)。可以看我楼上回复中的截图。感觉这个问题完全没道理啊!
@pylpyl 我刚才按照你的代码实现了下,在我这边没有问题。
如果是tab和空格混用问题,编译时就会报错了,但有的时候还是会出现缩进错误造成的html代码不符合预期,这种情况是自己疏忽造成的,编译就不会报错,浏览器还会自作聪明的帮你将元素闭合起来。你将jade生成的html输出到文件看下,是不是你想要的结果。
你第二个
<img src="test.jpg">
写成了
<img scr="test.jpg">
一定要仔细啊。
@coordcn Good catch!
@coordcn 对对对!还真是写错了!都怪自己写得不够专心啊!太谢谢你了!缩进有IDE照看着一般不会有问题,最容易大意的往往还是这些小阴沟,哎!希望大家引以为戒,不要步我的后尘啊!谢谢你,非常感谢!