我非常想复制你在下图中看到的内容。我有三个部分。在第1部分和第2部分(蓝色部分)之间,您可以看到白色箭头框。这就是我可以正确放置的东西,而不会搞砸了。
现在我已经得到了这个"工作"通过将箭头框放在蓝色部分内,然后同时给出箭头框和蓝色部分的绝对位置,然后从顶部给出箭头框一些减去边距。这个问题是,由于某些原因,我不能创建应该在蓝色部分之后的第3部分。如果它的位置是绝对的,我不能在蓝色部分下面放置任何东西。如果我给蓝色部分一个相对位置,事情显然会再次开始正常工作,但随后箭头框就会出现问题:
我的代码看起来像这样,HTML:
<section id="first-section">
<!-- bunch of stuff here -->
</section>
<section id="blue-section">
<div class="arrow_box">
<p>How can I help you?</p>
</div>
</section>
<section id="third-section">
<!-- More stuff here -->
</section>
CSS:
#blue-section {
position: relative;
}
.arrow_box {
position: absolute;
width: 500px;
height: 100px;
left:0;
right:0;
margin-left:auto;
margin-right:auto;
margin-top: -50px;
}
答案 0 :(得分:1)
好的,然后你走了:
<强> HTML 强>
<section class="container" id="first-section">
<!-- bunch of stuff here -->
</section>
<section class="container" id="blue-section">
<div class="arrow_box">
<p>How can I help you?</p>
</div>
<div class="col"> <img src="http://www.andalucesdiario.es/wp-content/uploads/2014/09/tyrion_lannister.jpg" alt="" /> </div>
<div class="col"> <img src="http://www.andalucesdiario.es/wp-content/uploads/2014/09/tyrion_lannister.jpg" alt="" /> </div>
<div class="col"> <img src="http://www.andalucesdiario.es/wp-content/uploads/2014/09/tyrion_lannister.jpg" alt="" /> </div>
</section>
<section class="container" id="third-section">
<!-- More stuff here -->
</section>
<强> CSS:强>
.container{position:relative; background:#ccc; padding:40px; width:100%; height:auto; min-height:100px; text-align:center;}
#blue-section{background:#06c}
.arrow_box{position:absolute; background:#f9f9f9; position:absolute; top:-50px; left:50%; margin-left:-100px; height:100px; width:200px;}
.col{width:30%; padding:1%; display:inline-block;}
.col img{width:200px; height:200px; border-radius:50%;}
正如你所看到的,你没有那么错,你只需要明白绝对定位需要一个相对定位的div才能自己定位。
查看可能的值,以便了解(from Mozilla MDN)
<强>静态强> 此关键字允许元素使用正常行为,即它在流中的当前位置布局。 top,right,bottom,left和z-index属性不适用。
<强>相对强> 这个关键字列出了所有元素,就像元素没有定位一样,然后调整元素的位置,而不改变布局(从而为元素留下了一个空隙,如果它没有被定位)。 position:relative对表的影响 - * - group,table-row,table-column,table-cell和table-caption 元素未定义。
<强>绝对强> 不要为元素留出空间。相反,将其定位在相对于其最近定位的祖先或包含块的指定位置。绝对定位的盒子可以有边距,它们不会与任何其他边缘一起折叠。
<强>固定强> 不要为元素留出空间。而是将其定位在相对于屏幕视口的指定位置,并在滚动时不移动。打印时,将其放在每页的固定位置。
<强>粘性强> 箱位置根据正常流量计算(这称为正常流量中的位置)。然后该框相对于其流根和包含块偏移,并且在所有情况下,包括表格元素,都不会影响任何后续框的位置。当盒B粘贴时,计算下一个盒子的位置,好像B没有偏移。 'position:sticky'对表元素的影响与'position:relative'相同。
如果你在这里,你get a free fiddle
答案 1 :(得分:-2)
<body>
<!-- //take it as example, it may help u, just make the arrows boxed div child of blue div ,
//i ll call upper white section as white as give it white as id, arrow boxed as box,blue as blue
-->
<div id="container">
<div id="upper">
<!--//content of this div;-->
</div>
<div id="blue">
<div id="box" style="position:relative; top:-100px; z-index:10000; margin:0 auto; width:40%;">
<!-- // adjust top attr.-->
</div>
<!--//here blue sectiions content is inside lower part.-->
<div id="lower" style="margin-top:200px">
<!--//try as much u want to space to be below thw box;-->
</div>
</div>
</div>
</body>