28

私は多くの透明性が関係する Web サイトに取り組んでおり、完全に RGBA で構築してから IE のフォールバックを試みようと考えました。外側の境界線が丸みを帯びており、囲んでいるボックスの背景よりも不透明でない「facebox」スタイルの境界効果が必要です。

http://24ways.org/2009/working-with-rgba-colourの最後の例は、それが可能であることを示唆しているようですが、私はそれを機能させることができないようです. 次のことを試すと:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

 <title>RGBA Test</title>
 <style type='text/css'>
   body {
     background: #000;
     color: #fff;
   }
   #container {
     width: 700px;
     margin: 0 auto;
     background: rgba(255, 255, 255, 0.2);
     border: 10px solid rgba(255, 255, 255, 0.1);
     padding: 20px;
   }
  </style>
</head>
<body>
  <div id='container'>
    This should look like a facebox.
  </div>
</body></html>

背景が要素の境界の下に「拡張」されているように見えます。これにより、ピクセル値が加算されます。したがって、背景と境界線の両方が半透明の場合、境界線は常に要素の背景よりも不透明になります。これは私が達成しようとしていることとは正反対ですが、私が見た例に基づいてそれが可能であるように思われます.

また、コンテナ内で別の要素を使用できないことも付け加えておく必要があります。これは、コンテナでボーダー半径を使用して角を丸くし、背景がある場合は Webkit が子要素の角を四角にするためです。これは基本的に、正方形の内容で丸みを帯びた外側の境界線を意味します。

申し訳ありませんが、この画像を投稿できません... どうやら、画像を投稿するのに十分な担当者がいないようです。

4

3 に答える 3

28

これを実現するには、新しいbackground-clip: padding-box;プロパティを使用できます。ボックス内の背景がどこから始まるかを計算します。詳細と例については、こちらをご覧ください

于 2011-01-29T21:17:42.090 に答える
5

これを Firefox でテストすると、あなたの説明が確認されます。これが意味することを理解するのに少し時間がかかりました。境界線は(あなたが言うように)追加的なものであるため、境界線の透明度を下げても、その下の透明な背景には影響しません。

その場合、目的の効果をシミュレートし、アルファよりも多くの色を操作する必要があります。

background: rgba(128, 128, 128, 0.7);
border: 10px solid rgba(0, 0, 0, 0.1);
于 2010-04-12T23:36:35.063 に答える
3

これを試して:

#container {
    width: 700px;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.2);
    border: 10px solid rgba(255, 255, 255, 0.1);
    padding: 20px;

    /* and here is the fix */
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
}
于 2010-10-31T06:54:27.367 に答える