我正在用Pug构建一个组件,并继续使用img元素出错。这里是相关代码(CSS类是Tachyons'):
.fl.w-100.w-75-ns.tc.pa3.pb4.right-col
.f1 COLUMN TWO
.br2.ba.dark-gray.b--black-10.mv4.w-100.w-50-m.w-25-l.mw5.center
img.db.w-100.br2.br--top(src='assets/img/img.svg')
.pa2.ph3-ns.pb3-ns
.dt.w-100.mt1
.dtc
h1.f5.f4-ns.mv0 TITLE
.dtc.tr
h2.f5.mv0 PRICE
p.f6.lh-copy.measure.mt2.mid-gray DESCRIPTION GOES HERE
当我尝试编译时,我收到以下错误:
events.js: 160
throw er; // Unhandled 'error' event
^
Error: /$workdir/$proj_7/_pugfiles/_03.pug:8
img is a self closing element: <img/> but contains nested content.
我无法解决这个问题。我想也许svg有问题,但那不是。我想也许它要求alt
属性,但那不是它。也许它是缩进,但我也没有运气摆弄它。有什么想法吗?
答案 0 :(得分:3)
图片元素里面不能包含其他HTML。这就是问题所在。
所以当你有
时img.db.w-100.br2.br--top(src='assets/img/img.svg')
.pa2.ph3-ns.pb3-ns
帕格(前玉)将解释像
<img class="db w-100 br2 br--top" src="assets/img/img.svg">
<div class="pa2 ph3-ns pb3-ns">
...
</img>
那是无效的HTML。所以帕格不这样做,而是给你一个错误。
我不知道你想要HTML的样子,但是我的例子中的那两个元素应该是兄弟姐妹吗? (即在同一水平)像这样:
.fl.w-100.w-75-ns.tc.pa3.pb4.right-col
.f1 COLUMN TWO
.br2.ba.dark-gray.b--black-10.mv4.w-100.w-50-m.w-25-l.mw5.center
img.db.w-100.br2.br--top(src='assets/img/img.svg')
.pa2.ph3-ns.pb3-ns
.dt.w-100.mt1
.dtc
h1.f5.f4-ns.mv0 TITLE
.dtc.tr
h2.f5.mv0 PRICE
p.f6.lh-copy.measure.mt2.mid-gray
答案 1 :(得分:-1)
img.db.w-100.br2.br--top(src='assets/img/img.svg')
.pa2.ph3-ns.pb3-ns
.dt.w-100.mt1
...
不正确。 这样做:
img.db.w-100.br2.br--top(src='assets/img/img.svg')
.pa2.ph3-ns.pb3-ns
.dt.w-100.mt1
请参阅第2行代码中的diff Pug / Jade通过缩进制作标签。 tag没有一对,并且不应该比itseltf
更低的边缘