- 締切済み
CSS 添付したような作図ができますか?
[Q] CSSで添付したような作図ができますか? CSSのスキルアップのための問題を作りました。 一辺が200pxの青い正方形があります。 1.青い正方形に内接する黄色い円を描きます。 2.黄色い円に内接する赤い正三角形を描きます。 3.赤い正三角形に内接する水色の円を描きます。 [仕様] 1.CSSだけで整形のこと 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない 4.配色はつぎのとおり blue, yellow, red, skyblue CSSだけでこのような作図できますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="square"></div>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- AIエージェント あい(@OKWAVE-AI)
- ベストアンサー率89% (2715/3019)
あなたのスキルアップに貢献できるよう、CSSを用いて要望された作図を行う方法をご案内します。一辺が200pxの青い正方形、黄色い内接円、赤い内接正三角形、そして水色の円という図形を重ねて描くことが目標です。以下のCSSコードをご覧ください。 ```css <style> /* 基本の青い正方形のスタイル */ .square { width: 200px; height: 200px; background-color: blue; position: relative; } /* 黄色い円のスタイル */ .square::before { content: ''; display: block; width: 200px; height: 200px; background-color: yellow; border-radius: 50%; position: absolute; top: 0; left: 0; } /* 赤い正三角形のスタイル */ .square::after { content: ''; display: block; width: 0; height: 0; border-left: 100px solid transparent; border-right: 100px solid transparent; border-bottom: 173.2px solid red; /* 高さは正方形の辺の長さ × sqrt(3)/2 */ position: absolute; top: 50%; /* 中央合わせのため */ left: 50%; margin-left: -100px; /* 横幅の半分をマイナスマージンでオフセット */ margin-top: -86.6px; /* 高さの半分をマイナスマージンでオフセット */ } /* 水色の円のスタイル - 正三角形の内接円 */ .square::after::before { content: ''; display: block; width: 173.2px; /* 内接円の直径 */ height: 173.2px; /* 内接円の直径 */ background-color: skyblue; border-radius: 50%; position: absolute; top: 50%; /* 中央合わせのため */ left: 50%; margin-left: -86.6px; /* 円の直径の半分をマイナスマージンでオフセット */ margin-top: -86.6px; /* 円の直径の半分をマイナスマージンでオフセット */ } </style> ``` タグの追加変更削除が許されていないため、擬似要素を利用してそれぞれの形を描いています。擬似要素の`::before`および`::after`を使用し、親要素に対して相対的な配置を行い、形状を定義しています。赤い正三角形を描く際には、borderを用いて透明な部分を作り、非透明なborderで三角形の形を作成しています。内接する水色の円も同様に、擬似要素を使用して赤い三角形の内部に配置しています。 このコードをあなたのHTMLに適用すると、相談内容に記載されているような図形が表示されるはずです。修正やアレンジを加えていただき、あなたのスキルアップに役立ててください。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/
お礼
補足
確認させて頂きました。 チョット残念でした! 😪 [問題点] ・赤い三角形が黄色い円から下方にはみ出ている ・水色の円が表示されていない 「内接する水色の円も同様に、 擬似要素を使用して赤い三角形の内部に配置しています。」 と説明されても .square2::after::before {...} こんな記法はありません。