【问题标题】:Border-Radius & Box-Shadow Not Rendering CorrectlyBorder-Radius & Box-Shadow 渲染不正确
【发布时间】:2012-05-17 13:32:17
【问题描述】:

我正在尝试在网页上同时使用 box-shadow 和border-radius,它显示了一个填充半径所在空间的白色图像。可以将其想象为当您在 Photoshop 中将带有阴影的“透明”图像保存到 jpg 或 png-8 文件时。

这是一张图片,可以向您展示我的意思。

(我还不能发布图片,但这是链接) http://i.imgur.com/jDpIH.png

我将其用作我的 CSS

.whole
{
width: 1000px;
margin: 0 auto;
-webkit-box-shadow: 0px 3px 5px 2px #000000;
-mox-box-shadow: 0px 3px 5px 2px #000000;
box-shadow: 0px 3px 5px 2px #000000; 
}


.top
{
height: 120px;
background-color: #1F1209;
margin-top: 50px;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 10px;
-moz-border-radius-topleft: 10px;
-moz-border-radius-topright: 10px;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}

.footer
{
height: 250px;
background-color: #834C24;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 10px;
-moz-border-radius-bottomright: 10px;
-moz-border-radius-bottomleft: 10px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;
}

那么有谁知道我是否有办法解决这个问题?顺便说一下,这发生在 Firefox 和 IE 中。不过我在其他浏览器中无法查看。

我真的不想使用经过 Photoshop 处理的图像...因为绝对应该使用 CSS3。

对此有什么想法吗?我将不胜感激任何帮助! :)

感谢您的宝贵时间!

【问题讨论】:

  • 你能做一个jsfiddle让我们编辑吗?
  • 您需要为您的 CSS 显示匹配的 HTML。
  • 您需要将边框半径应用于具有 box-shadow 的相同元素以获得您想要的效果。在你的情况下,whole 也应该有 border-radius 样式来实现你想要的。
  • 好的,谢谢,我会试试的。我在四个分段的 div 中使用了四种不同的背景颜色。所以我只是在顶部和底部使用了边框半径。但我会根据你的建议解决一些问题。谢谢! :)
  • 所以我将边框半径应用于“整体”类。但我还必须在页脚和顶部保留边框半径,否则它们将无法正确渲染。那工作得很好。但我唯一符合要求的是“页脚” div 看起来有点乱。正如您在这张图片i.imgur.com/3HSLG.png 中看到的那样,显示了几个白色像素,使其看起来不太平滑。对这个有什么想法吗?这不是有史以来最大的交易。但它会很好,你知道吗?谢谢大家

标签: css


【解决方案1】:

给你一个小提示

使用这个 css3 作为快捷方式,而不是添加 -left -right-top

border-radius:0px 0px 0px 0px;

<!-- [top left] [top right] [bottom right] [bottom left] -->

如果你这样做会更容易。

至于盒子阴影...我不知道为什么会这样,但我使用了这段代码,它运行良好。

box-shadow:0px 0px 10px black;

<!-- in case you don't know ...  [x coordinate] [y coordinate] [size of shadow] [color] -->

好吧,我不知道这些代码是否可以在 IE 上运行,因为我不使用 IE 浏览器,我的电脑会突然挂起一段时间,但是……无论如何。

我重写了你的一个类 css 代码,我希望它能工作。

.footer
{
    height: 250px;
    background-color: #834C24;
    border-radius:10px 10px 10px 10px;
    box-shadow:0px 0px 50px black;
}

而且我认为即使您不输入 -webkit- 和 -moz-,Mozilla 和 Chrome 也会读取它。我希望它也适用于 IE。

无论如何...就是这样。希望这会奏效。

【讨论】:

  • border-radius: 10px 10px 10px 10px 有一个更短的快捷方式 - 它是 border-radius: 10px
  • 我只是说他/她是否可以在每一侧键入不同的值。 :)
  • 它现在看起来不错(边框半径:10px;)在“整体”上。 (box-shadow: 0px 5px 5px #4F4F4F;) 整体。 (边框半径:0px 0px 10px 10px;)在页脚上。 & (border-radius: 10px 10px 0px 0px;) 在顶部。看起来很光滑。
【解决方案2】:

您可能有与容器相关联的背景颜色。

【讨论】:

  • 颜色可能被继承,只是为了排除它尝试背景:无;边框:无;
【解决方案3】:

IE9+、Firefox 4+、Chrome、Safari 5+ 和 Opera 支持border-radius 属性,因为它是CSS3 属性。语法是:

border-radius: 1-4 length|% / 1-4 length|%;

示例 1

border-radius:2em;

相当于:

border-top-left-radius:2em;
 border-top-right-radius:2em;
 border-bottom-right-radius:2em;
 border-bottom-left-radius:2em; 

示例 2

border-radius: 2em 1em 4em / 0.5em 3em;

相当于:

border-top-left-radius: 2em 0.5em;
 border-top-right-radius: 1em 3em;
 border-bottom-right-radius: 4em 0.5em;
 border-bottom-left-radius: 1em 3em;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2021-08-31
    • 2018-02-22
    • 2020-07-12
    • 2018-06-06
    相关资源
    最近更新 更多