Bagaimana cara menggambar lingkaran di halaman html?


Jawaban:


187

Anda tidak bisa menggambar lingkaran saja. Tapi Anda bisa membuat sesuatu yang identik dengan lingkaran.

Anda harus membuat persegi panjang dengan sudut membulat (melalui border-radius) yang merupakan setengah dari lebar / tinggi lingkaran yang ingin Anda buat.

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


6
Setelah dipikir-pikir, Anda mungkin ingin tetap & nbsp; di dalam <div> itu untuk memastikannya ditampilkan. Jika tidak, browser mungkin mengabaikannya.
ryanoshea

14
Saya pikir jawaban ini salah karena dikatakan Anda tidak dapat menggambar lingkaran di HTML5. Kanvas adalah elemen HTML5 dan Anda BISA menggambar lingkaran di HTML5 ( w3schools.com/html/html5_canvas.asp )
jkj

19
gunakan -webkit-border-radius: 100%; -moz-border-radius: 100%; radius batas: 100%; Dengan cara ini Anda hanya perlu menyesuaikan lebar dan tinggi untuk menerapkan perubahan Anda di masa mendatang
Arkady

3
Anda harus menambahkan perbatasan untuk membuatnya terlihat.
hakan

4
Saya menemukan menggunakan border-radius: 50%;bekerja dengan baik, mengubah ukuran sesuai keinginan. Untuk warna Anda bisa menggunakan background-coloratau border.
Grimeh

76

Ini sangat mungkin dalam HTML 5 . Pilihan Anda adalah: SVG tertanam dan <canvas>tag .

Untuk menggambar lingkaran di SVG tersemat:

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

Lingkaran di <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

Ada beberapa lingkaran unicode yang dapat Anda gunakan:

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

Lebih banyak bentuk di sini .

Anda dapat menghamparkan teks pada lingkaran jika Anda ingin:

Anda juga dapat menggunakan font khusus (seperti ini ) jika Anda ingin memiliki kesempatan lebih tinggi untuk terlihat sama pada sistem yang berbeda karena tidak semua komputer / browser menginstal font yang sama.


19

border-radius:50% jika Anda ingin lingkaran menyesuaikan dengan dimensi apa pun yang didapat wadah (misalnya jika teks memiliki panjang variabel)

Jangan lupa awalan -moz-dan -webkit-!


1
Anda harus memastikan lebar dan tinggi sama, jika tidak maka akan membuat oval.
Hp93

9

Mulai tahun 2015, Anda dapat membuatnya dan memusatkan teks hanya dengan 15 baris 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>

Tanpa -webkit-s, ini berfungsi di IE11, Firefox, Chrome dan Opera, dan ini adalah HTML5 (eksperimental) dan CSS3 yang valid.

Sama di 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

Anda dapat menggunakan atribut border-radius untuk memberikan border-radius yang setara dengan border-radius element. Sebagai contoh:

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

(Alasan menggunakan ekstensi -moz dan -webkit adalah untuk mendukung Gecko dan Webkit versi pra-CSS3-final.)

Ada lebih banyak contoh di halaman ini . Sejauh memasukkan teks, Anda dapat melakukannya tetapi Anda harus memperhatikan posisinya, karena sebagian besar model padding kotak browser masih menggunakan kotak luar.


4

Secara teknis tidak ada cara menggambar lingkaran dengan HTML (tidak ada <circle>tag HTML), tetapi lingkaran bisa digambar.

Cara terbaik untuk menggambarnya adalah dengan menambahkan border-radius: 50%ke tag seperti div. Berikut contohnya:

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

4

border-radius: 50%;akan mengubah semua elemen menjadi lingkaran, berapa pun ukurannya. Setidaknya, selama height dan width dari targetnya sama, jika tidak maka akan berubah menjadi oval .

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

Catatan : prefiks browser tidak diperlukan lagi untuk radius-batas


Alternatifnya, Anda juga dapat menggunakan clip-path: circle();untuk mengubah elemen menjadi lingkaran. Bahkan jika elemen memiliki lebih besar widthdari height(atau sebaliknya), itu akan tetap menjadi lingkaran, dan bukan oval.

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

Catatan : jalur klip belum (belum) didukung oleh semua browser


Anda dapat menempatkan teks di dalam lingkaran, cukup dengan menulis teks di dalam tag target,
seperti:

<div>text</div>

Jika Anda ingin memusatkan teks di lingkaran, Anda dapat melakukan hal berikut:

#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
Terima kasih telah menyebutkan jalur klip!
umbe1987

3

Anda dapat menggunakan properti border-radius, atau membuat div dengan tinggi dan lebar tetap dan background dengan lingkaran png.


2

Cukup lakukan hal berikut di tag skrip:

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

Dan begitulah Anda mendapatkan lingkaran Anda.


Bahasa apa ini seharusnya? OP bertanya tentang HTML5 dan CSS3.
Claus Wilke

Ini dapat dilakukan dalam html menggunakan tag skrip yang menurut saya saya sebutkan di baris pertama @ClausWilke
Dan

Berikan contoh lengkap yang menunjukkan bagaimana Anda menggunakan ini di dalam dokumen HTML. Lihat jawaban ini untuk contoh seperti apa contoh lengkapnya.
Claus Wilke

Saya pikir itu akan membantu apa yang tidak dapat Anda pahami jika Anda mau, saya dapat menambahkan gambar hasil seperti apa lingkaran itu. . .
Dan

Tidak perlu. Saya memasukkannya ke dalam potongan kode. Ini berjalan saat Anda mengklik tombol.
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>

sederhana dan pemula :)


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
Meskipun kode ini dapat menjawab pertanyaan, memberikan konteks tambahan tentang mengapa dan / atau bagaimana kode ini menjawab pertanyaan akan secara signifikan meningkatkan nilai jangka panjangnya. Harap edit jawaban Anda untuk menambahkan penjelasan.
Toby Speight

0

Jika Anda menggunakan sass untuk menulis CSS, Anda dapat melakukan:

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

Output mana:

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

Coba di sini: https://www.sassmeister.com/

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.