html - css 对 Angular 线文本框边框样式

标签 html css css-shapes

任何人都可以帮我设计一个像图像中那样的文本框边框样式吗?我已经尝试了以下 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;
}

Textbox Style

最佳答案

这是一种可能的方法,即在文本框周围使用容器元素,然后将绝对定位的伪元素添加到容器中,该容器沿 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/

相关文章:

javascript - 上下文菜单的宽度

html - 尝试使用 HTML 和 CSS 绘制三 Angular 形时出现空白屏幕

javascript - 用于检查 HTML 中的更改的开发工具

Php本地主机重定向到/var/www/html/index.php

html - CSS Puzzle - Classed Link Span 在悬停时不会改变颜色

javascript - 隐藏 HTML 表格中的部分单元格

html - 使用居中文本在 html 中创建椭圆

html - 如何在 CSS 中创建丝带形状

javascript - 如何阻止 HTML 输入字段中的特殊字符?

javascript - 更改提交的表单中的值和 JQuery 序列化函数