以产生响应碗状下划线其不需要被修饰无关,其在元件上施加了填充的一种方法是使用如linear-gradient
背景图像。它们可以以像素值给出background-size
,并位于元素的底部。
的做法本身是相当简单:
- 我们用1像素的
border-bottom
的厚度产生底部边框。
- 一个红色为2px且其余为透明的线性渐变添加到该元素并位于该元素的底部。
background-size
设置确定左右边界的高度。在代码片段中,我将背景大小设置为100% 5px
,因此5px将是左右边框的固定高度。仅通过单独修改这个参数就可以减少它们的高度。
- 设置
background-repeat
以便背景图像在x轴上重复,并为background-position
设置1px的负偏移量,我们确保第一个渐变图块的红色边框的1px显示在左侧。由于我们有repeat-x并且背景大小仅为100%,因此x轴上的第二个图块将从右侧的结束之前的1px开始,因此这会在右侧生成1px边框。
注意:在浏览器支持方面,Box shadow在这种方法上具有优势。这只是IE10 +。
input {
background-color: transparent;
height: 20px;
width: 300px;
padding:10px 5px;
border: 0;
border-bottom: 1px solid red;
background-image: linear-gradient(to right, red 2px, transparent 2px);
background-repeat: repeat-x;
background-size: 100% 10px;
background-position: -1px 100%;
}
input:nth-child(2) {
padding: 0 5px;
}
input:nth-child(3) {
padding: 10px 10px 1px;
}
input:nth-child(4) {
height: 20px;
padding: 10px 10px 1px;
}
<!-- prefix free library is optional and is only to avoid browser prefixing -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<input type="text" placeholder="Example">
<br/>
<input type="text" placeholder="Example2">
<br/>
<input type="text" placeholder="Example3">
<br/>
<input type="text" placeholder="Example4">
是否有可能改变行'1px'的宽度是多少?另外,当我在填充的输入上使用它时,边上的线会变得太长。有可能给这些固定的高度吗? –
@Duncan您需要调整盒子阴影的扩展半径和Y偏移量,以使左右线达到所需的高度。不幸的是,它们的高度将根据输入的高度而改变。我会再举一个例子。 –
[我的意思是一个例子](https://jsfiddle.net/38f5ygpe/1/) –