角丸にするためにライブラリを作ってみる (Opera 用コードの試作) | ヨモツネット text ja 2008-08-08 http://www.yomotsu.net/wp/?p=445

角丸にするためにライブラリを作ってみる (Opera 用コードの試作)

Operaで丸角を実現するCSSを試してみた (解決) – by edvakf in hatena さんからトラックバックをいただき、トラックバック先の記事がとても参考になりました。

その記事の内容を参考に Opera でも自動で角丸を実現するための JavaScript ライブラリを作ってみようと思って、すこしそれっぽくなってきました。

作りかけですが、大体こんな感じということで Opera でも角丸を実現するライブラリの途中経過です。

これを作るのにいろいろ試してみた結果、いろいろ勉強になりました。

背景で表示した SVG 全体の大きさは width + (右の stroke-width / 2) + (左の stroke-width / 2) になるみたい。例えばwidth100 で、stroke-width10 なら 100 + 10 / 5 + 10 / 5 = 110。つまり、width100 % にしてしまうと stroke-width の分で 100 % + 10 になっているのでその分が切れてしまう。たぶん、トラックバック先の記事にあった

気にならないレベルではあるが、SVGで作ったものはネイティブのCSSのborder-radiusより若干汚い。

というのも、stroke-width が切れているためみたいです。試しに、SVGxy1 を設定すると、切れている stroke が切れずに見えるようになりました。

あと、背景で表示する SVG の width100 px のように固定している場合、Opera のズーム機能で伸縮しても背景の SVG は伸縮されませんでした。そんなわけで、背景に使う SVG は基本的に % で指定したほうがよさそうです。

これらの結果を Opera で実際に確認できるサンプルを用意しました。

そんなわけで、また時間ができたら続きを作っていきたいと思います。

とてもよいヒントをいただけた edvakf さんに感謝。



トラックバックURI

http://www.yomotsu.net/wp/wp-trackback.php?p=445

コメント

CSSで角丸を表現する方法をちょっと詳しく書いてみる | Design Spiceさんからのコメント

2010年4月19日 20:19

[...] [...]

コメントフォーム

コメント

コメントでは一部の XHTML タグを使用できます。 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

カテゴリー一覧

この Weblog の FEED

この Weblog の FEED