【发布时间】:2013-05-31 17:02:11
【问题描述】:
我想要实现的是 仅在 div 中间的阴影。我现在拥有的是:
<body style="background-color: #ccc;">
<div style="padding: 30px;
-webkit-box-shadow: inset 0px 0px 0px 20px #000;">
Some text in the box</div>
</body>
看起来像 (#1):
但我想实现(#2):
问题 A:是否有可能仅使用 CSS 实现 #2?
问题B:如果问题A是,那么#2应该如何修改以达到仅在顶部和底部的效果,从左到右一直保持两侧阴影对(#3)?
澄清:目的是使用仅显示在 div 中间的 50% 阴影,但我不能更改任何 HTML,只能更改 CSS。此外,此处发布的代码过于简单。 div 中有几个元素,包括图像。我不能改变他们的BG。
【问题讨论】:
-
为什么不直接改变背景颜色呢?我看不出您要在这里实现什么...如果您愿意,可以给一个盒子一个内阴影... box-shadow: inset 0 0 10px #000000;
-
使用背景,您可以使用 background-origin: content-box; 将原点设置为内容框,但框阴影始终附加到边框框,因此它不起作用。你可以得到你想要的东西,如果你用 :first-line 捏造它(如果你的文本只有一行长),但这并不理想,因为它是文本的宽度,没有任何黑客攻击。 jsfiddle.net/zZnQu
-
@DavidKnag,因为我只能更改 CSS,不能创建另一个 div,它大于我想要阴影的区域加上效果应该是背景图像上的阴影。所以我不能改变背景颜色。
inset已经被使用了,虽然我希望阴影在盒子的中间,而不是在它的边缘内侧。 -
如果在 div 上使用渐变背景会怎样?
标签: styles stylesheet css