以下a codepen link说明了我的问题。
我希望能够在一个范围内包含一个div(带有它自己的复杂内容)并降低不透明度,但它不起作用。
有效的解决方案,但我无法使用:
但为什么不用span工作呢?
<!-- unwrapped -->
<div>
<p>Here is some DOM stuff</p>
</div>
<!-- wrapped but not working -->
<span style="opacity: .5;">
<div>
<p>Here is some DOM stuff</p>
</div>
</span>
<!-- wrapped and working — I don't have luxury to do this, however -->
<span style="display: block; opacity: .3">
<div>
<p>Here is some DOM stuff</p>
</div>
</span>
答案 0 :(得分:3)
它实际上 工作,而不是像Chrome,Safari和Opera这样的WebKit / Blink浏览器。这是WebKit派生浏览器中一个长期存在的问题。
.block {
display: block;
}
.inline {
display: inline;
}
.inline-no-children {
display: inline;
opacity: 0.5;
}
.block-no-children {
display: block;
opacity: 0.5;
}
.inline-with-children {
display: inline;
opacity: 0.5;
}
.block-with-children {
display: block;
opacity: 0.5;
}
&#13;
<span class="inline-no-children">inline no children</span>
<hr />
<span class="block-no-children">block no children</span>
<hr />
<span class="inline-with-children">
inline with children:
<span class="block">block (fails to become transparent in WebKit/Blink)</span>
<span class="inline">inline</span>
</span>
<hr />
<span class="block-with-children">
block with children:
<span class="block">block</span>
<span class="inline">inline</span>
</span>
&#13;
虽然不是问题的原因(正如我们在上面看到的那样,标签名称无关紧要),但在内联元素({{1})中包装块元素(div
标签)在技术上无效}标签)。你真的应该在这里使用像span
这样的块显示元素。
答案 1 :(得分:0)
内联元素只能包含内联块和内联元素。块元素没有这样的限制。
因此,选项是使所有内部元素内联块/内联或制作跨度块(如第二个示例中所做的那样)或使用块元素而不是跨度,例如格。