仅使用css绘制圆形

Hec*_*ssa 118 html css css-shapes

是否可以使用css绘制圆圈,这可以在大多数浏览器(IE,Mozilla,Safari)上使用?

Tat*_*nen 193

是的,画一个盒子并给它一个边框半径,该半径是盒子宽度的一半:

#circle {
    background: #f00;
    width: 200px;
    height: 200px;
    border-radius: 50%;
}
Run Code Online (Sandbox Code Playgroud)

工作演示:

http://jsfiddle.net/DsW9h/1/

#circle {
    background: #f00;
    width: 200px;
    height: 200px;
    border-radius: 50%;
}
Run Code Online (Sandbox Code Playgroud)
<div id="circle"></div>
Run Code Online (Sandbox Code Playgroud)

  • 请不要支持IE8,请询问您的客户是否可以显示一条消息,告知用户升级其浏览器.它将使每个人受益,微软推荐它.谷歌甚至在2012年底停止了他们的网络应用程序(Gmail,日历,云端硬盘,文档等)中的IE8支持.支持5岁的浏览器是荒谬的. (28认同)
  • 我正在使用IE8,这个演示不起作用.它显示一个红色方块. (6认同)
  • IE8不支持border-radius,所以这是有道理的...现代浏览器的好主意,非常酷...... (3认同)
  • 为 ie8 http://css3pie.com/ 使用 polyfille 并使用 border-radius:100%;对于响应式圆使用 padding-bottom:40%; 宽度:40%;高度:0;溢出:可见; (2认同)
  • 如果圆真的很小,这是行不通的 (2认同)

Tom*_*Tom 145

你可以使用带有unicode符号的内容的.before(25CF).

.circle:before {
  content: ' \25CF';
  font-size: 200px;
}
Run Code Online (Sandbox Code Playgroud)
<span class="circle"></span>
Run Code Online (Sandbox Code Playgroud)

我建议这样做,因为border-radius在IE8及以下版本中不起作用(我认识到这个建议有点精神).

  • `:before`在IE7及以下版本中不起作用,因此这种方法只能获得对IE8的支持,但却很难正确定位圆圈.例如,200px的字体大小不等于直径为200px的圆,并且在某些系统上会丢失抗锯齿. (4认同)

jbu*_*483 40

  • 创建一个具有设置高度和宽度的div(因此,对于圆形,使用相同的高度和宽度),形成一个正方形
  • border-radius50% ,这将使它的形状为圆形.(注意:长时间不需要前缀)
  • 然后你可以玩background-color/ gradients /(偶数pseudo elements)来创建这样的东西:

.red {
  background-color: red;
}
.green {
  background-color: green;
}
.blue {
  background-color: blue;
}
.yellow {
  background-color: yellow;
}
.sphere {
  height: 200px;
  width: 200px;
  border-radius: 50%;
  text-align: center;
  vertical-align: middle;
  font-size: 500%;
  position: relative;
  box-shadow: inset -10px -10px 100px #000, 10px 10px 20px black, inset 0px 0px 10px black;
  display: inline-block;
  margin: 5%;
}
.sphere::after {
  background-color: rgba(255, 255, 255, 0.3);
  content: '';
  height: 45%;
  width: 12%;
  position: absolute;
  top: 4%;
  left: 15%;
  border-radius: 50%;
  transform: rotate(40deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="sphere red"></div>
<div class="sphere green"></div>
<div class="sphere blue"></div>
<div class="sphere yellow"></div>
<div class="sphere"></div>
Run Code Online (Sandbox Code Playgroud)

  • 非常棒的渐变 (3认同)

Sun*_*nit 12

border radius是不错的选择,如果与旧的IE版本挣扎,那么尝试HTML代码

&#8226;
Run Code Online (Sandbox Code Playgroud)

并使用CSS来改变颜色.输出:


AeJ*_*Jey 10

这适用于所有浏览器

#circle {
    background: #f00;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    -moz-border-radius: 50%;
    -webkit-border-radius: 50%;
}
Run Code Online (Sandbox Code Playgroud)


小智 9

是..这是我的代码:

<style>
  .circle{
     width: 100px;
     height: 100px;
     border-radius: 50%;
     background-color: blue
  }
</style>
<div class="circle">
</div>
Run Code Online (Sandbox Code Playgroud)


sha*_*han 7

是的,你可以使用border-radius CSS属性.欲了解更多信息,请访问http://zeeshanmkhan.com/post/2/css-rounded-corner-gradient-drop-shadow-and-opacity