我正在尝试http://www.smashingmagazine.com/2015/05/creating-responsive-shapes-with-clip-path/的CSS剪辑路径,我有这个疯狂的错误。简而言之,代码适用于CodePen和JSFiddle,但它无法在我的本地/应用程序上运行。
这是我试图提出的多边形的代码。首先是CSS:
nav {
position: fixed;
bottom: 0;
background: #BE0F16;
color: #fff;
width: 100%;
padding: 2rem 1rem;
text-align: right;
-webkit-clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 50%);
clip-path: polygon(0 0, 0 100%, 100% 100%, 100% 50%);
-webkit-clip-path: url("#clip-shape");
clip-path: url("#clip-shape");
}
nav .next-chapter {
color: #fff;
padding-left: 1rem;
}
这是相关的HTML:
<!DOCTYPE html>
<html>
<head>
<title>Something</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<link href="css.css" rel="stylesheet" />
</head>
<body>
<nav>
<a class="menu"><i title="Menu" class="fa fa-bars"></i><h1 class="visuallyhidden">Menu</h1></a>
<a class="next-chapter" href="/<%=next%>"><i title="Next Chapter" class="fa fa-hand-o-right"></i><span class="visuallyhidden">Next Chapter</span></a>
<a id="comment" href="http://twitter.com/?status=@uebyn"></a>
</nav>
<svg width="0" height="0">
<defs>
<clipPath id="clip-shape" clipPathUnits="objectBoundingBox">
<polygon points="0 0, 0 1, 1 1, 1 .5" />
</clipPath>
</defs>
</svg>
<script src="script.js"></script>
</body>
</html>
当我打开index.html(上面的HTML)时,它会显示一个矩形而不是我期望的多边形。然而,我遵循了文章中所述的确切说明。
然后我将代码复制到CodePen(http://codepen.io/anon/pen/JdwrQw)和JSFiddle(http://jsfiddle.net/yk95wxmL/), 在同一个浏览器上 ,它的工作原理。
我无法理解这一点。 Firefox在CodePen和JSFiddle上的相同代码上理解并执行css剪辑路径,但不在我的HTML上?可以肯定的是,我将整个HTML复制到Codepen,并且css剪辑路径可以正常工作。这完全超出了我的范围。如果有人能够提出一个可能非常明显的建议,但我不知何故错过了,我将非常感激。
答案 0 :(得分:3)
假设css在一个单独的文件中,即在写
时使用css.cssclip-path: url("#clip-shape");
这实际上是
的缩写clip-path: url("css.css#clip-shape");
但是文件css.css没有一个id为clip-shape的元素(所有元素都在html文件中)。
你需要写
clip-path: url("<the name of the html file goes here>#clip-shape");
显然,如果你使用jsfiddle,所有内容都在同一个文档中,所以你不会在那里看到这个问题。
这里没有Firefox错误。
答案 1 :(得分:0)
谢谢,如果规则在CSS文件中,则修复了它:
.myclass{
clip-path: url("/~powersparks/bz.html#clip");
}
如果只添加到d3模式,它也可以工作和需要:
svg.append("path")
.datum(data)
.attr("class", "area")
.attr("clip-path", "url('/~powersparks/bz.html#clip')")
.attr("d", area);