作为初学者的我们,对css中半透明颜色的设置的了解大概只有rgba(),hsla()也是其中的一种方法.在实际中,他们应用于背景的原因有一下几点:
1,早期的开发者没有意识到这些新属性就是类似#ff0066和orange的色彩,而是将他们看作是图片,所以仅用于背景;
2,位背景提供降级方案比其他属性简单;
3,在边框这些属性上使用半透明颜色并不简单.
我们一般设置边框的第一步:
border:10px solid hsla(0,0%,100%,.5);
background:white;
按常理来说这样设置是可以得到透明边框的,但是实际中却根本看不到边框的存在.虽然看起来的效果和预期有所差异,
其实边框是存在的.实际上,背景色默认扩展到边框上,这一点是可以通过给边框添加虚线观察到.
我们可以使用background-clip属性来调整这一效果,也就是说,背景色会填充到容器边框以内的地方,所以我们只需要将其
修改为padding-box(让背景色在容器的内边距以及内边距以内填充)就可以实现效果了:
border:10px solid hsla(0,0%,100%,.5 );
background:white;
background-clip:padding-box;
虽然在border-color上能运用rgba(),hsla()设置边框为半透明或完全透明,如果元素设置了背景颜色或背景图片的时候,会直
接影响边框的透明颜色效果.特别是,要看到边框底下的内容时.造成这个现象是由于图片会延伸到边框底部.可以用css3的background-clip
来修正.
时间: 2024-10-22 20:24:13