6

css3で曲線/円弧スタイルのメニューを作成することは可能ですか?

ここに画像の説明を入力してください

この使用キャンバスまたはHTML5で何かを達成できますか?

よろしくお願いします、ローガン

4

1 に答える 1

4

残念ながら、特にメニュー項目に関しては、エレガントな解決策はわかりませんが、アーク自体はプレーンなcssといくつかのhtml要素で実行できるはずです。

多分これはあなたを始めることができます。

html

<div class="container">
    <div class="gray"></div>
    <div class="white"></div>
</div>

CSS

.container {
    height: 200px;
    overflow: hidden;
    position: relative;
}
.gray,
.white {
    position: absolute;
    left: -25%;
    right: -25%;
    border-radius: 100%;
}
.gray { /* use a gray border with border radius to emulate an arc */
    top: -50%;
    border:100px solid gray;
    border-top: none;
    height: 200px;
}
.white { /* put a white oval on top for the top edge of the banner */
    top: -80%;
    background-color: white;
    height: 300px;
}

http://jsfiddle.net/rNLsr/

ここでの課題は、すべてのメニュー項目を配置し、それに応じて回転させることです...これが実現可能な解決策とは本当に思えませんが、とにかく役立つことを願って投稿しています.

SVGを使用すると、テキストを湾曲させることができ、おそらくこのタスクにより適したツールです。

編集

これは概念実証であり、見栄えを良くするために微調整が必​​要な SVG で行ったバージョンです (何らかの理由でクロムでは恐ろしく、IE では小さくレンダリングされます) が、基本的なアイデアが得られます。

svg

<svg viewBox="0 0 500 300" version="1.1">
    <defs>
        <!-- Start at (10,40) end at (490,40) use control point (250 ,85) -->
        <path id="curvetext" d="M 10,40 Q 250,85 490,40" />
    </defs>
    <use x="0" y="0" xlink:href="#curvetext" fill="none" stroke="gray" stroke-width="50"/>
    <text font-size="12" fill="white">
        <textPath xlink:href="#curvetext">
            <a xlink:href="http://example.com">Menu 1</a> Menu 2 Menu 3 Menu 4 Menu 5 Menu 6 Menu 7 Menu 8 Menu 9
        </textPath>
    </text>
</svg>

SVG デモ: http://jsfiddle.net/rNLsr/2/

于 2013-03-21T13:15:44.640 に答える