HTML sayfasında daire nasıl çizilir?


Yanıtlar:


188

Tek başına bir daire çizemezsiniz. Ama bir daire ile aynı şeyi yapabilirsiniz.

Yapmak istediğiniz dairenin genişliğinin / yüksekliğinin yarısı kadar yuvarlatılmış köşeleri (aracılığıyla border-radius) olan bir dikdörtgen oluşturmanız gerekir.

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


6
İkinci kez düşünürsek, bir & nbsp; bu <div> içinde görüntülenmesini sağlamak için. Aksi takdirde, tarayıcı bunu görmezden gelebilir.
ryanoshea

14
HTML5'te daire çizemeyeceğinizi söylediği için bu cevabın yanlış olduğunu düşünüyorum. Tuval olsa HTML5 elemanı ve bir HTML5'teki daire (çizmek CAN w3schools.com/html/html5_canvas.asp )
JKJ

19
-webkit-border-radius kullanın:% 100; -moz sınır yarıçapı:% 100; kenarlık yarıçapı:% 100; bu şekilde, gelecekte değişikliklerinizi uygulamak için yalnızca genişliği ve yüksekliği özelleştirmeniz gerekir
Arkady

3
görünür hale getirmek için kenarlık eklemeniz gerekir.
hakan

4
Kullanmanın border-radius: 50%;iyi çalıştığını buldum , boyutu istediğiniz gibi değiştirin. Renk için background-colorveya kullanabilirsiniz border.
Grimeh

76

HTML 5'te oldukça mümkündür . Seçenekleriniz şunlardır: Gömülü SVG ve <canvas>etiket .

Gömülü SVG'de daire çizmek için:

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

Daire içinde <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

Kullanabileceğiniz birkaç unicode daire vardır:

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

Burada daha fazla şekil .

Aşağıdakileri yapmak isterseniz çevrelerin üzerine metin yerleştirebilirsiniz:

Ayrıca (gibi özel bir yazı tipi kullanabilirsiniz bu değil tüm bilgisayarların / tarayıcılar aynı yazı yüklü beri farklı sistemlerde aynı seyir bunun bir şansı daha yüksek olmasını istiyorsanız bir tane).


19

border-radius:50% dairenin, kabın aldığı boyutlara göre ayarlanmasını istiyorsanız (örneğin, metin değişken uzunlukluysa)

-moz-Ve -webkit-öneklerini unutmayın !


1
Hem genişliğin hem de yüksekliğin eşit olduğundan emin olmalısınız, aksi takdirde bir oval oluşturur.
Hp93

10

2015 itibariyle, bunu yapabilir ve metni 15 satırlık CSS ( Fiddle ) ile ortalayabilirsiniz :

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>

Herhangi bir -webkit-URL olmadan , bu IE11, Firefox, Chrome ve Opera'da çalışır ve HTML5 (deneysel) ve CSS3 için geçerlidir.

MS Edge'de (2020) aynı.


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

Öğenin border-radius değerine eşdeğer bir border-radius vermek için border-radius niteliğini kullanabilirsiniz. Örneğin:

<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 ve -webkit uzantılarını kullanmanın nedeni, Gecko ve Webkit'in CSS3 öncesi son sürümlerini desteklemektir.)

Bu sayfada daha fazla örnek var . Metin ekleme konusunda bunu yapabilirsiniz, ancak çoğu tarayıcının kutu dolgu modeli hala dış kareyi kullandığı için konumlandırmaya dikkat etmeniz gerekir.


4

HTML ile daire çizmenin teknik olarak bir yolu yoktur ( <circle>HTML etiketi yoktur), ancak bir daire çizilebilir.

Bir tane çizmenin en iyi yolu border-radius: 50%gibi bir etikete eklemektir div. İşte bir örnek:

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

4

border-radius: 50%;boyutu ne olursa olsun tüm öğeleri bir daireye dönüştürür. En azından, sürece height ve width hedefin aksi takdirde oval dönüşecek aynıdır .

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

Not : tarayıcı önek olan değil border-radius için artık gerekli


Alternatif olarak, clip-path: circle();bir öğeyi bir daireye dönüştürmek için de kullanabilirsiniz. Öğe widthbüyüktür height(veya tam tersi) olsa bile, yine de bir oval değil , bir daire haline gelecektir .

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

Not : klip-yoldur değil (henüz) tüm tarayıcılar tarafından desteklenen


Metni sadece hedefin etiketlerinin içine yazarak dairenin içine yerleştirebilirsiniz,
örneğin:

<div>text</div>

Eğer isterseniz merkez daire içinde metin, aşağıdakileri yapabilirsiniz:

#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
Klip yolundan bahsettiğiniz için teşekkürler!
umbe1987

3

Border-radius özelliğini kullanabilir veya sabit yükseklik ve genişlikte bir div ve png daireli bir arka plan oluşturabilirsiniz.


2

Komut dosyası etiketlerinde aşağıdakileri yapmanız yeterlidir:

<!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>

Ve işte, çevreniz var.


Bu hangi dil olmalı? OP, HTML5 ve CSS3 hakkında sorular sordu.
Claus Wilke

Bu, ilk satırda @ClausWilke'de bahsettiğimi düşündüğüm betik etiketleri kullanılarak html'de yapılabilir
Dan

Lütfen bunu bir HTML belgesinde nasıl kullandığınızı gösteren eksiksiz bir örnek sağlayın. Tam bir örneğin neye benzediğine dair bir örnek için bu yanıta bakın .
Claus Wilke

Sanırım bu, eğer istersen anlayamadığın şeylere yardımcı olmalı, dairenin nasıl göründüğüne dair sonucun bir resmini ekleyebilirim. . .
Dan

Gerekli değil. Bir kod parçacığına koydum. Düğmeye tıkladığınızda çalışır.
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>

basit ve acemi :)


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
Bu kod soruyu yanıtlayabilse de, soruyu neden ve / veya nasıl yanıtladığına ilişkin ek bağlam sağlamak , uzun vadeli değerini önemli ölçüde artıracaktır. Lütfen bir açıklama eklemek için cevabınızı düzenleyin .
Toby Speight

0

CSS'nizi yazmak için sass kullanıyorsanız şunları yapabilirsiniz:

@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;
}

Hangi çıktılar:

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

Burada deneyin: https://www.sassmeister.com/

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.