検索
ホームページウェブフロントエンドhtmlチュートリアルcss3 を使用して円グラフを描画する_html/css_WEB-ITnose

CSS3 グラデーション導入参考アドレス:

http://www.zhangxinxu.com/wordpress/?p=3639

レンダリング:

html:

<div class="colorWheel">    <div class="piece"></div></div>

css:

.colorWheel {  position: relative;  width: 16em;  height: 16em;  background: linear-gradient(36deg, #7c1 42%, transparent 42%),linear-gradient(72deg, #999 75.48%, transparent 75.48% ),linear-gradient(-36deg, #479bf6 42%, transparent 42%) 100% 0,linear-gradient(-72deg, yellow 75.48%, transparent 75.48%) 100% 0,linear-gradient(-36deg, transparent 58%, #643 58%) 0 100%,linear-gradient(-72deg, transparent 24.52%, #8a1 24.52%) 0 100%,linear-gradient(36deg, transparent 58%, #90a 42%) 100% 100%,linear-gradient(72deg,transparent 24.52%, #099 24.52%) 100% 100%,#43a1cd linear-gradient(#ba3e2e, #ba3e2e) 50% 0;  background-repeat: no-repeat;  background-size: 50% 50%;  border:1px solid #ccc;  border-radius: 50%;  margin: 30px;}.piece{  position: absolute;  left: 8%;  top: -2.6%;  width: 100%;  height: 100%;  background: linear-gradient(-36deg, #5454E3 42%, transparent 42%) 100% 0;  background-repeat: no-repeat;  background-size: 50% 50%;  border-radius: 50%;}

背景にlinear-gradientの値を何度も設定してしまい、めまいがしてしまいました。 。 。

これらの角度とパーセンテージを設定するにはどうすればよいですか?

そのケーキはどうやって分けられましたか?

次の分析を参照してください:

例として、背景の最初の liear-gradient 設定を取り上げます:

background:linear-gradient(36deg,#ff0 42%, transparent 42%);

レンダリングは以下の通りです:

最初のパラメータは角度で、図の円を 10 等分した場合、角度は 360/10=36°となり、「度」は度で表されます。

グラデーションではなく、突然色が止まる直線にするため、色の遷移位置に属性値transparentを使用しています。

パーセンテージの計算は、色が占める領域全体の面積です。計算式は次のとおりです: 100*sin36/(sqrt(2)*cos9)

sin36 の 36 は、各カラー ブロックの中心角を意味します。 cos9 の

9 は 45-36 を使用して計算されます。

各カラーブロックの中心角の度数をαとすると、面積を求める式は100*sinα/(sqrt(2)*cos(45-α))に変換されます

計算式出典:

とグラデーション 垂直線上のすべての点の色。第 3 象限の頂点から引いた勾配に垂直な直線が 0% ライン、第 1 象限の頂点から引いた垂直線が 100% ラインになります。原点を通り、0% 線と 100% 線に垂直な直線を描きます。0% 線との交点を S、100% 線との交点を E とします。範囲内の任意の点 P を選択します。この点が色の変化のときの長方形であり、点 P から直線 SE に垂直な線を引き、その垂線を I とします。点Pが位置する分割線で区切られた面積の全体面積に対する割合。

より直感的に円を描くために、正方形の空間を遮断することで、非常に親しみのある感覚を与えます。 。 。

点ABを結び、点Aを通ってPIに垂直な直線を描き、点Dで交わると、ADの長さはISの長さに等しくなります。

正方形の辺の長さを a とすると、OB の長さは a*sqrt(2)/2 になります。

数学的知識から、∠MOE=36°、∠EOB=9° となると、OE=cos9* となります。 a*sqrt (2)/2;

さらに、 IS=AD=sin36*a

次に、 IS/SB=IS/2OE=sin36/(cos9*sqrt(2)); Pを頂点として、正方形の総面積に対する角度αによって形成される面積の割合を計算する式は、100*sinα/(sqrt(2)*cos(45-α))です

後ここまで言うと、この計算式を使って計算するだけだということがわかりました。

円を 6 つの等しい部分に分割する別の例を見てみましょう:

各カラー ブロックの角度は次のとおりです: 360/6=60、

正方形に対する各カラー ブロックの面積比は次のとおりです。 100* sin60/(sqrt(2)*cos(45-60))、強力な JS には、これらの一般的に使用される数式のアルゴリズムがすでに組み込まれています。Math.sin() と Math.cos() のパラメーターは両方ともラジアンであり、角度を変換します。ラジアンに変換する 式: ラジアン = 角度*Π/180。上記の式を代入し、ブラウザのデバッグ パネルに計算値、100*Math.sin(60*Math.PI/180)/(Math.sqrt(2)*Math) を入力します。 .cos( -15*Math.PI/180))=63.4;

html:

<div class="sixWheel"></div>

css:

.sixWheel{  width:12rem;  height:12rem;  margin-left: 50px;  background: linear-gradient(60deg, #93f 63.4%, transparent 63.4%), linear-gradient(-60deg, #3f9 63.4%, transparent 63.4%) 100% 0, linear-gradient(-60deg, transparent 36.6%, #f63 36.6%) 0 100%, linear-gradient(60deg, transparent 36.6%, #69c 36.6%, #69c) 100% 100%, #ff9 linear-gradient(#39f, #39f) 50% 0;  background-repeat: no-repeat;  background-size: 50% 50%;  border-radius: 50%;}

レンダリング:

この時点で、パイは描かれた。

切り取った作品について何を書けばいいですか?

最初のクリの .piece 要素を参照して、この要素をその親要素 .colorWheel と同じサイズにし、この要素の分離する必要がある部分の背景色のみを設定します。 設定方法は次のとおりです。上と同じです。 .piece の位置を制御して、分割された効果を実現します。

分割したブロックと両側のブロックの距離が同じになるように位置をどう移動させるかがポイントです。必要となるのは下図のOA(横方向の移動距離)とAC(縦方向の移動距離)の長さです。

図に示すように、CEからOMまでの距離とCFからONまでの距離が等しいため、元の領域としてOMとONが鋭角を形成し、移動領域としてCEとCFが鋭角を形成すると仮定します。 . 点Cを通過後、OMに垂直な線を引き、直線の交点を点B、垂直直線とON直線の交点を点Aとすれば、CB=CAとなります。したがって、∠BOC=∠COA となります。

∠AOB=36°の場合、∠AOC=18°です。 AC/OA=tan∠AOC。

したがって、駒の水平方向の移動位置と垂直方向の移動位置の比はtan(α/2)となります。

この記事は、「CSS Linear Gradients を深く掘り下げる」という記事を読んだことに影響を受けています。記事内の一部の写真は、この記事の写真からのものです。元の記事を読むことを強くお勧めします。 ! !

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML、CSS、およびJavaScriptの未来:Web開発動向HTML、CSS、およびJavaScriptの未来:Web開発動向Apr 19, 2025 am 12:02 AM

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境