CSSで凝った角丸ボックスを作成する方法

このQ&Aのポイント
  • CSSを使用して、幅や高さを%で指定可能な角丸ボックスを作成する方法を教えてください。
  • また、ほぼ全てのブラウザに対応させるためのCSSの設定や、ボックスにグラデーションや影を追加する方法も知りたいです。
  • さらに、CSSを使用してボックス内に文字や画像を表示させる方法についても教えてください。
回答を見る
  • ベストアンサー

cssで凝った角丸ボックスを作りたい。

以下の条件を満たしたボックスをスタイルシートで作りたいのです。 ●ほぼ全てのブラウザに対応させたい。  ・化石のようなブラウザは結構ですが、   IE、FireFox、ネスケ、Operaには   崩れる事なく表示できるようにしたいです。 ●tableタグを使用したくない。  ・tableを使用せずにこのボックスを実現したいのです。 ●幅や高さは固定ではなく%で指定したい。  ・ブラウザのウィンドウサイズによって変化させたいのです。 ●角を丸く、その外側は透過させたい。  ・(bodyの)バックグラウンドカラーが凝っていて、%で指定したい為、   丸くさせた角の外側を透過させる必要があります。   参照1はかなり近いイメージなのですが、   角丸の外側が透過していません。(bodyのカラーと同じ色にしている)   ちなみにこれを透過させると上下のバックグラウンドカラーや   左右の縦にリピートしているバックグラウンドイメージが見えてしまいます。   (参照1)http://www.sovavsiti.cz/css/corners.html ●左から右へとグラデーションをかけたい。  ・希望しているボックスがグラデーションの為、   参照2の黄色の縦線のように太くしたボーダーではできない。   (参照2)http://phrogz.net/CSS/roundcorner.html ●影を付けたい。  ・右下に影を付けたいです。ちなみに角丸・影などの画像は自分で作成できます。 ●画像はcssで表示させたい。  ・角丸やグラデーションなどの画像はhtmlにはimgタグを記述せず、   cssでバックグラウンドカラーなどで表示させたいと思っています。  ※これは変更・妥協可。 ●ボックスの中には文字などが入ります。 調べても考えても糸口が見つかりません。 もしご存知でしたら是非教えて下さい。 よろしくお願いします。

  • wif87
  • お礼率86% (62/72)
  • HTML
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

現在検討中のCSS3ではブロックの角を丸くする、グラデーションをかける、テキストに影を付けるなどが検討されています。(ブロックへの影は・・なかったかも。) しばらく待てば多くのブラウザで苦もなく実現できるようになるかもしれません。CSSはまだまだ過渡期なんです。 現在検討中ということは逆に現時点ではあまりよい方法はないということです。 divブロックを幾重にも重ねるとか、そうしたやり方で実現できるかもしれませんが、そうして装飾のためだけにタグを重ねる手法は本質的にテーブルをレイアウトに使うのと変わらない気がします。ってことで無理せずテーブルを使っちゃうか、意味がわかっていてテーブルを使うのを嫌っているのならできないものとして諦めるのがよいかと。

参考URL:
http://www.fromdfj.net/html/divsyndrome.html
wif87
質問者

お礼

確かにおっしゃるとおりですね。 今まではそんな事無かったのに、 “角を丸くしたい”と思う心が 病を発症させてしまったようです。 ありがとうございました。

関連するQ&A

  • 角丸ボックス

    CSSで角丸ボックス。dreamweavercs5で作ってます。画像(角丸ボックス)の中に文章を要れる方法教えて下さい。

    • ベストアンサー
    • HTML
  • CSS3 影をつける 角丸

    CSS3 影をつける 角丸 CSSで四角の角四つを丸くする方法と、四角に影をつける方法があるのともうのですが、 教えてください。 もうひとつ、web-kit?とか言うのをダウンロードして、それを使うように どこかのページ(CSS関連)で見たのですが、あれはどう使うのだったのでしょうか。

    • ベストアンサー
    • HTML
  • cssでボックス内にテーブルのような要素を・・・

    こんにちは。はじめまして。 CSS超初心者なのですが、バックグラウンド画像を使用して、例えば 外枠を影付き角丸ボックスを作り、さらにそのボックスの中に、 左側に写真、右側に小見出し&説明文の欄を作りたいのですが、 どうやればいいのか、困っています。(ボックスのサイズは幅500高さ 150くらいのと幅220高さ150くらいの2種類作りたいのです。 cssを1から作成する能力はないので、cssテンプレートサイトなどか ら、角丸ボックステンプレをダウンロードして使用させてもらって、そ のボックスの中に無理矢理(?)dl,dt,ddで左右横並びテーブルのよう なものを作ってみたのですが、ボックスの角丸枠とテーブルの間にもの すごい余白ができてしまったり、テキストが変に回り込んだりと、思う ようにレイアウトできません。 なにしろ、様々なcssタグの説明やhtmlタグの説明ホームページなどか ら、サンプルなどを引用させてもらっているので、当然なのかもしれま せんが(;_;)すみません・・・。 目標にしている数々のHPを閲覧していると、div要素ですべて配列して いるものもあって、、やはり自分のしているのは邪道なのかなぁと凹ん でいます。 外枠ボックスとテーブル(?)の間の余白が調整できないばかりでなく ボックス内のレイアウトがうまくできなくて困っています。 しかし、どれにしろcssの作成ができないので、途方に暮れています。。。 そんなこんなで、もう数週間パソコンにかじりついて、タグの勉強HPを 見ているんですが、なかなかわかりつらくて。 どうか助けてください。よろしくお願いします。 こんな感じのボックスが作りたい!というのは、あるんですが、他所様 のHPのURLを勝手に記載していいのやらで、わかりづらい文章ですみま せん。 (記載してもよろしければ、URL書かせていただきます)

    • ベストアンサー
    • CSS
  • CSSで角丸テーブル

    CSSでDIV要素を使って入れ子し、角の丸いテーブルを作っているのですが、なぜか誤差が出てしまいます。 CSSのソースは次のようなものです。 table(2).gifは角丸テーブルの画像です 画像サイズ:横440px 縦11px .box-center-start { width: 440px; background: url(image/table.gif); background-repeat: no-repeat; } .box-center { width: 440px; background-color: white; margin: 20px 10px 20px 8px; float: left; } .box-center2 { width: 440px; background-color: white; padding: 0px 10px 10px 10px; border-right: 1px solid gray; border-bottom: 1px dashed gray; border-left: 1px solid gray; } .box-center3 { width: 440px; background-color: white; padding: 10px 10px 0px 10px; border-right: 1px solid gray; border-left: 1px solid gray; } .box-center-end { width: 440px; background: url(image/table2.gif); background-repeat: no-repeat; } このように記述し、HTMLに <DIV class="box-center"> <DIV class="box-center-start"></DIV> <DIV class="box-center2"> ~内容 </DIV> <DIV class="box-center3"> ~内容 </DIV> <DIV class="box-center-end"></DIV> と打ってもなぜか綺麗に表示されません。 クラス「box-center-start(end)」の下に、少し余白が入ってしまうのです。(10pxほどの) 何方か助言お願いしますm( _ _ )m

  • cssを用いてボックスを作りたいです。

    cssを用いてボックスを作りたいのですが、うまくいかず困っています。 http://www.tagindex.com/stylesheet/box/width_height.html ↑内容はここの中段にある使用例から参照しました。 operaではきちんと表示されるのですが、safariでは文字のみの表示となり青色の領域が表示されません。 htmlタグはこれです。 <div id="contents"> <div class="box">横幅50%×高さ100px</div> </div> cssは下記です。 #contents div.box { width: 50%; height: 100px; background-color: #85b9e9; } ※ちなみに#contentsのwidthは770pxあります。 現在、dreamweaverの「ブラウザでプレビュー」で確認してるのですが、この方法が間違っているのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CSS
  • 角丸ボックスの色が合いません!!

    趣味でサイトを作っている初心者です。cssと画像を使って角丸ボックスを作っているのですが、うまくいきません・・どなたか助けてください! 上段と中段と下段を組み合わせて作りたいのですが、上段と下段(角丸の部分)はイラストレーターで画像を作り、中段は背景に色をつけて background:#99cc00 url(images/navbar.png); などとしてくっつけようとしてるのですが、どうしても、どーしても画像と背景色(#99cc00のこと)が合いません!もともと#99cc00にしたいのですが、これをイラレで画像を作るためにCMYKの値に直すと、全然違う色が出来てしまいます。CMYK⇔RGB間で完璧な変換ができないことは、なんとか調べて分かったのですが、ではみなさんはどの様に画像と背景色を合わせているのでしょうか・・・どうか教えてください!

  • CSS3で角丸写真にシャドーを付ける方法

    現在独学でHTML5とCSS3の勉強をしています。 写真を角丸加工してそれにCSSで「box-shadow」プロパティで影を付けようとすると、角丸でカットした部分が白く残ってしまいます。 また、「border-radius」で角丸にしても同じです。 写真のサイズを300×225pxにした場合、写真を角丸にしても(カット部分は透明にしてあります)、ボーダーで角丸にしても結局は長方形のスペースはそのまま残ってしまうと言う事ですか。 写真を角丸加工して影を付けたい場合は、フォトショップなどで加工したものを貼り付けるしかないのでしょうか。 ごまかしで右隅のカットした部分を黒に塗っておけばそれらしくは見えるのですが。 CSSで処理ができれば1回の設定でできると考えたのですが、やはり甘い考えだったのでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • CSS
  • イラレ 長方形が角丸になってしまう

    イラストレーターでアイコンを作っています。 長方形ツールで長方形を描いたあと、それを選択状態のまま、「効果」から「角丸にする」を選びました。 でも、いくらやっても角丸になりませんでした。 もう一度、長方形ツールで長方形を描くとなぜか角丸の長方形が描かれました。 (長方形ツールの中の角丸長方形を選んだわけではなく、角がある長方形を選びました) しかし、その長方形は角丸をとることもできないし、グラデーションをかけることもできません・・。 角がある長方形ツールに戻すにはどうしたらいいのでしょうか? また、今回、グラデーションがきかなくなったのはなぜでしょうか? (その長方形を選択するとカラーパレットではちゃんとグラデーションになっているのです。色を変えても反映しない状態です。)

  • 角丸うまくいきません

    Javascript初心者です。 自分のサイトでRico.jsというライブラリを使って角丸ボックスを作ろうとしましたが、できませんでした。 で、検証していくと、どうやらbodyタグのonloadに原因があるようでした。 <body onload="MM_preloadImages('img/8hoverfloormop.gif','img~~> 実際にonload以下を外したら角丸が作れたのですが、どういうことでしょうか? この記述はどこにすればよいのでしょうか? ご回答よろしくお願いします。

  • CSSのボックスの配置他について

    <head> <title>Webサイト</title> <style type="text/css"> <!-- #example { /* 親ボックス */ width: 750px; height: 900px; background-color: #FFEAEF; position: absolute; top: 50px; left: 100px; } { top: 50px; left: 150px; background-color: #FFEAEF } #boxL { /* ボックス左 */ width: 150px; height: 600px; background-color: #ffffff; position: absolute; top: 150px; left: 1px; } #boxR { /* ボックス右 */ width: 599px; height: 600px; background-color: #ffffff; position: absolute; top: 150px; left: 150px; } --> </style> </head> <body> <div id="example"> <div id="example1"><h1>ボックス1</h1></div> <div id="boxL">ボックス左</div> <div id="boxR">ボックス右</div> </div> </body> </html> とタグを打ちこみました。下の部分に文字を書きたいのですがどうすればいいですか?あと、<div id="boxL">ボックス左</div>の所は、普通のHTMLタグを使っても問題ないでしょうか?

専門家に質問してみよう