HTML 페이지에서 원을 그리는 방법?


답변:


187

그 자체로는 원을 그릴 수 없습니다. 하지만 원과 똑같은 것을 만들 수 있습니다.

만들려 는 원 의 너비 / 높이절반 인 둥근 모서리 (경유 border-radius)가 있는 사각형 을 만들어야합니다.

    #circle {
      width: 50px;
      height: 50px;
      -webkit-border-radius: 25px;
      -moz-border-radius: 25px;
      border-radius: 25px;
      background: red;
    }
<div id="circle"></div>


6
다시 생각해 보면 & nbsp; 그 <div> 안에 그것이 표시되는지 확인하십시오. 그렇지 않으면 브라우저가이를 무시할 수 있습니다.
ryanoshea

14
HTML5에서 원을 그릴 수 없다는 것이 잘못된 대답이라고 생각합니다. 캔버스는 HTML5 요소이며 HTML5에서 원을 그릴 수 있습니다 ( w3schools.com/html/html5_canvas.asp )
jkj

19
-webkit-border-radius 사용 : 100 %; -moz-border-radius : 100 %; 테두리 반경 : 100 %; 이렇게하면 나중에 변경 사항을 적용하기 위해 너비와 높이 만 사용자 지정하면됩니다.
Arkady

3
보이게하려면 테두리를 추가해야합니다.
하칸

4
나는 border-radius: 50%;잘 작동하는 것을 발견 하고 원하는대로 크기를 변경합니다. 색상의 경우 background-color또는 border.
Grimeh 2015 년

76

HTML 5 에서는 가능합니다 . 옵션은 임베디드 SVG<canvas>태그 입니다.

포함 된 SVG에서 원을 그리려면 :

<svg xmlns="http://www.w3.org/2000/svg">
    <circle cx="50" cy="50" r="50" fill="red" />
</svg>

서클 <canvas>:

var canvas = document.getElementById("circlecanvas");
var context = canvas.getContext("2d");
context.arc(50, 50, 50, 0, Math.PI * 2, false);
context.fillStyle = "red";
context.fill()
<canvas id="circlecanvas" width="100" height="100"></canvas>


53

사용할 수있는 몇 가지 유니 코드 서클이 있습니다.

* { font-size: 50px; }
&#x25CB;
&#x25CC;
&#x25CD;
&#x25CE;
&#x25CF;

여기에 더 많은 모양이 있습니다 .

다음과 같은 경우 원에 텍스트를 오버레이 할 수 있습니다.

모든 컴퓨터 / 브라우저에 동일한 글꼴이 설치되어 있지 않기 때문에 다른 시스템에서 동일하게 보일 가능성이 더 높은 경우 사용자 지정 글꼴 (예 : 글꼴)을 사용할 수도 있습니다 .


19

border-radius:50% 컨테이너가 가져 오는 크기에 따라 원을 조정하려는 경우 (예 : 텍스트가 가변 길이 인 경우)

-moz--webkit-접두사를 잊지 마세요 !


1
너비와 높이가 모두 같은지 확인해야합니다. 그렇지 않으면 타원형이 생성됩니다.
Hp93

9

2015 년부터 15 줄의 CSS ( Fiddle ) 로 텍스트를 만들고 중앙에 배치 할 수 있습니다 .

body {
  background-color: #fff;
}
#circle {
  position: relative;
  background-color: #09f;
  margin: 20px auto;
  width: 400px;
  height: 400px;
  border-radius: 200px;
}
#text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>circle with text</title>

</head>

<body>
  <div id="circle">
    <div id="text">Text in the circle</div>
  </div>
</body>

</html>

이 없으면 -webkit-IE11, Firefox, Chrome 및 Opera에서 작동하며 유효한 HTML5 (실험용) 및 CSS3입니다.

MS Edge (2020)에서도 동일합니다.


5

.circle{
    height: 65px;
    width: 65px;
    border-radius: 50%;
    border:1px solid red;
    line-height: 65px;
    text-align: center;
}
<div class="circle"><span>text</span></div>


4

border-radius 속성을 사용하여 요소의 border-radius와 동일한 border-radius를 제공 할 수 있습니다. 예를 들면 :

<div style="border-radius 10px; -moz-border-radius 10px; -webkit-border-radius 10px; width: 20px; height: 20px; background: red; border: solid black 1px;">&nbsp;</div>

(-moz 및 -webkit 확장을 사용하는 이유는 Gecko 및 Webkit의 CSS3 최종 버전 이전 버전을 지원하기위한 것입니다.)

이 페이지 에는 더 많은 예제가 있습니다 . 텍스트를 삽입하는 것에 관해서는 할 수 있지만 대부분의 브라우저의 상자 패딩 모델은 여전히 ​​바깥 쪽 사각형을 사용하므로 위치에 유의해야합니다.


4

기술적으로 HTML을 사용하여 원을 그리는 방법은 없지만 ( <circle>HTML 태그 가 없음 ) 원을 그릴 수 있습니다.

하나를 그리는 가장 좋은 방법은 border-radius: 50%같은 태그 에 추가 하는 것 div입니다. 예를 들면 다음과 같습니다.

<div style="width: 50px; height: 50px; border-radius: 50%;">You can put text in here.....</div>

4

border-radius: 50%;크기에 관계없이 모든 요소를 ​​원으로 바꿉니다. 적어도 만큼으로 height 하고 width 타겟의 그렇지 않으면 타원형으로 바뀌고 동일하다 .

#target{
    width: 100px;
    height: 100px;
    background-color: #aaa;
    border-radius: 50%;
}
<div id="target"></div>

참고 : 브라우저 접두사가되어 있지 경계 반경을 위해 더 이상 필요


또는를 사용 clip-path: circle();하여 요소를 원으로 바꿀 수도 있습니다 . 요소가보다 widthheight(또는 그 반대) 이더라도 타원이 아닌 원이 됩니다.

#target{
    width: 200px;
    height: 100px;
    background-color: #aaa;
    clip-path: circle();
}
<div id="target"></div>

참고 : clip-path는 (아직) 모든 브라우저에서 지원 되지 않습니다.


다음
과 같이 대상의 태그 내부에 텍스트를 작성하여 원 안에 텍스트를 배치 할 수 있습니다 .

<div>text</div>

당신이 원하는 경우 센터 원 텍스트, 다음을 수행 할 수 있습니다 :

#target{
    width: 100px;
    height: 100px;
    background-color: #aaa;
    border-radius: 50%;

    display: flex;
    align-items: center;
}

#text{
    width: 100%;
    text-align: center;
}
<div id="target">
    <div id="text">text</div>
</div>


1
clip-path를 언급 해 주셔서 감사합니다!
umbe1987

3

border-radius 속성을 사용하거나 높이와 너비가 고정 된 div와 png 원이있는 배경을 만들 수 있습니다.


2

스크립트 태그에서 다음을 수행하십시오.

<!Doctype html>
<html>
<head>
	<title>Circle Canvas</title>
</head>
<body>
	<canvas id="myCanvas" width="300" height="150" style="border:1px solid 
#d3d3d3;">
	<body>
		<script>
			var c = document.getElementById("myCanvas");
			var ctx = c.getContext("2d");
			ctx.beginPath();
			ctx.arc(100, 75, 50, 0, 2 * Math.PI);
			ctx.stroke();
		</script>
    </body>
</body>
</html>

그리고 거기에 당신의 서클이 있습니다.


이것은 어떤 언어로되어 있어야합니까? OP는 HTML5와 CSS3에 대해 물었습니다.
Claus Wilke 2017

이것은 내가 첫 번째 줄의 @ClausWilke에서 언급 생각 스크립트 태그를 HTML에서 수행 할 수 있습니다

HTML 문서 내에서 이것을 어떻게 사용하는지 보여주는 완전한 예를 제공하십시오. 완전한 예제의 예는 이 답변 을 참조하십시오 .
Claus Wilke

원하면 이해할 수 없었던 것을 도울 수 있다고 생각합니다. 원이 어떻게 생겼는지 결과 사진을 추가 할 수 있습니다. . .
Dan

필요하지 않습니다. 나는 그것을 코드 스 니펫에 넣었습니다. 버튼을 클릭하면 실행됩니다.
Claus Wilke

2
  1. h1 {
    border: dashed 2px blue;
      width: 200px;
      height: 200px;
      border-radius: 100px;
      text-align: center;
      line-height: 60px;
      
    }
    <h1> <br>hello world</h1>


1
.at-counter-box {
    border: 2px solid #1ac6ff;
    width: 150px;
    height: 150px;
    border-radius: 100px;
    font-family: 'Oswald Sans', sans-serif;
    color:#000;
}
.at-counter-box-content {
    position: relative;
}
.at-counter-content span {
    font-size: 40px;
    font-weight: bold ;
    text-align: center;
    position: relative;
    top: 55px;
}

1
   <head>
       <style>

       #circle{
       width:200px;
       height:200px;
       border-radius:100px;
       background-color:red;
       }
       </style>
   </head>

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

간단하고 초보자 :)


0

<div class="at-counter-box-content">

  <div class="at-counter-content">

      <span>40%</span>

  </div><!--at-counter-content-->

</div><!--at-counter-box-content-->


3
이 코드가 질문에 답할 수 있지만 질문에 대한 이유 및 / 또는 답변 방법 에 대한 추가 컨텍스트를 제공 하면 장기적인 가치가 크게 향상됩니다. 제발 편집 약간의 설명을 추가 할 답변을.
Toby Speight

0

CSS를 작성하기 위해 sass를 사용하는 경우 다음을 수행 할 수 있습니다.

@mixin draw_circle($radius){
  width: $radius*2;
  height: $radius*2;
  -webkit-border-radius: $radius;
  -moz-border-radius: $radius;
  border-radius: $radius;
}

.my-circle {
  @include draw_circle(25px);
  background-color: red;
}

출력되는 내용 :

.my-circle {
  width: 50px;
  height: 50px;
  -webkit-border-radius: 25px;
  -moz-border-radius: 25px;
  border-radius: 25px;
  background-color: red;
}

여기에서 시도하십시오 : https://www.sassmeister.com/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.