2014-01-27 3 views
2

Я пытаюсь сделать эту конкретную форму:Как рисовать пользовательскую форму круга в CSS3?

enter image description here

Он должен иметь две прямые грани, и я не могу управлять, чтобы создать лучшую форму, кроме полукруга. Можно ли каким-либо образом вычленить эти части из круга с помощью CSS, или просто извлечь изображение из файла .psd так, как оно есть?

+0

Конечно, это может быть сделано. Подождите ответа. –

ответ

1

Я взял Тома ответ и добавленное переполнение: скрытый до дел.

Таким образом, вам не нужно, чтобы установить DIV на границе тела

CSS

#circle { 
    position: relative; 
    left: 40px; 
    top: 40px; 
    width: 100px; 
    height: 100px; 
    overflow: hidden; 
} 
#circle:after { 
    width: 100px; 
    height: 100px; 
    background: red; 
    border-radius: 50%; 
    display: block; 
    content: ''; 
    position: absolute; 
    top: -20px; 
    left: -5px; 
} 

fiddle

1

HTML

<div id="circle"> </div> 

CSS

#circle { 
    width: 100px; 
    height: 100px; 
    background: red; 
    -moz-border-radius: 50px; 
    -webkit-border-radius: 50px; 
    border-radius: 50px; 
} 

Выход:

enter image description here

Working Fiddle

Обновленный CSS

#circle { 
    width: 400px; 
    height: 400px; 
    background: red; 
    -webkit-border-top-left-radius: 80px; 
    -webkit-border-top-right-radius: 100px; 
    -webkit-border-bottom-right-radius: 200px; 
    -webkit-border-bottom-left-radius: 200px; 
    } 

Проверьте это в Chrome, Updated Fiddle

Выход:

enter image description here

+0

почему downvotes ?? –

+2

Спасибо за ваш быстрый ответ, но я думаю, что это немного отличается от изображения выше. Я хочу создать круг с двумя прямыми краями, и я занимаюсь серфингом для получения результатов более чем на пару часов. Я уверен, что это можно сделать в css, но я понятия не имею, как это сделать. – moonsind

+1

Да, мне нужно воспроизвести это изображение, и я хотел бы знать, можно ли это сделать в CSS. – moonsind

3

Делайте это с помощью CSS после собственности как так:

#circle { 
    width: 100px; 
    height: 100px; 
} 
#circle:after { 
    width: 100px; 
    height: 100px; 
    background: red; 
    -moz-border-radius: 50px; 
    -webkit-border-radius: 50px; 
    border-radius: 50px; 
    display: block; 
    content: ''; 
    position: absolute; 
    top: -5px; 
    left: -5px; 
} 

И в HTML:

<div id="circle"></div> 
+0

Я также обновил [скрипка] (http://jsfiddle.net/gbY2C/9/) – Tom

+0

Это именно то, что я пытался сделать. Результат отличный, но как это сделать, если я хочу разместить это изображение прямо в середине html-холста? И.Е. Мне не разрешено использовать отрицательные координаты. – moonsind

+0

Если вы не можете использовать отрицательные коорды, добавьте 'position: relative;' to '# circle' и замените верхний левый в' circle: after' to 'right: 15px; bottom: 15px' – Tom

Смежные вопросы