简体   繁体   English

CSS的对角文本框边框样式

[英]Diagonal Textbox border styling by css

Can anybody help me styling a textbox border like in image only by css.I have tried the following css but not working perfectly 任何人都可以帮助我样式化文本框边框,例如仅通过css在图像中。我已经尝试了以下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;
}

文字框样式

This is one possible approach by using a container element around the text box and then adding an absolutely positioned pseudo-element to the container which is rotated along the X-axis with a bit of perspective. 这是一种可能的方法,方法是在文本框周围使用容器元素,然后向容器中添加一个绝对定位的伪元素,该伪元素沿X轴旋转,并带有一些透视图。

Rotating along the X-axis with perspective makes the rectangle look as though it sides are going away from each other as we go from bottom of the rectangle to its top. 沿着X轴旋转并带有透视图,使矩形看起来像从矩形底部到顶部时,矩形的边彼此远离。 The top-border of the pseudo-element is nullified as we don't need it. 伪元素的顶部边界为空,因为我们不需要它。

Whatever width is required for the text-box should be set to the container as both the pseudo-element and the text-box derive their `width (100%) from their container. 无论文本框需要什么width ,都应将其设置为容器,因为伪元素和文本框都从其容器中得出其宽度(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> 


Here is another alternate using multiple backgrounds, linear-gradients and background positioning. 这是另一个使用多个背景,线性渐变和背景定位的方法。 This can also work but in some browsers the angular edges/borders become a bit jagged. 这也可以工作,但在某些浏览器中,棱角边缘/边界变得有些锯齿。

 .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> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM