cari
Rumahhujung hadapan webtutorial cssDalam sepuluh minit, anda akan belajar cara melaksanakan carta pai menggunakan hanya satu div dan css.

Artikel ini membawakan anda soalan berkaitan tentang cara menggunakan div dengan css untuk melaksanakan rajah penyakit. Saya harap ia akan membantu semua orang.

Dalam sepuluh minit, anda akan belajar cara melaksanakan carta pai menggunakan hanya satu div dan css.

Sila tatal ke penghujung artikel untuk mendapatkan kod lengkap.

Kami hanya menggunakan satu div dan hanya css untuk melaksanakan carta pai.

Struktur HTML

<div class="pie" style="--p:60;--b:10px;--c:purple;">60%</div>

Kami menambah beberapa pembolehubah css:

  • --p: peratusan bar kemajuan (nombor tulen, Tanpa % ), nilai carta pai adalah konsisten dengan kandungan div (dengan %).

  • --b: Nilai ketebalan sempadan

  • --c: Warna utama sempadan

Artikel ini menggunakan pembolehubah yang disingkatkan dalam persekitaran pengeluaran, untuk mencapai kebolehbacaan, kita harus menggunakan --p -> c - > --warna utama untuk diwakili.

Tetapan asas Pai

Kami menetapkan gaya asas untuk carta pai.

.pie {
  --w: 150px; // --w -> --width
  width: var(--w);
  aspect-ratio: 1; // 纵横比,1 说明是正方形
  display: inline-grid;
  place-content: center;
  margin: 5px;
  font-size: 25px;
  font-weight: bold;
  font-family: sans-serif;
}

Di atas kami menggunakan nisbah aspek: 1; untuk memastikan bahawa div adalah segi empat sama, anda juga boleh menggunakan ketinggian: var(--w) untuk mencapai kesan.

Seterusnya, kami menggunakan elemen pseudo untuk melaksanakan carta pai mudah:

.pie:before {
  content: "",
  position: absoute;
  border-radius: 50%;
  inset: 0; // 知识点 1
  background: conic-gradient(var(--c) calc(var(--p)*1%),#0000 0); // 知识点 2
}

Titik pengetahuan 1: inset: 0 bersamaan dengan atas: 0; atas: 0;

Titik pengetahuan 2: kecerunan kon-kecerunan kon, kaedah css, lebih banyak kandungan, #0000 di sini ialah nilai perenambelasan lutsinar.

#0000 Warna Hex · Merah (0%) · Hijau (0%) · Biru (0%).

Selepas kecerunan kon digunakan:

 1.png

Untuk menjadikan hanya kawasan sempadan kelihatan, kami menggunakan atribut topeng untuk menyembunyikan bahagian bulatan tengah. Kami akan menggunakan kaedah radial-gradient():

radial-gradient(farthest-side,red calc(99% - var(--b)),blue calc(100% - var(--b)))

Selepas menggunakan kod di atas, rajah kesan boleh diperolehi seperti berikut:

 2.png

Matlamat kami adalah seperti berikut :

 3.png

Kita boleh mencapainya dengan menukar kod:

<div class="pie" style="--p:60;--b:10px;--c:purple;">60%</div>
.pie {
  --w:150px;
  
  width: var(--w);
  aspect-ratio: 1;
  position: relative;
  display: inline-grid;
  place-content: center;
  margin: 5px;
  font-size: 25px;
  font-weight: bold;
  font-family: sans-serif;
}
.pie:before {
  content: "";
  position: absolute;
  border-radius: 50%;
  inset: 0;
  background: conic-gradient(var(--c) calc(var(--p)*1%),#0000 0);
  -webkit-mask:radial-gradient(farthest-side,#0000 calc(99% - var(--b)),#000 calc(100% - var(--b)));
          mask:radial-gradient(farthest-side,#0000 calc(99% - var(--b)),#000 calc(100% - var(--b)));
}

Tambah tepi bulat

Cara menambah bulatan Bagi bahagian tepi, selepas membaca ilustrasi di bawah, anda akan faham helah kecil ini.

 4.png

Untuk kesan (1) dalam gambar, letakkan bulatan di tepi permulaan.

.pie:before {
  background: 
    radial-gradient(farthest-side, var(--c) 98%, #0000) top/var(--b) var(--b) no-repeat,
    conic-gradient(var(--c) calc(var(--p)*1%), #0000 0);
}

Untuk kesan (2) dalam gambar, letak bulatan di tepi hujung.

.pipe: after {
  content: "";
  position: absolute;
  border-radius: 50%;
  inset: calc(50% - var(--b)/2); // 知识点1
  background: var(--c);
  transform: rotate(calc(var(--p)*3.6deg)) translateY(calc(50% - var(--w)/2)); // 知识点2
}

Titik pengetahuan 1: Inset: 0; ia adalah singkatan dari kiri: 0;

Di sini kita ada:

left = right = 50% - b/2

Di sini kita telah mengalihkan elemen 50% ke kiri dan kanan - b/2, yang bersamaan dengan lebar elemen menjadi b, dan berpusat ke kiri dan betul. Perkara yang sama untuk ketinggian.

Titik pengetahuan 2: Pengiraan darjah putaran --

angle = percentage * 360deg / 100

Mula-mula putarkan elemen mengikut darjah yang sepadan, dan kemudian gerakkan kedudukannya Ini melibatkan pemusatan paksi Y. Teks mungkin agak sukar untuk difahami, jadi anda boleh memahaminya dengan ilustrasi berikut:

 5.png

Tambah animasi

Sehingga kini, apa yang kami ada dicapai ialah gambar bentuk pai statik. Kami akan menambah animasi padanya seterusnya.

Daftar pembolehubah pertama:

@property --p {
  syntax: &#39;<number>&#39;;
  inherits: true;
  initial-value: 0;
}

Kemudian, kami mencipta bingkai utama:

@keyframes p {
  from {
    --p: 0
  }
}

Nota: Di sini kita hanya perlu menetapkan nilai --p dari . Penyemak imbas secara automatik akan memadankan nilai dalam pratetap kami kepada (div class="pie" style="--p:60;">60%)

Akhir sekali, kami memanggil animasi .

animation: p 1s .5s both;

Hei~ Salin kod di bawah dan cuba. Sudah tentu, kami juga menyediakan gambar.

Kod dan rendering

<div class="pie" style="--p:20"> 20%</div>
<div class="pie" style="--p:40;--c:darkblue;--b:10px"> 40%</div>
<div class="pie no-round" style="--p:60;--c:purple;--b:15px"> 60%</div>
<div class="pie animate no-round" style="--p:80;--c:orange;"> 80%</div>
<div class="pie animate" style="--p:90;--c:lightgreen"> 90%</div>
@property --p{
  syntax: &#39;<number>&#39;;
  inherits: true;
  initial-value: 1;
}
.pie {
  --p:20;
  --b:22px;
  --c:darkred;
  --w:150px;
  width: var(--w);
  aspect-ratio: 1;
  position: relative;
  display: inline-grid;
  margin: 5px;
  place-content: center;
  font-size: 25px;
  font-weight: bold;
  font-family: sans-serif;
}
.pie:before,
.pie:after {
  content: "";
  position: absolute;
  border-radius: 50%;
}
.pie:before {
  inset: 0;
  background:
    radial-gradient(farthest-side,var(--c) 98%,#0000) top/var(--b) var(--b) no-repeat,
    conic-gradient(var(--c) calc(var(--p)*1%),#0000 0);
  -webkit-mask: radial-gradient(farthest-side,#0000 calc(99% - var(--b)),#000 calc(100% - var(--b)));
          mask: radial-gradient(farthest-side,#0000 calc(99% - var(--b)),#000 calc(100% - var(--b)));
}
.pie:after {
  inset: calc(50% - var(--b)/2);
  background: var(--c);
  transform: rotate(calc(var(--p)*3.6deg)) translateY(calc(50% - var(--w)/2));
}
.animate {
  animation: p 1s .5s both;
}
.no-round:before {
  background-size: 0 0, auto;
}
.no-round:after {
  content: none;
}
@keyframes p{
  from{--p:0}
}

Renderings:

 6.png

(Belajar perkongsian video: Tutorial video css)

Atas ialah kandungan terperinci Dalam sepuluh minit, anda akan belajar cara melaksanakan carta pai menggunakan hanya satu div dan css.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:掘金. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Begitu banyak pautan warnaBegitu banyak pautan warnaApr 13, 2025 am 11:36 AM

Di sana ' s telah menjalankan alat, artikel, dan sumber tentang warna akhir -akhir ini. Tolong izinkan saya menutup beberapa tab dengan membulatkannya di sini untuk keseronokan anda.

Bagaimana margin automatik berfungsi di flexboxBagaimana margin automatik berfungsi di flexboxApr 13, 2025 am 11:35 AM

Robin telah menutupi ini sebelum ini, tetapi saya telah mendengar kekeliruan mengenainya dalam beberapa minggu yang lalu dan melihat orang lain menikam menerangkannya, dan saya mahu

Melangkah Rainbow Garis bawahMelangkah Rainbow Garis bawahApr 13, 2025 am 11:27 AM

Saya sangat suka reka bentuk tapak sandwic. Di antara banyak ciri yang indah ialah tajuk utama ini dengan garis bawah Rainbow yang bergerak ketika anda menatal. Ia ' s tidak

Tahun Baru, pekerjaan baru? Let ' s membuat resume berkuasa grid!Tahun Baru, pekerjaan baru? Let ' s membuat resume berkuasa grid!Apr 13, 2025 am 11:26 AM

Banyak reka bentuk resume yang popular membuat sebahagian besar ruang halaman yang tersedia dengan meletakkan bahagian dalam bentuk grid. Mari kita gunakan grid CSS untuk membuat susun atur yang

Salah satu cara untuk memecahkan pengguna dari kebiasaan tambah nilai terlalu banyakSalah satu cara untuk memecahkan pengguna dari kebiasaan tambah nilai terlalu banyakApr 13, 2025 am 11:25 AM

Tambah nilai halaman adalah satu perkara. Kadang -kadang kita menyegarkan halaman apabila kita fikir ia tidak bertindak balas, atau percaya bahawa kandungan baru tersedia. Kadang -kadang kita hanya marah

Reka bentuk yang didorong oleh domain dengan ReactReka bentuk yang didorong oleh domain dengan ReactApr 13, 2025 am 11:22 AM

Terdapat panduan yang sangat sedikit tentang cara mengatur aplikasi front-end di dunia React. (Hanya gerakkan fail sehingga ia "terasa betul," lol). Kebenaran

Mengesan pengguna yang tidak aktifMengesan pengguna yang tidak aktifApr 13, 2025 am 11:08 AM

Kebanyakan masa anda tidak benar -benar peduli sama ada pengguna secara aktif terlibat atau tidak aktif sementara pada aplikasi anda. Tidak aktif, makna, mungkin mereka

Wufoo ZapierWufoo ZapierApr 13, 2025 am 11:02 AM

Wufoo sentiasa hebat dengan integrasi. Mereka mempunyai integrasi dengan aplikasi tertentu, seperti Monitor Kempen, MailChimp, dan TypeKit, tetapi mereka juga

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft