我能否解释为什么这段代码会产生结果呢?如果可能的话,还有办法解决它/解决它。
我不希望div'z'和'q'越过右边的'蓝色div边界'。
或
我希望div'x'与'z'和'q'一致,并且也会越过蓝色的右边界。
<div style='margin: 5px;width: 653px;border: blue 1px solid;float: left;'>
<div style='margin: 0px; margin-bottom: 5px;width: 100%;border: red 1px solid;/*float: left;*/'>z</div>
<div style='overflow: hidden;margin: 0px; margin-bottom: 5px;width: 100%;border: red 0px solid;/*float: left;*/'>
<div style='margin: 0px; margin-bottom: 0px;width: 300px;border: red 1px solid;float: left;'>y</div>
<div style='margin: 0px; margin-bottom: 0px;width: 300px;border: red 1px solid;float: right;'>x</div>
</div>
<div style='margin: 0px; margin-bottom: 5px;width: 100%;border: red 1px solid;/*float: left;*/'>q</div>
答案 0 :(得分:1)
你用什么浏览器制作截图?如果是IE,那么盒子模型存在问题,导致在计算100%宽度时忽略边框宽度。
要么创建一个不可见的容器来调整内部div的大小,要么将内部div的大小设置为container.width -2。
另外,尝试从div中删除 width:100%; 。
答案 1 :(得分:0)
红色边框实际上在图像的蓝色边框内 - 但我想你想增加z和q容器的边距......
我冒昧地用双引号括起属性并纠正重新声明的样式规则(边距和边距底部) - 但是对于行格式化道歉 - 我似乎无法得到这一切都留在这个论坛的代码块内,直到我拿出换行符:
<div style="margin: 5px;width: 653px;border: blue 1px solid;float: left;"><div style="margin: 5px;width: 100%;border: red 1px solid;">z</div><div style="overflow: hidden;margin: 5px;width: 100%;border: red 0px solid;"><div style="margin: 0px;width: 300px;border: red 1px solid;float: left;">y</div><div style="margin: 0px;width: 300px;border: red 1px solid;float: right;">x</div></div><div style="margin: 5px;width: 100%;border: red 1px solid;">q</div>
答案 2 :(得分:0)
对于这种情况,您的设计可能正在运行,但由于您尚未清除和处理浮动元素,因此可以轻松破解。
你可以参考我创造的例子。我为这类问题创造了一个工作小提琴。
http://jsfiddle.net/mayankipsa/e7snvdag/
.floatLeft { float: left;}
.floatRight { float: right;}
.clearBOTH { clear: both; }
.redBorder{border:1px solid red;}
.blueBorder{border:1px solid blue;}
.x,.y{width:49%;margin:1px; }
.z{margin:1px;}
.q{margin:1px;}
<div style='margin: 5px;width: 653px;border: blue 1px solid;float: left;'>
<div style='margin: 0px; margin-bottom: 5px;width: 100%;border: red 1px solid;/*float: left;*/'>z</div>
<div style='overflow: hidden;margin: 0px; margin-bottom: 5px;width: 100%;border: red 0px solid;/*float: left;*/'>
<div style='margin: 0px; margin-bottom: 0px;width: 300px;border: red 1px solid;float: left;'>y</div>
<div style='margin: 0px; margin-bottom: 0px;width: 300px;border: red 1px solid;float: right;'>x</div>
</div>
<div style='margin: 0px; margin-bottom: 5px;width: 100%;border: red 1px solid;/*float: left;*/'>q</div>
</div>
<div class="clearBOTH"></div>
<div class="blueBorder" style="margin-top:50px;">
<div class="z redBorder">z</div>
<div class="redBorder">
<div class="y floatLeft redBorder">y</div>
<div class="x floatRight redBorder">x</div>
<div class="clearBOTH"></div>
</div>
<div class="q redBorder">q</div>
</div>