有一个直接的CSS方法,使一个元素的边界半透明的东西像这样?

border-opacity: 0.7;

如果没有,有没有人知道我如何在不使用图像的情况下做到这一点?


当前回答

你也可以考虑其他的边框样式(虚线,虚线)来让边框部分完全透明:

http://jsfiddle.net/c1rvp3ga

身体{ 背景:url (http://i.imgur.com/pr86mh.jpg); } # foo { 边框:5px虚线#b00; 背景:# ddd; background-clip: padding-box; 填充:8 px; 宽度:100 px; 保证金:30 px; } <p id=foo>一些内容</p>

其他回答

在某些情况下,另一种可行的解决方案是:将边框样式改为虚线样式。

在前景色和背景色之间有交替的像素组与连续的部分透明像素线是不同的。另一方面,这大大减少了对CSS的要求,而且在不需要任何特定于浏览器的指令的情况下,它在每个浏览器之间都更加兼容。

*据我所知,没有什么我通常在这种情况下是创建一个块下面与更大的大小((bordersize*2)+originalsize),并使其透明使用

filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;

这里有一个例子

#main{
    width:400px;
    overflow:hidden;
    position:relative;
}
.border{
    width:100%;
    position:absolute;
    height:100%;
    background-color:#F00;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    -khtml-opacity: 0.5;
    opacity: 0.5;
}
.content{
    margin:15px;/*size of border*/
    background-color:black;
}
<div id="main">
    <div class="border">
    </div>
    <div class="content">
        testing
    </div>
</div>

更新:

这个答案已经过时了,毕竟这个问题已经有8年的历史了。今天所有最新的浏览器都支持rgba,框影等等。但这是8年前的一个很好的例子。

由于这个答案是谷歌结果的顶部,所以决定为像我这样的新手发布一个更新(2021年)的答案。

你可以使用rgba颜色设置边框不透明度。

border:2px solid rgba(232, 69, 69,.5); /* notice the .5 */

参见示例提琴在这里- http://jsfiddle.net/joshdane/74pybasm/33/

你可以使用它,享受它。

有一些讨论说旧的浏览器不支持rgba,但大多数人不再使用旧的浏览器了。如果您只是在学习,不要担心支持旧的浏览器。

这很简单,使用一个0偏移量的实体阴影:

#foo {
  border-radius: 1px;
  box-shadow: 0px 0px 0px 8px rgba(0,0,0,0.3);       
}

此外,如果您为元素设置一个边界半径,它会为您提供非常圆润的边界

jsFiddle演示

你也可以考虑其他的边框样式(虚线,虚线)来让边框部分完全透明:

http://jsfiddle.net/c1rvp3ga

身体{ 背景:url (http://i.imgur.com/pr86mh.jpg); } # foo { 边框:5px虚线#b00; 背景:# ddd; background-clip: padding-box; 填充:8 px; 宽度:100 px; 保证金:30 px; } <p id=foo>一些内容</p>