クリップパスが Firefox で機能しないのはなぜですか?
クリップパスまたは使用モデルに問題はありません。CSS クリップパスがまだサポートされていないため、Firefox では機能しません。Firefox はurl()
、SVG クリップパスを使用して機能する構文のみをサポートします。
Firefox で動作させるにはどうすればよいですか?
clip-path を Firefox で動作させたい場合は、以下のスニペットのように CSS の clip-path を SVG バージョンに変換し、url()
構文を使用する必要があります。スニペットでわかるように、CSS クリップパスを SVG に相当するものに変換するのは非常に簡単です。正しいタグを使用し、すべてのパーセンテージを比率に変換するだけで済みます。
(見やすいように色を白から黄緑に変更しました。)
#banner {
background-color: yellowgreen;
position: fixed;
top: 0;
width: 100%;
height: 110px;
-webkit-clip-path: url(#banner-clip);
clip-path: url(#banner-clip);
overflow: hidden;
}
#header {
width: 800px;
margin: 20px auto 10px;
overflow: hidden;
}
#content-wrapper {
width: 800px;
margin: auto;
background-color: rgba(255, 255, 255, 0.80);
overflow: hidden;
padding: 100px 20px 20px;
}
#logo {
position: fixed;
border-collapse: collapse;
}
<!-- The SVG is for the clip-path -->
<svg width="0" height="0">
<defs>
<clipPath id="banner-clip" clipPathUnits="objectBoundingBox">
<polygon points="0 0, 1 0, 1 1, 0 .65" />
</clipPath>
</defs>
</svg>
<div id="banner">
<div id="header">
<div id="logo">
<a href="#" target="_blank"><img src="http://placehold.it/180x46" width="180" height="46" alt="Logo" /></a>
</div>
</div>
</div>
<div id="content-wrapper">
Content wrapper
</div>
上記のデモは IE で動作しますか? そうでない場合、それを機能させる方法は?
上記のデモは、IE をまったくサポートしていないため、IE では動作しませんclip-path
。IE のサポートも必要な場合はclip-path
、SVG を廃止して直接使用する必要があります。以下のスニペットには、このためのデモがあります。
ここで行われているのは、SVG のpath
要素を使用してパス (台形) を作成し、必要な塗りつぶし (背景色) を指定してから、.header
. 形状不足は画像のように機能します (ただし、画像ではありません)。
#banner {
position: fixed;
top: 0;
width: 100%;
height: 110px;
overflow: hidden;
}
#banner svg {
position: absolute;
top: 0px;
left: 0px;
height: 100%;
width: 100%;
}
#banner svg polygon{
fill: yellowgreen;
}
#header {
width: 800px;
margin: 20px auto 10px;
overflow: hidden;
}
#content-wrapper {
width: 800px;
margin: auto;
background-color: rgba(255, 255, 255, 0.80);
overflow: hidden;
padding: 100px 20px 20px;
}
#logo {
position: fixed;
border-collapse: collapse;
}
<div id="banner">
<svg viewBox='0 0 1 1' preserveAspectRatio='none'>
<polygon points="0 0, 1 0, 1 1, 0 .65" />
</svg>
<div id="header">
<div id="logo">
<a href="#" target="_blank">
<img src="http://placehold.it/180x46" width="180" height="46" alt="Logo" />
</a>
</div>
</div>
</div>
<div id="content-wrapper">
Content wrapper
</div>
便利なリンク: