说我有3个div
,例如:
#wrapper {width:100%; border:1px solid #ccc}
#wrapper div {box-sizing: border-box; float:left; border:1px solid #777}
#wrapper #first {width:30%}
#wrapper #second {width:70%}
#wrapper #third {width:30px}
<div id="wrapper">
<div id="first">A</div>
<div id="second">B</div>
<div id="third">C</div>
</div>
我想要什么:
width
始终是固定值,例如30px
; width
,以使用容器的洗手间。例如,如果容器为100px,则第3个div为30px,第一个为(100-30)*30% = 21px
,第二个为(100-30)*70% = 49px
。
正确的方法是什么?
谢谢
答案 0 :(得分:1)
您可以使用calc:
#wrapper {width:100%; border:1px solid #ccc}
#wrapper div {box-sizing: border-box; float:left; border:1px solid #777}
#wrapper #first {width:calc(30% - 30px)}
#wrapper #second {width:calc(70% - 30px)}
#wrapper #third {width:30px}
<div id="wrapper">
<div id="first">A</div>
<div id="second">B</div>
<div id="third">C</div>
</div>
如果需要,可以使用css变量来不必三遍写30px。
答案 1 :(得分:0)
您不必为此使用width
计算。你可以做这样的事情。
您还可以对要动态更改大小的选择器类进行max-width
,并且可以冻结最后一个块的大小,即third
div。
#wrapper {width:100%; border:1px solid #ccc}
#wrapper #first{
width:30%;
display:inline-block;
border:1px solid red;
}
#wrapper #second{
width:60%;
display:inline-block;
border:1px solid teal;
}
#wrapper #third{
width:30px;
display:inline-block;
border:1px solid blue;
}
<div id="wrapper">
<div id="first">A</div>
<div id="second">B</div>
<div id="third">C</div>
</div>
答案 2 :(得分:0)
#wrapper {width:100%; border:1px solid #ccc}
#wrapper div {box-sizing: border-box; float:left; border:1px solid #777}
#wrapper #first {width:calc(30% - 15px)}
#wrapper #second {width:calc(70% - 15px)}
#wrapper #third {width:30px}
<div id="wrapper">
<div id="first">A</div>
<div id="second">B</div>
<div id="third">C</div>
</div>
答案 3 :(得分:0)
#wrapper {width:100%; border:1px solid #ccc; display: flex}
#wrapper div {box-sizing: border-box; float:left; border:1px solid #777}
#wrapper #first {flex-basis: 30%}
#wrapper #second {flex-basis: 70%}
#wrapper #third {flex-basis: 30px}
<div id="wrapper">
<div id="first">A</div>
<div id="second">B</div>
<div id="third">C</div>
</div>
使用flexbox实现此目的的另一种方法。希望这会有所帮助。