Jitendra Vyas
Jitendra Vyas

Reputation: 152617

How to make circular background using css?

I need make something like this. and I want to do it for a <div></div> which has width in %

enter image description here

I can do this by using an image and adding another div inside and z-index.

But I want to know if it's possible to make in this circle in backgroud using css.

Upvotes: 80

Views: 292234

Answers (8)

Gal Margalit
Gal Margalit

Reputation: 5844

Keep it simple:

.circle
{
    border-radius: 50%;
    width: 200px;
    height: 200px; 
}

Width and height can be anything, as long as they're equal

Upvotes: 114

Remek Ambroziak
Remek Ambroziak

Reputation: 824

Use circular gradient for background property

div {
  width: 400px; height: 400px;
  background: radial-gradient(ellipse at center,  #f73134 0%,#ff0000 47%,#ff0000 47%,#23bc2b 47%,#23bc2b 48%);
}
<div></div>

Upvotes: 28

JERVI
JERVI

Reputation: 72

Maybe you should use a display inline-block too:

.circle {
    display: inline-block;
    height: 25px;
    width: 25px;
    background-color: #bbb;
    border-radius: 50%;
    z-index: -1;
}

Upvotes: 1

Swarnamayee Mallia
Swarnamayee Mallia

Reputation: 2008

Check with following css. Demo

.circle { 
   width: 140px;
   height: 140px;
   background: red; 
   -moz-border-radius: 70px; 
   -webkit-border-radius: 70px; 
   border-radius: 70px;
}

For more shapes you can follow following urls:

http://davidwalsh.name/css-triangles

Upvotes: 47

Acn
Acn

Reputation: 1066

You can use the :before and :after pseudo-classes to put a multi-layered background on a element.

#divID : before {
    background: url(someImage);
}

#div : after {
    background : url(someotherImage) -10% no-repeat;
}

Upvotes: 5

Ayush
Ayush

Reputation: 42440

It can be done using the border-radius property. basically, you need to set the border-radius to exactly half of the height and width to get a circle.

JSFiddle

HTML

<div id="container">
    <div id="inner">
    </div>
</div>

CSS

#container
{
    height:400px;
    width:400px;
    border:1px black solid;
}

#inner
{
    height:200px;
    width:200px;
    background:black;
    -moz-border-radius: 100px;
    -webkit-border-radius: 100px;
    border-radius: 100px;
    margin-left:25%;
    margin-top:25%;
}

Upvotes: 16

Wrench
Wrench

Reputation: 4900

Here is a solution for doing it with a single div element with CSS properties, border-radius does the magic.

CSS:

.circle{
    width:100px;
    height:100px;
    border-radius:50px;
    font-size:20px;
    color:#fff;
    line-height:100px;
    text-align:center;
    background:#000
}

HTML:

<div class="circle">Hello</div>

Upvotes: 5

Mr Lister
Mr Lister

Reputation: 46539

If you want to do it with only 1 element, you can use the ::before and ::after pseudo elements for the same div instead of a wrapper.
See http://css-tricks.com/pseudo-element-roundup/

Upvotes: 0

Related Questions