以產生響應碗狀下劃線其不需要被修飾無關,其在元件上施加了填充的一種方法是使用如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/) –