像这样的东西:
<span class="outer">
<span class="inner">
<input type="text" value="test value" />
</span>
</span>
.outer {
display: inline-block;
border-bottom: 34px solid #000;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
height: 0px;
}
.inner {
display: inline-block;
margin: 1px -18px -40px -18px;
border-bottom: 32px solid white;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
height: 0px;
}
input
{
background: transparent;
border: none;
display: inline-block;
font-size: 130%;
}
http://jsfiddle.net/fNCt4/4/
输入本身对形状没有贡献。只有这两个跨度。您可以将输入元素本身用于内部形状,但由于无论如何您都需要添加标记,我认为您不妨添加两个“通用”梯形辅助形状并保持输入元素不变。
你需要两个来伪造边界。这是必需的,因为形状本身是通过添加边框创建的,因此可见边框是通过将稍小的形状叠加到另一个上来构建的。
其余的是具有负边距的技巧,以允许将内部形状定位在外部形状的边界之上。当然也可以transparent
用作颜色,以防止内部形状的“负空间”覆盖外部形状。