2011-07-19 8 views
5

私は多くのdivで画面を分割していますので、それらはお互いに張り付いています(チェス盤のようなものですが、可変サイズのフィールドがあります)。私はheigthwidthをパーセンテージ(親コンテナと比較して)を使って設定しました。私はすべてのレイアウト区切り、div要素にborder: 1pxを追加するときCSSの内側の境界、壊れたレイアウト

は今、...私は境界が各側に1ピクセルを追加し、解決策はいくつか内部境界線を追加するだろうと想像してみてください。どういうわけかそのような内部ボーダーを追加できますか?

答えて

13

box-sizing: border-boxを使用すると、要素のwidthのボーダーの幅の部分を作ることができます。

.example { 
    -webkit-box-sizing: border-box; 
     -moz-box-sizing: border-box; 
      box-sizing: border-box; 
} 

Browser support.

+0

/*あなたはIEのための*を忘れています*/ \t \t \t -moz-box-sizing:border-box; -webkit-box-sizing:border-box; -ms-box-sizing:border-box; ボックスサイズ:border-box; –

+0

@ EmilioYero:いいえ、私はしませんでした。私の答えの最後に "ブラウザのサポート"リンクを見てください。 IE7はそれをまったくサポートしていませんが、IE8以上はベンダープレフィックスなしでサポートしています。 – thirtydot

5

アウトラインプロパティを使用します。国境声明とは異なり、要素の高さや幅に「追加」しません。しかし、国境のpropeertyとは異なり、左、右、下、または左の個々のプロパティを持つことはできません。 outline-style、outline-widthおよびoutline-colorのプロパティを持つことはできますが、

Outline Refrence

+0

それはどのようにかかわらず、すべてのブラウザで動作しますか? – Phil

+0

@ Phil:わかりませんが、アウトラインプロパティは従来のブラウザでもうまくサポートされていると思います。私は是正のために立つ。 – Jawad

+0

ブラウザのサポート:http://reference.sitepoint.com/css/outline#compatibilitysection – thirtydot

1

あなたは彼らに49.5% EDITを作る0.5によって割合を減らすことができます:最初は動作しませんあなたが親のdivと多くの子divを持っている場合、

+0

'outset'は何も変更しません。 – thirtydot

0

@thirtyおかげで、言ってみましょう。高さと幅をパーセンテージで設定すると、それらは互いに固執します。その後、border:1pxを追加すると、その幅が以前よりも長くなります。これを解決するには、幅の変更を防ぐためにanother div after the parent divが必要です。

+1

私はそれがどのように問題を解決するのか分かりません! – Jawad

+0

@ Jawad: 'padding'と' margin'の両方を削除しようとすると、すべての子divをまとめてラップします。 –