• ベストアンサー

CSSだけで添付図のように表示できますか?

CSSのスキルアップのための問題を作りました。 ・フランス国旗にホバーするとベルギー国旗に変わります。 ・ベルギー国旗からマウスアウトするとフランス国旗に戻ります。 ・国旗の下にある国名のためのタグは不要です。 (JS無用)    [仕様]   1.2とおりの国旗を切り替え表示します。   2.CSSだけで整形のこと   3.ベンダープレフィックスも追記のこと   4.タグは変更、追加、削除ができない   5.画像やリンクによる表示は無効   6.配色はつぎのとおり    ・フランス:青、白、赤    ・ベルギー:黒、黄、赤 CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> body { background-color: skyblue; } .flag { width: 150px; height: 75px; border: solid 1px gray; } /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="flag"></div>

  • CSS
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • fji-jp
  • ベストアンサー率84% (11/13)
回答No.2

CSSのネスト記法において、FirefoxではDOCTYPE宣言がされていないとhover中のbackgroundが反映されなくて、少しだけハマりました(笑) .flag { width: 150px; height: 75px; border: solid 1px gray; background: -moz-linear-gradient(left, blue 0%, blue 33.3%, white 33.3%, white 66.6%, red 66.6%, red 100%); background: -webkit-linear-gradient(left, blue 0%, blue 33.3%, white 33.3%, white 66.6%, red 66.6%, red 100%); background: linear-gradient(to right, blue 0%, blue 33.3%, white 33.3%, white 66.6%, red 66.6%, red 100%); &:after { content: "フランス"; display: inline-block; position: relative; top: 75px; width: 150px; text-align: center; } &:hover { background: -moz-linear-gradient(left, black 0%, black 33.3%, yellow 33.3%, yellow 66.6%, red 66.6%, red 100%); background: -webkit-linear-gradient(left, black 0%, black 33.3%, yellow 33.3%, yellow 66.6%, red 66.6%, red 100%); background: linear-gradient(to right, black 0%, black 33.3%, yellow 33.3%, yellow 66.6%, red 66.6%, red 100%); &:after { content: "ベルギー"; } } }

retorofan
質問者

お礼

ご投稿ありがとうございます。

Powered by GRATICA
retorofan
質問者

補足

確認させて頂きました。 完璧でした! ( ^o^)/🎉

その他の回答 (1)

回答No.1

あなたがCSSスキルアップのために作成した問題、興味深いですね。できるだけ要件に沿った方法で、CSSを使用してフランス国旗とベルギー国旗を切り替える方法を提案します。 ```css .flag { width: 150px; height: 75px; border: solid 1px gray; background-image: linear-gradient(to right, #0000ff 0%, #0000ff 33%, #ffffff 33%, #ffffff 66%, #ff0000 66%, #ff0000 100%); transition: background-image 0.5s ease-in-out; } .flag:hover { background-image: linear-gradient(to right, #000000 0%, #000000 33%, #ffff00 33%, #ffff00 66%, #ff0000 66%, #ff0000 100%); } ``` 上記のCSS設定は、以下の要件を満たしています。 1. `.flag`クラスが適用されているdiv要素は、フランス国旗の色(青、白、赤)で始まります。これは`background-image`プロパティを使用した線形グラデーションを使って実現しています。国旗のそれぞれの色は要素の幅の3分の1を占めるように設定されています。 2. セレクタ`.flag:hover`にて、マウスが`.flag`要素の上に来た時、ベルギー国旗の色(黒、黄、赤)に変化するよう設定されています。これも上同様、線形グラデーションを用いて表現しています。 3. `transition`プロパティを使用して、色が変化する際のアニメーションが滑らかになるよう設定しました。 4. 要件にあるように、画像やリンクを使わずに、純粋にCSSのみで表示を切り替えています。 5. また、タグを変更することなく、既存のHTMLにスタイルを適用することで解決しています。 このコードをあなたの既存のCSSに追加することで、希望の国旗の切り替えが実現できるかと思います。CSSにおける疑似クラスとグラデーションの使用を理解する良い練習になるでしょう。あなたのスキルアップの旅がより一層実りあるものになることを願っています。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/

retorofan
質問者

お礼

ご投稿ありがとうございます。

Powered by GRATICA
retorofan
質問者

補足

確認させて頂きました。 ちょっと残念でした! 😪 [問題点] ・国旗の下部に国旗名が表示されない。 ・次の要件も考慮して欲しかったです。 「国旗の下にある国名も連動して変更される (JS無用)」

関連するQ&A

  • CSSだけで添付図のように表示できますか?

    [Q] CSSだけで添付図のように表示できますか? CSSのスキルアップのための問題を作りました。    [仕様]   ・CSSだけで整形のこと   ・タグは変更、追加、削除ができない   ・画像やリンクによる表示は無効   ・配色、配置はピッタリでなくてもよい   ・一辺が200pxの正方形内にあるもの    青い四角形、薄茶色の円、赤系のボール状のもの CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="shape"></div>

    • 締切済み
    • CSS
  • 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>

    • 締切済み
    • CSS
  • CSSで作図とアニメーション (6)

    [Q] CSSで作図とアニメーションができますか? CSSのスキルアップのための問題を作りました。 [課題] CSSで、下辺が水平で頂点が上にある正三角形を作ります。 一辺が100pxで緑色の正三角形、頂点に「A」と表示させておきます。 その外接円を灰色で、その中心を赤色で描きます。 (添付図参照) [動作] 1.円にホバーした時、  ・正三角形が青色に変わる  ・3秒後、右回りにアニメーションで一回転する 2.マウスアウトすると、アニメーションで元の状態に戻る [仕様] 1.CSSだけで整形のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない 4.チェックボックスを使わずに実現させる CSSだけでこのような作図と動作ができますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="sankaku"></div>

    • 締切済み
    • CSS
  • CSSで正六角形の作図その2 (9)

    [Q] CSSで正六角形の作図ができますか? CSSのスキルアップのための問題を作りました。 [課題] CSSで、正六角形を作ります。 前回の「作図 (8)」では6つのDIV要素それぞれに正三角形のCSSを適用しました。 今回は、DIV要素3つで同等の表示を実現させよう、というものです。 (添付図参照) [仕様] 1.CSSだけで整形のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない CSSだけでこのような作図とアニメーションができますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 <style> /* 6つの色 red, blue, orange, green, violet,chocolate */ .container { position: relative; width: 120px; height: 120px; border: solid 1px red; } /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="container"> <div class="rokkaku"> <div></div> <div></div> <div></div> </div> </div>

    • 締切済み
    • CSS
  • CSSで正六角形の作図 (8)

    [Q] CSSで正六角形の作図ができますか? CSSのスキルアップのための問題を作りました。 [課題] CSSで、正六角形を作ります。 正六角形を正三角形の集合体とみれば、CSSで正三角形の基本形を1つ作り、 それを利用して、表示位置・向き・配色を決めれば正六角形が作れます。 (添付図参照) [参考] 下辺が水平で頂点が上にある正三角形において、 頂点からの垂線で2分された直角三角形の3辺の比は、 1:2:√3 となる。 したがって、一辺が 100(px)の三角形を作る時、 高さ=100/2 ⅹ √3= 50√3 ≒ 86.60(px) [仕様] 1.CSSだけで整形のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない CSSだけでこのような作図ができますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 <style> /* 6つの色 */ red, blue, orange, green, violet,chocolate /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="container"> <div class="rokkaku"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> </div>

    • 締切済み
    • CSS
  • CSSで作図とアニメーションができますか?

    [Q] CSSで作図とアニメーションができますか? CSSのスキルアップのための問題を作りました。 CSSでツートーンの六角形を作ります。 1.六角形にマウスダウンすると、右回りに一回転します。 2.マウスアップすると、六角形が元の位置に戻ります。 3.アニメーションで回転します。 [仕様] 1.CSSだけで整形のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない 4.チェックボックスを使わずに実現させる 5.配色はつぎのとおり gray, black CSSだけでこのような作図できますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="rokkaku"></div>

    • 締切済み
    • CSS
  • CSSで作図とアニメーション (7)

    [Q] CSSで作図とアニメーションができますか? CSSのスキルアップのための問題を作りました。 [課題] チェックボックスを1つ用意しておきます。 CSSで、下辺が水平で頂点が上にある正三角形を作ります。 チェックインしたら、右回転して茶色の水平線上で停止します。 (添付図参照) [動作] 1.チェックインすると、アニメーションで正三角形が右回転します。  ・回転軸は、右下の頂点です。(点C)  ・右回転は、茶色の水平線上で停止します。 2.チェックアウトすると、アニメーションで元の状態に戻ります。 3.チェックボックスのラベルについて  ・アニメーション開始時は「正三角形を転がす」  ・アニメーション終了時には「元に戻る」 [仕様] 1.CSSだけで整形のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない CSSだけでこのような作図と動作ができますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 [CSS] <style> .container { position: relative; width: 220px; height: 160px; background-color: skyblue; border-bottom: 2px solid brown; } /* 添付図のように整形するスタイル設定 */ </style> [HTML] <input id="task" type="checkbox"> <label for="task">正三角形を転がす</label> <div class="container"> <div class="sankaku"></div> </div>

    • 締切済み
    • CSS
  • CSSで正六角形の作図その3 (10)

    [Q] CSSで正六角形の作図ができますか? CSSのスキルアップのための問題を作りました。 [課題] CSSで、正六角形を作ります。 前回の「作図 (9)」では3つのDIV要素それぞれに CSSで2個ずつ正三角形を作成して正六角形を完成させました。 今回は、「rokkaku要素」の子要素2つで正六角形を実現させよう、というものです。 (添付図参照) [仕様] 1.CSSだけで整形・動作のこと (JS不使用) 2.画像やリンクによる表示は無効 3.タグは変更、追加、削除ができない 4.チェックボックスを1つ用意する 5.「回転させる」にチェックインすると回転アニメーションする 6.チェックを外すと回転アニメーションが止まって原状復帰する [参考] ・DIV要素が1つあれば、疑似要素で2つとそれ自体で、  合計3つの正三角形が作れます。 ・正三角形の頂点から垂線を引いてできた直角三角形の3辺の比は  1:2:√3 になります。 ・Canvasが使えなくても、borderまたは polygonで正三角形が作れます。 CSSだけでこのような作図とアニメーションができますか? CSSのスキルアップに励んでいる方の回答をお待ちしております。 <style> /* 6つの色 red, blue, orange, green, violet,chocolate */ .container { position: relative; width: 120px; height: 120px; border: solid 1px red; } /* 添付図のように整形するスタイル設定 */ </style> [HTML] <div class="container"> <div class="rokkaku"> <div></div> <div></div> </div> </div>

    • 締切済み
    • CSS
  • CSSだけで添付図のように整形できますか?

    CSSだけで添付図のように整形できますか? CSSのスキルアップのための問題を作りました。    [仕様]   ・商品には 括弧付き番号が振ってある   ・点線の下線が引いてある   ・元値は 青色文字で 薄い桃色の背景色になっている   ・売値は 赤色文字で 黄色の背景色になっている   ・タグは変更、追加、削除ができない   ・CSSだけで整形のこと [CSS] <style> /* 添付図のように整形するスタイル設定 */ </style> [HTML] <ul id="Product_List"> <li>商品A<p><del>345円</del> 234円</p></li> <li>商品B<p><del>2,000円</del> 1,234円</p></li> <li>商品C<p><del>1260円</del> 850円</p></li> <li>商品D<p><del>100円</del> 80円</p></li> <li>商品E<p><del>150円</del> 120円</p></li> <li>商品F<p><del>500円</del> 450円</p></li> </ul> CSSのスキルアップに励んでいる方の回答をお待ちしております。

    • ベストアンサー
    • CSS
  • CSSで記述した数値が取得できない

    あるdivタグのサイズを640px*480pxにしようと思い、以下のように記述しました。 (省略) <style type="text/css"> <!-- #oshiete { width: 640px; height: 480px; } //--> </style> </head> <body> <div id="oshiete"></div> (省略) その後、これをJavaScriptで動的に変化させようとしたのですが、 document.getElementById("oshiete").style.width などでの数値の取得が出来ません。 調べてみたところ、divタグに <div id="oshiete" style="width: 640px; height: 480px;"></div> と直接スタイルを記述していれば数値の取得が出来ました。 しかしスタイルシートを使う以上、タグに直接スタイルを書いていたのではせっかくの効果が発揮できません。 スタイルシートをheadタグに記述、あるいは外部CSS呼び出しを使いつつ、JavaScriptから数値を取得する方法を教えてください。 よろしくお願いします。

専門家に質問してみよう