我想知道如何使用CSS创建以下效果:
所需输出:
目前,我可以想到的是在图像周围添加边框。但是,如何切割它们,并在图像周围形成部分?
这是我目前的CSS:
- .avatar img {
- border-radius: 50%;
- border: solid 3px #65C178;
- border-width: 4px;
- }
和HTML:
- <div class="avatar"><img src="https://s3.amazonaws.com/uifaces/faces/twitter/soffes/128.jpg" /></div>
这只会在化身图像周围提供边框,而不是具有白色间距的绿色部分。
解决方法
DEMO
输出:
说明
创建边框
>使用border-radius的边框创建边框。
step 1
>然后转换旋转使左上角边框出现在正确的位置.0Step 2(不要忘了“旋转”图像,以另一种方式旋转,使其保持垂直)
白色的空间
除非您对浏览器支持有非常特殊的要求,否则可以删除border-radius属性的供应商前缀。查看canIuse了解更多信息。
CSS:
- .avatar{
- border: solid 4px #54BE69;
- border-left-color:#D5EDDA;
- padding:2px;
- display:inline-block;
- border-radius: 50%;
- position:relative;
- transform:rotate(45deg);
- -ms-transform:rotate(45deg);
- -webkit-transform:rotate(45deg);
- }
- .avatar img{
- display:block;
- border-radius: 50%;
- transform:rotate(-45deg);
- -ms-transform:rotate(-45deg);
- -webkit-transform:rotate(-45deg);
- }
- .avatar:before,.avatar:after{
- content:'';
- position:absolute;
- background:#fff;
- z-index:-1;
- transform:rotate(-45deg);
- -ms-transform:rotate(-45deg);
- -webkit-transform:rotate(-45deg);
- }
- .avatar:before{
- height:4px;
- top:50%;
- left:2px; right:-5px;
- margin-top:-2px;
- }
- .avatar:after{
- width:4px;
- left:50%;
- top:2px; bottom:-5px;
- margin-left:-2px;
- }