CSS 边框透明度可以在不影响元素不透明度的情况下吗?
CSS 中不存在 border-opacity 属性。这就提出了如何创建半透明边框而不存在透明元素内容的缺点的问题。
使用 rgba 颜色格式的解决方案
rgba() 颜色格式允许对于透明颜色。下面是创建 50% 不透明边框的示例:
div { border: 1px solid rgba(255, 0, 0, .5); -webkit-background-clip: padding-box; /* for Safari */ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */ }
此方法可确保边框透明度不会影响元素内容的不透明度。
旧版的替代方法浏览器
不支持rgba的浏览器(例如,IE8 及更早版本),可以使用双边框解决方案:
div { border: 1px solid rgb(127, 0, 0); border: 1px solid rgba(255, 0, 0, .5); -webkit-background-clip: padding-box; /* for Safari */ background-clip: padding-box; /* for IE9+, Firefox 4+, Opera, Chrome */ }
第一个边框提供假不透明度,而第二个边框定义具有所需透明度的实际边框。现代浏览器会忽略第一个边框,而旧版浏览器会使用它来模拟透明度。
Background-clip 属性
确保边框保持透明,即使在应用纯色背景,background-clip: padding-box;属性已添加到示例中。这样可以防止背景影响边框透明度。
以上是如何在不影响元素不透明度的情况下创建半透明边框?的详细内容。更多信息请关注PHP中文网其他相关文章!