我有点惊讶,当我用:after
伪类创建三角形时。为什么把绝对的工作做得很好,但没有定位。看看下面的代码位置相对和绝对差距(三角形)
HTML
<div class="test">
<input type="text" />
<div class="abs">enter your name</div>
</div>
CSS
.test{
position: relative;
}
.abs{
position: absolute;
left: 180px;
top: 0px;
background: red;
width: 300px;
padding: 10px;
}
.abs:after{
position: absolute; // by changing this value to relative
left: -20px;
top: 0px;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
border-right: 20px solid blue;
width: 0;
height: 0;
content: " ";
}
demo with absolute | demo with relative
任何人都可以描述此原因吗?
相对位置与页面的流向保持一致。自然,在文本后面添加的任何内容“输入你的名字”都会显示在那里(例如content:“。”)'输入你的名字。'因此,相对于期限所在的位置,在周期的左侧20个像素的位置(与文本重叠)。绝对定位盒子使其位于距离最近的相对定位的容纳盒(测试)的x,y位置。如果您的输入宽度发生变化,这将是一个问题,因为测试包含您的输入和您的abs。 – RedGlobe