HTMLページに円を描く方法は?


回答:


186

それ自体は円を描くことはできません。ただし、円と同じものを作成できます。

作成する円の幅/高さの半分で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%; border-radius:100%; このようにして、将来の変更を適用するために幅と高さをカスタマイズするだけで済みます
Arkady

3
境界線を追加するには、境界線を追加する必要があります。
hakan 14年

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

使用できるUnicodeサークルがいくつかあります。

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

その他の形状はこちら

必要に応じて、テキストをサークルにオーバーレイできます。

すべてのコンピューター/ブラウザーに同じフォントがインストールされているわけではないため、異なるシステムで同じに見える可能性を高くしたい場合は、カスタムフォント(このフォントなど)を使用することもできます。


19

border-radius:50% コンテナが取得する任意の寸法に円を調整する場合(たとえば、テキストが可変長である場合)

-moz--webkit-接頭辞を忘れないでください!


1
幅と高さの両方が等しいことを確認する必要があります。等しくない場合、楕円が作成されます。
Hp93 2016年

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-sがなければ、これは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拡張機能を使用する理由は、CSS3以前のGeckoおよびWebkitのバージョンをサポートするためです。)

このページには他にも例があります。テキストの挿入に関しては可能ですが、ほとんどのブラウザのボックスパディングモデルは依然として外側の四角形を使用するため、配置に注意する必要があります。


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();して要素を円に変えることもできます。要素が大きいがあってもwidthよりheight(またはその逆)を、それはまだ、円、およびなりません楕円形。

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

クリップパスは(まだ)すべてのブラウザでサポートされているわけでありません


次の
ように、ターゲットのタグの内側にテキストを記述するだけで、テキストを円の中に配置できます。

<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
クリップパスについて言及していただきありがとうございます!
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について尋ねました。
クラウスウィルク

これは、最初の行@ClausWilkeで言及したスクリプトタグを使用してHTMLで行うことができます
Dan

次に、HTMLドキュメント内でこれを使用する方法を示す完全な例を提供してください。完全な例がどのように見えるかの例については、この回答を参照してください。
クラウスウィルク

私はあなたが望むならあなたが理解できなかったことを助けるべきだと思います私は円の様子の結果の写真を追加できます 。。
Dan

必要ありません。コードスニペットに入れました。ボタンをクリックすると実行されます。
クラウスウィルク

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 2016年

0

sassを使用してCSSを記述している場合は、次のことができます。

@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.