折りたたまれたボックスで、CSSのボーダーのトリック
ティエリーKoblentzによって15:23に2011年3月8日|でCSS 101 、 設計 、 開発 | 8コメント これらのトリックは、画像、CSS3グラデーションや余分なマークアップの使用に頼らずに設計を達成するのに役立ちます。 ゼロでボックスを崩壊によってline-heightとheight値は、我々は国境を越えて、 コンテンツボックスの外のコンテンツを表示することができます。
双方向の色の背景
この例では、IE 6/7の回避策を(このソースコードチェックが含まれていないデモページ IE修正用)。
.parent { display:inline-block; text-align: center; border: 1px solid #cecece; } .child { display:inline-block; line-height: 0; height: 0; border-top: 1em solid #ffc; border-bottom: 1em solid #fdcf46; padding:0 .6em; vertical-align:bottom; } <ul id="menuBar-A"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> リスト項目の間にドットとパイプ
この例では、いくつかの単純なIEの修正後、ブラウザ上で正しく表示されます。
ul.one, ul.two { margin-left:0; display:inline-block; *display:inline; zoom:1; height:12px; line-height:12px; padding:0; } li { float:left; display:inline; height:2px; line-height:2px; position:relative; top:.3em; } ul.two {border-left:1px solid #333;} ul.one li {border-left:2px solid #333;} ul.two li {border-right:2px solid #333;} ul.one li.first-child, ul.two li.last-child { border:0; } a { color:#000; padding:.4em .9em; *position:relative; } <div id="menuBar-B"> <ul class="us"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> </ul> <ul class="ourOffer"> <li class="services"><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> </div> 左と右向きの三角形
この例では、IE 6/7の回避策を(このソースコードチェックが含まれていないデモページ IE修正用)。
#box { line-height: 0; height: 0; border: .4em solid transparent; border-left-color: #333; border-right-color: #333; padding: 0 .3em; display: inline-block; } <ul id="menuBar-C"> <li><a href="#">About Us</a></li> <li class="selected"><a href="#">Contact Us</a></li> <li><a href="#">Services</a></li> <li><a href="#">Products</a></li> </ul> IE 6と境界線の透明性
IE 6は、キーワード"をサポートしていませんtransparent境界線の色のための"。 この値を使用すると、IE 6は黒の境界線を描画します。
このための修正は、使用することであるクロマ·フィルタ 、透明などのオブジェクトの内容の特定の色が表示されます 。 たとえば、右向き矢印を作成することは、このルールを使用することができます。
#Box { height: 0; width: 0; border: 10px solid transparent; font-size: 0; _border-color: pink; _filter: chroma(color="pink"); border-left-color: #333; } フォントサイズの宣言は、IE 6のための別の回避策です。 これはブラウザがボックスの高さを増加させないことを確認することです。
プレスを停止私はちょうど新しいトリックを(Chungho牙ありがとう)を学びました!:
[IEの国境の透明性を作成する]のマジックに "のborder-style 'を設定することで破線または点線
それはそれだ! これは単なるイメージレス設計を実現するために境界線を使用するもう一つの方法です。
参考文献
共有および拡張: del.icio.usでブックマーク | Diggそれ! | reddit!
8コメント
申し訳ありませんが、コメントフォームは、この時点でクローズされます。


すばらしい! しかし、オペラはどうですか?
によるコメントCuprum - 2011年3月9日#
@ Cuprum
オペラは、テキストをなくしたように見えます。 行の高さがゼロに設定されていない場合、行の高さを0またはそれ以下に設定されている場合、コンテンツボックスの上のどちらかに置く。
誰かがバグ;-)を提出してください
サイドノートとして、私はしばしば物事はすべてのブラウザ(IE6を含む)で動作させることができますが、私はOperaで壁にぶつかると思います。
このブラウザは、本当に苦痛です。 それは問題がありますが、私たちはIE6 / 7(私たちはバージョンをターゲットにすることはできませんので)で行うように我々はそれを修正することはできません。 その上、それは多くの市場シェアを持っていないので、なぜ我々は時間を無駄にするべきですか?
ご意見をいただきありがとうございます
によるコメントティエリKoblentz - 2011年3月9日#
そのオペラは、行の高さゼロを好きではないと思われる。 私はオペラを解決するよう、0.1行の高さを置換した。 AFAICTこれが唯一のオペラ、私は〜と考えるよりも修正が容易でIE 8に影響を与えます。
真心を込めて、デビッド
デイヴィッドHucklesbyによるコメント- 2011年3月14日#
こんにちはデビッド、
それを見つける素晴らしいことだ、共有するための多くの感謝しています。
コメントby ティエリKoblentz - 2011年3月15日#
良いポストですが、IE6のために固定を停止します。
マイクによるコメント- 2011年3月16日#
こんにちはデビッド、
この構造は、(あなたのul.twoクラスから)とは何を意味しません。
表示:インラインブロック;
*ディスプレイ:インライン;
私はスターキーワードについて興味が...ありがとう!
によるコメントポール - 2011年3月17日#
こんにちはポール、
これらのルールでは、2つの別々のCSSフィルタは、(CSSハック)があり、いずれかのスターのプロパティ·ハックと呼ばれ、もう一方は、プロパティのハックをアンダースコアと呼ばれています。
彼らはこのように動作します。
*property:value; /* IE5/6/7 see this */
_property:value; /* IE5/6 see this */
我々はこの順序でそれらを置く場合、それは番目の宣言は、IE7に与えられた値を上書きすることを確認することです。
あなたはこれを試みることができる:
color:blue; /* blue in all browsers */
*color:yellow; /* switching to yellow for IE less than 8 */
_color:green; /* switching to green for IE less than 7 */
これらのハックは信頼性の高いものですが、CSSバリデータは(これは適切なCSS構文ではないので)エラーとしてフラグを立てることに注意してください。
によるコメントティエリKoblentz - 2011年3月17日#
私は他の場所で言及見つけていないCSSの三角形のレンダリングのバグを発見しました。 XP上のFirefox 4は、奇妙な取得します。
ここではデモは次のとおりです。 http://zevbrokeit.posterous.com/nubs-problem
何か提案はありますか?
によるコメントZEVゴールドバーグ - 2011年3月24日#