创建圆形div比使用图像更简单吗?

bma*_*ter 175 html css geometry css-shapes

我想知道是否有一种更简单的方法来创建循环div而不是我现在正在做的事情.

目前,我只是为每个不同的大小制作一个图像,但这样做很烦人.

无论如何使用CSS来制作圆形的div,我可以指定半径?

thi*_*dot 288

这是一个演示:http://jsfiddle.net/thirtydot/JJytE/1170/

CSS:

.circleBase {
    border-radius: 50%;
    behavior: url(PIE.htc); /* remove if you don't care about IE8 */
}

.type1 {
    width: 100px;
    height: 100px;
    background: yellow;
    border: 3px solid red;
}
.type2 {
    width: 50px;
    height: 50px;
    background: #ccc;
    border: 3px solid #000;
}
.type3 {
    width: 500px;
    height: 500px;
    background: aqua;
    border: 30px solid blue;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="circleBase type1"></div>

<div class="circleBase type2"></div><div class="circleBase type2"></div>

<div class="circleBase type3"></div>
Run Code Online (Sandbox Code Playgroud)

要使其在IE8及更早版本中运行,您必须下载并使用CSS3 PIE.我上面的演示在IE8中不起作用,但这只是因为jsFiddle不能托管PIE.htc.

我的演示看起来像这样:


Tam*_*iev 24

将元素每边的边界半径设置为50%将创建任何大小的圆形显示:

.circle {
  border-radius: 50%;
  width: 200px;
  height: 200px; 
  /* width and height can be anything, as long as they're equal */
}
Run Code Online (Sandbox Code Playgroud)

  • 这可能是现在(2017年)应该使用的方法。 (2认同)

iSa*_*afa 13

试试这个

.iphonebadge {
  border-radius:99px;
 -moz-border-radius:99px;
 -webkit-border-radius:99px;
  background:red;
  color:#fff;
  border:3px #fff solid;
  background-color: #e7676d;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#e7676d), to(#b7070a)); /* Saf4+, Chrome */
  background-image: -webkit-linear-gradient(top, #e7676d, #b7070a); /* Chrome 10+, Saf5.1+, iOS 5+ */
  background-image: -moz-linear-gradient(top, #e7676d, #b7070a); /* FF3.6 */
  background-image: -ms-linear-gradient(top, #e7676d, #b7070a); /* IE10 */
  background-image: -o-linear-gradient(top, #e7676d, #b7070a); /* Opera 11.10+ */
  background-image: linear-gradient(top, #e7676d, #b7070a);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#e7676d', EndColorStr='#b7070a'); 
 -webkit-box-shadow: 0px 2px 4px #000000; /* Saf3-4 */
 -moz-box-shadow: 0px 2px 4px #000000; /* FF3.5 - 3.6 */
  box-shadow: 0px 2px 4px #000000; /* Opera 10.5, IE9, FF4+, Chrome 10+ */
  display:inline-block;
  padding:2px 2px 2px 2px ;
  margin:3px;
  font-family:arial;
  font-weight:bold;
   }
Run Code Online (Sandbox Code Playgroud)


dab*_*eng 7

我有 4 个解决方案来完成这项任务:

  1. 边界半径
  2. 剪辑路径
  3. 伪元素
  4. 径向渐变

#circle1 {
  background-color: #B90136;
  width: 100px;
  height: 100px;
  border-radius: 50px;/* specify the radius */
}

#circle2 {
  background-color: #B90136;
  width: 100px;/* specify the radius */
  height: 100px;/* specify the radius */
  clip-path: circle();
}

#circle3::before {
  content: "";
  display: block;
  width: 100px;
  height: 100px;
  border-radius: 50px;/* specify the radius */
  background-color: #B90136;
}

#circle4 {
  background-image: radial-gradient(#B90136 70%, transparent 30%);
  height: 100px;/* specify the radius */
  width: 100px;/* specify the radius */
}
Run Code Online (Sandbox Code Playgroud)
<h3>1 border-radius</h3>
<div id="circle1"></div>
<hr/>
<h3>2 clip-path</h3>
<div id="circle2"></div>
<hr/>
<h3>3 pseudo element</h3>
<div id="circle3"></div>
<hr/>
<h3>4 radial-gradient</h3>
<div id="circle4"></div>
Run Code Online (Sandbox Code Playgroud)


Tru*_*ufa 6

这实际上是可能的.

请参阅:CSS提示:如何创建没有图像的圆圈.见演示.

但要注意,它在兼容性方面存在严重的缺点,你正在制作一只猫吠.

看到它在 这里工作

正如你将看到你只需要建立heightwidth的一半border-radius

祝好运!