2017-08-29 12 views
0
私は国境が親のdivから出てくる border:2px solidでのdiv widthを設定するにはどうすればよい

修正幅のdivにボーダーを持つdivの幅を設定する方法

注: - 私もIEで修正したいと思います。

例を掲載することにより、より控えめに説明しています。

.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
} 
 

 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    width: 100%; 
 
    border: 2px solid; 
 
    height: 40px; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

+1

よくだけ(ブロック要素としてDIVは、この場合に、自動的に完全な幅を取り、次に幅を削除それは必要ではない) - o rは 'box-sizing'プロパティで読み上げます。 – CBroe

+0

あなたの質問は理解しにくいです。いくつかの情報を追加してください。 –

答えて

1

ちょうどそのDIVにdisplay: block;を追加します。 box-sizingプロパティは、あなたの問題をsloveすることができ、これを試してみてください

.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
} 
 

 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    display: block; 
 
    border: 2px solid; 
 
    height: 40px; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

+2

divにdisplay:blockを追加する必要があるのはなぜですか? divはすでにブロック要素です。あなたのコードは 'width:100%'を削除したために動作します – Turnip

+0

@スーパーユーザIEが動作し、CSSを書く必要がないため、あなたの答えを受け入れるでしょう..おかげで.. – LKG

1

の下に更新スニペットを確認してください。

*, *:before, *:after {-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } 
 
.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
} 
 

 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    width: 100%; 
 
    border: 2px solid; 
 
    height: 40px; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

1

ちょうどこのよう.twobox-sizing: border-box;を追加します。

.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
} 
 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    width: 100%; 
 
    border: 2px solid; 
 
    height: 40px; 
 
    box-sizing: border-box; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

ない空想のトリック。上記のようにを*, *:before, *:afterに追加すると、レイアウトの他の部分が壊れることがあります。

3

.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
} 
 

 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    width: 100%; 
 
    border: 2px solid; 
 
    height: 40px; 
 
box-sizing: border-box; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

-1
<div class="box"> 
<div class="one"></div> 
<div class="two"></div> 
</div> 

.box { 
width: 300px; 
border: 1px solid; 
padding: 10px 0; 
} 

.one { 
width: 100%; 
background: tomato; 
height: 40px; 
} 

.two { 
width: 296px; 
border: 2px solid; 
height: 40px; 

.box { 
 
    width: 300px; 
 
    border: 1px solid; 
 
    padding: 10px 0; 
 
    } 
 

 
.one { 
 
    width: 100%; 
 
    background: tomato; 
 
    height: 40px; 
 
} 
 

 
.two { 
 
    width: 296px; 
 
    border: 2px solid; 
 
    height: 40px; 
 
}
<div class="box"> 
 
    <div class="one"></div> 
 
    <div class="two"></div> 
 
</div>

}

関連する問題