ホームページ  >  記事  >  ウェブフロントエンド  >  背景画像を含む CSS3 三角形は、クリック可能な透明領域を処理できますか?

背景画像を含む CSS3 三角形は、クリック可能な透明領域を処理できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-14 15:57:02211ブラウズ

Can CSS3 Triangles with Background Images Handle Clickable Transparent Areas?

背景画像を使用した三角形の作成

質問:

2 つの三角形を使用した Web サイトのデザイン背景画像を含み、クリック可能なリンクとして機能する要素は、三角形の透明な部分をクリックできるようにしようとすると困難になります。このデザインは、CSS3 三角形と背景画像を使用して実現できますか?

答え:

子画像の使用:

簡略化するためこのプロセスを実行し、ほとんどのブラウザとの互換性を維持するには、背景画像の代わりに子画像をリンクに使用することが回避策です。この方法では、変換スキュー プロパティを使用して三角形を作成し、子イメージをオフセットしてスキューを補正します。

手順:

  • コンテナ div を作成する適切な寸法 (例: 幅 900 ピクセル、高さ 600 ピクセル) で配置します。
  • 三角形の 2 つの子 div を追加し、変換原点が対角になるように絶対位置を決めます。
  • 各三角形を特定の角度で傾けます。三角形の高さと幅 (この例では -55.98 度) に基づいて計算された角度。
  • 各三角形内に子画像を作成し、親 div と同じ角度で回転させます。
  • 設定コンテナーと三角形 div の両方で非表示にするオーバーフロー プロパティ。

HTML:

<div>

CSS:

.container {
  overflow: hidden;
  width: 900px;
  height: 600px;
}

.triangle, .triangle img {
  width: 100%;
  height: 100%;
}

.triangle {
  overflow: hidden;
  position: absolute;
  transform: skewX(-55.98deg);
}

.triangle:first-child {
  left: -.25em;
  transform-origin: 100% 0;
}

.triangle:last-child {
  right: -.25em;
  transform-origin: 0 100%;
}

.triangle img {
  transform: skewX(55.98deg);
  transform-origin: inherit;
}

以上が背景画像を含む CSS3 三角形は、クリック可能な透明領域を処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。