cari
Rumahhujung hadapan webhtml tutorial利用CSS-border属性实现圆饼图表_html/css_WEB-ITnose

  一般圆饼图表的实现如不考虑IE低版本浏览器的话,利用Canvas或是CSS3都能很好的实现,可是我们现在做的项目最低都要兼容到IE8,所以就想到了Border,相信大家用过border画出各种兼容良好的三角行。

像这样的图表如果只平分四等分的话,实现起来还是挺简单的:

html代码:

<div class="border-i">    <i class="i1"></i>    <i class="i2"></i>    <i class="i3"></i>    <i class="i4"></i></div>

CSS代码:

.border-i{    float:left;    width:80px;    height:80px;    border-radius:40px;    background:#ffd203;    overflow:hidden;    position:relative;    }.border-i i{    width:0;    height:0;    border:40px transparent dotted;    position:absolute;}.border-i .i1{    right:-40px;    top:-40px;}.border-i .i2{    right:-40px;    bottom:-40px;}.border-i .i3{    left:-40px;    bottom:-40px;}.border-i .i4{    left:-40px;    top:-40px;}

 

现在刚好把一个圆饼平分了四等分,如要不同颜色显示直接改变其border-color即可。

原理如下图,一个带有圆角的容器里面有四个宽高和自己一样的子元素平铺排列,然后溢出隐藏。

所以,如果比例占5%的话(默认宽高都80像素),

h=40*tan(360deg*5%);

结果约等于13px,那css代码如下:

.border-i .i2{    top:-40px;    right:-13px;    border-right:13px solid  #fd9500;}

呈现效果如下:

可以看出只要控制了圆饼的四分之一即0%~25%,那其他的25%~50%、50%~75%、75%~100%原理都一样,

其中除去几个特殊值:

    /* 0% *//* 所有border-color默认透明; */  /* 25% */.border-i .i2{border:40px #fd9500 solid;}  /* 50% */.border-i .i2,.border-i .i3{border:40px #fd9500 solid;}  /* 75% */.border-i .i2,.border-i .i3,.border-i .i4{border:40px #fd9500 solid;}  /* 100% */.border-i .i1,.border-i .i2,.border-i .i3,.border-i .i4{border:40px #fd9500 solid;}

其他的计算原理都一样:

/* *设 A = 5%~25%; *  H = 40 * tan(360deg * A%); */.border-i .i1{        right: -Hpx;        border-left: Hpx solid #fd9500;}/* *设 B = 25%~50%; *  H = 40 * tan(360deg *(B% - 25%)); */.pct30 .i1{border-color: #fd9500;}.pct30 .i2{    bottom: -Hpx;    border-top: Hpx solid #fd9500;}/* *设 C = 50%~75%; *  H = 40 * tan(360deg *(C% - 50%)); */.pct55 .i1, .pct55 .i2{border-color: #fd9500;}.pct55 .i3{    left: -Hpx;    border-right: Hpx solid #fd9500;}/* *设 D = 75%~100%; *  H = 40 * tan(360deg *(D% - 75%)); */.pct80 .i1, .pct80 .i2, .pct80 .i3{border-color: #fd9500;}.pct80 .i4{    top: -Hpx;    border-bottom: Hpx solid #fd9500;}

最后Demo效果如下:

Demo源码:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>利用CSS-border属性实现圆饼图表</title></head><style>    *{margin:0;padding:0;border:none;}    .border-i{        margin:5px;        float:left;        width:80px;        height:80px;        border-radius:40px;        background:#ffd203;        overflow:hidden;        position:relative;        }    .border-i p{        position:absolute;        left:20px;        top:30px;        font-size:20px;    }    .border-i i{        width:0;        height:0;        border:40px transparent dotted;        position:absolute;    }    .border-i .i1{        right:-40px;        top:-40px;    }    .border-i .i2{        right:-40px;        bottom:-40px;    }    .border-i .i3{        left:-40px;        bottom:-40px;    }    .border-i .i4{        left:-40px;        top:-40px;    }    /* 默认0% */    /* 15% h = 40*tan(360deg * 15%) = 55 (px) */    .pct15 .i1{        right:-55px;        border-left:55px solid  #fd9500;    }    /* 25% */    .pct25 .i1{        border-color:#fd9500;    }    /* 40% h=40*tan(360deg*(40%-25%))=55 (px) */    .pct40 .i1{        border-color:#fd9500;    }    .pct40 .i2{        bottom:-55px;        border-top:55px solid #fd9500;    }    /* 50% */    .pct50 .i1,    .pct50 .i2{        border-color:#fd9500;    }    /* 65% h=40*tan(360deg*(65%-50%))=55 (px) */    .pct65 .i1,    .pct65 .i2{        border-color:#fd9500;    }    .pct65 .i3{        left:-55px;        border-right:55px solid #fd9500;    }    /* 75% */    .pct75 .i1,    .pct75 .i2,    .pct75 .i3{border-color:#fd9500;}    /* 90% h=40*tan(360deg*(90%-75%))=55 (px) */    .pct90 .i1,    .pct90 .i2,    .pct90 .i3{        border-color:#fd9500;    }    .pct90 .i4{        top:-55px;        border-bottom:55px solid #fd9500;    }    /* 100% */    .pct100 .i1,    .pct100 .i2,    .pct100 .i3,    .pct100 .i4{border-color:#fd9500;}</style><body>    <div class="border-i pct0">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>0%</p>    </div>    <div class="border-i pct15">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>15%</p>    </div>    <div class="border-i pct25">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>25%</p>    </div>    <div class="border-i pct40">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>40%</p>    </div>    <div class="border-i pct50">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>50%</p>    </div>    <div class="border-i pct65">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>65%</p>    </div>    <div class="border-i pct75">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>75%</p>    </div>    <div class="border-i pct90">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>90%</p>    </div>    <div class="border-i pct100">        <i class="i1"></i>        <i class="i2"></i>        <i class="i3"></i>        <i class="i4"></i>        <p>100%</p>    </div></body></html>

如果要兼容IE8以下的浏览器的圆角(border-radius),就加一个尺寸一样的遮罩层,背景为圆形镂空背景色的纯色png图片:

<!--[if lt IE 9]><script src="http://s1.benimg.com/min/f=/v4/base/js/jq172.js"></script><script type="text/javascript" >$(function(){$('.border-i').append('<div style="width:100%;height:100%;position:absolute;left:0;top:0;z-index:1;background:url('图片地址') no-repeat center top;}"></div>');});</script><![endif]-->

在body底部

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Masa Depan HTML: Evolusi dan Trend dalam Reka Bentuk WebMasa Depan HTML: Evolusi dan Trend dalam Reka Bentuk WebApr 17, 2025 am 12:12 AM

Masa depan HTML penuh dengan kemungkinan yang tidak terhingga. 1) Ciri -ciri dan piawaian baru akan merangkumi lebih banyak tag semantik dan populariti komponen web. 2) Trend reka bentuk web akan terus berkembang ke arah reka bentuk yang responsif dan boleh diakses. 3) Pengoptimuman prestasi akan meningkatkan pengalaman pengguna melalui pemuatan imej yang responsif dan teknologi pemuatan malas.

HTML vs CSS vs JavaScript: Gambaran Keseluruhan PerbandinganHTML vs CSS vs JavaScript: Gambaran Keseluruhan PerbandinganApr 16, 2025 am 12:04 AM

Peranan HTML, CSS dan JavaScript dalam pembangunan web adalah: HTML bertanggungjawab untuk struktur kandungan, CSS bertanggungjawab untuk gaya, dan JavaScript bertanggungjawab untuk tingkah laku dinamik. 1. HTML mentakrifkan struktur laman web dan kandungan melalui tag untuk memastikan semantik. 2. CSS mengawal gaya laman web melalui pemilih dan atribut untuk menjadikannya cantik dan mudah dibaca. 3. JavaScript mengawal tingkah laku laman web melalui skrip untuk mencapai fungsi dinamik dan interaktif.

HTML: Adakah bahasa pengaturcaraan atau yang lain?HTML: Adakah bahasa pengaturcaraan atau yang lain?Apr 15, 2025 am 12:13 AM

Htmlisnotaprogramminglanguage; itisamarkuplanguage.1) htmlstructuresandformatswebcontentusingtags.2) itworkswithcssforstylingandjavascriptforinteractivity, meningkatkan pembangunan semula.

HTML: Membina struktur laman webHTML: Membina struktur laman webApr 14, 2025 am 12:14 AM

HTML adalah asas struktur laman web bangunan. 1. HTML mentakrifkan struktur kandungan dan semantik, dan penggunaan, dan sebagainya. 2. Menyediakan penanda semantik, seperti, dan sebagainya, untuk meningkatkan kesan SEO. 3. Untuk merealisasikan interaksi pengguna melalui tag, perhatikan pengesahan bentuk. 4. Gunakan elemen lanjutan seperti, digabungkan dengan JavaScript untuk mencapai kesan dinamik. 5. Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan, dan alat pengesahan diperlukan. 6. Strategi pengoptimuman termasuk mengurangkan permintaan HTTP, memampatkan HTML, menggunakan tag semantik, dll.

Dari teks ke laman web: Kekuatan HTMLDari teks ke laman web: Kekuatan HTMLApr 13, 2025 am 12:07 AM

HTML adalah bahasa yang digunakan untuk membina laman web, menentukan struktur laman web dan kandungan melalui tag dan atribut. 1) HTML menganjurkan struktur dokumen melalui tag, seperti,. 2) Penyemak imbas menghancurkan HTML untuk membina DOM dan menjadikan laman web. 3) Ciri -ciri baru HTML5, seperti, meningkatkan fungsi multimedia. 4) Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan. 5) Cadangan pengoptimuman termasuk menggunakan tag semantik dan mengurangkan saiz fail.

Memahami HTML, CSS, dan JavaScript: Panduan PemulaMemahami HTML, CSS, dan JavaScript: Panduan PemulaApr 12, 2025 am 12:02 AM

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.

Peranan HTML: Penstrukturan Kandungan WebPeranan HTML: Penstrukturan Kandungan WebApr 11, 2025 am 12:12 AM

Peranan HTML adalah untuk menentukan struktur dan kandungan laman web melalui tag dan atribut. 1. HTML menganjurkan kandungan melalui tag seperti, menjadikannya mudah dibaca dan difahami. 2. Gunakan tag semantik seperti, dan lain -lain untuk meningkatkan kebolehcapaian dan SEO. 3. Mengoptimumkan kod HTML boleh meningkatkan kelajuan pemuatan laman web dan pengalaman pengguna.

HTML dan Kod: Melihat lebih dekat pada istilahHTML dan Kod: Melihat lebih dekat pada istilahApr 10, 2025 am 09:28 AM

Htmlisaspecifictypeofcodefocusedonstructuringwebcontent, manakala "kod" secara meluas ini

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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini