任何人都可以帮我设计一个像图像中那样的文本框边框样式吗?我已经尝试了以下 css,但效果不佳
.addfolder-input {
border: medium none;
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin-bottom: 20px;
width: 100%;
padding: 0 10px;
border-top: 0;
border-right: 0;
border-bottom: solid 2px #3c5a9a;
border-left: 0;
border-radius:5px;
}
最佳答案
这是一种可能的方法,即在文本框周围使用容器元素,然后将绝对定位的伪元素添加到容器中,该容器沿 X 轴旋转并带有一点透视。
当我们从矩形的底部到顶部时,沿 X 轴旋转使得矩形看起来好像它的边彼此远离。伪元素的上边框被取消,因为我们不需要它。
无论文本框需要什么宽度
,都应该设置为容器,因为伪元素和文本框都从其容器中派生出它们的“宽度 (100%)”。
.addfolder-input {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin-bottom: 20px;
width: 100%;
padding: 0 10px;
border: none;
outline: none;
}
.container {
position: relative;
width: 100px;
}
.container:after {
position: absolute;
content: '';
bottom: 48%;
left: 6px;
width: 100%;
height: 6px;
border: 2px solid #3c5a9a;
border-top: none;
-webkit-transform: perspective(10px) rotateX(-10deg);
-moz-transform: perspective(10px) rotateX(-10deg);
transform: perspective(10px) rotateX(-10deg);
}
<div class="container">
<input type="text" class="addfolder-input" value="Type Something..."/>
</div>
这是使用多个背景、线性渐变和背景定位的另一个替代方案。这也可以工作,但在某些浏览器中, Angular 边缘/边框会变得有点锯齿状。
.addfolder-input {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin-bottom: 20px;
width: 85%;
padding: 0 10px;
border: none;
outline: none;
position: relative;
left: 6px;
}
.container {
position: relative;
width: 120px;
}
.container:after {
position: absolute;
content: '';
bottom: 48%;
left: 6px;
width: 100%;
height: 6px;
background: -webkit-linear-gradient(45deg, transparent 9%, #3c5a9a 9%, #3c5a9a 12%, transparent 12%), -webkit-linear-gradient(-45deg, transparent 9%, #3c5a9a 9%, #3c5a9a 12%, transparent 12%), -webkit-linear-gradient(0deg, transparent 9%, #3c5a9a 9%, #3c5a9a 95%, transparent 11%) no-repeat;
background: -moz-linear-gradient(45deg, transparent 9%, #3c5a9a 9%, #3c5a9a 12%, transparent 12%), -moz-linear-gradient(-45deg, transparent 3%, #3c5a9a 3%, #3c5a9a 6%, transparent 6%), -moz-linear-gradient(90deg, transparent 9%, #3c5a9a 9%, #3c5a9a 86%, transparent 86%) no-repeat;
background: linear-gradient(45deg, transparent 9%, #3c5a9a 9%, #3c5a9a 12%, transparent 12%), linear-gradient(-45deg, transparent 3%, #3c5a9a 3%, #3c5a9a 6%, transparent 6%), linear-gradient(90deg, transparent 9%, #3c5a9a 9%, #3c5a9a 86%, transparent 86%) no-repeat;
background-position: 0px 6px, 107px 6px, 0px 4px;
}
<div class="container">
<input type="text" class="addfolder-input" value="Type Something..." />
</div>
关于html - css 对 Angular 线文本框边框样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28359595/