我可以问一下使用CSS创建该形状的一些帮助吗?
按钮需要一个圆形图标,以及文本的简单框。
答案 0 :(得分:3)
这是使用:before
伪元素的可能版本。使用border-radius: 50%
将伪元素转换为圆形,然后根据需要定位在矩形div#menu
之前。
您可以使用content
属性将图像(如有问题的图像)添加到伪元素中,如下所示:
content: url(http://yoursite.com/yourimage.png);
或使用background-image
属性:
background-image: url(http://yoursite.com/yourimage.png);
#menu {
position: relative;
width: 100px;
height: 24px;
line-height: 24px;
color: white;
background-color: peru;
border: 1px solid peru;
border-radius: 2px;
padding-left: 24px;
}
#menu:before {
position: absolute;
content: '';
height: 40px;
width: 40px;
top: -9px; /* (height of parent - height of pseudo) / 2 - border-top of parent for vertical mid */
/* top: -17px; (height of parent - height of pseudo) - border-top of parent for bottom align */
left: -24px; /* some value less than width - depends on amount of overlap needed */
border: 1px solid transparent;
background-image: url(http://lorempixel.com/40/40/people/1);
background-color: peru;
border-radius: 50%;
}
/* Just for demo */
* {
font-family: Calibri;
letter-spacing: 2px;
}
#menu {
margin: 25px;
}
<div id='menu'>Menu Text</div>
注意:这实际上是Jason Gennaro发布的答案的另一个版本。如果您需要支持IE较低版本,请使用他的答案,因为它们不支持:before
。
答案 1 :(得分:1)
这是一个快速而又脏的版本:
<强> HTML 强>
<div id="circle"></div>
<div id="rectangle">Header Text</div>
<强> CSS 强>
#circle{
border-radius: 50%;
width: 85px;
height: 85px;
background: brown;
float:left;
}
#rectangle{
width:300px;
height:40px;
background:brown;
color:white;
float:left;
margin-top:20px;
margin-left:-40px;
position:relative;
z-index:-1;
padding-left:60px;
padding-top:6px;
font-family:arial;
font-size:2em;
}
<强>样本强>
<强>解释强>
border-radius:50%
和任意width
来创建圈子。float
两个div允许重叠position
和z-index
将矩形放置在圆圈下image
#circle
醇>