【发布时间】:2013-02-05 21:31:38
【问题描述】:
我正在尝试为应用了:hover 和:focus 伪类的搜索框构建一个1px 边框输入字段。问题是边框有 1 个尖边。
是否可以仅在 input 标记上仅使用 CSS 正确执行此操作? (这似乎是应用伪类最直接的途径)。
这是我到目前为止所得到的(虽然 transform 在 Chrome 中不起作用..)http://jsfiddle.net/robbschiller/pxytz/
.search {
width: 30px;
height: 32px;
background: #fff;
border: 1px solid #7d8082;
border-left: 0;
position: relative;
}
.search:before {
content:"";
position: absolute;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
width: 23px;
height: 23px;
border: 1px solid #7d8082;
border-right: 0;
border-top: 0;
right: 63%;
top: 4px;
}
这显然没有考虑悬停和焦点状态,这是问题的一部分。我试图避免使用 :before 伪元素,因为我认为您不能将伪类应用于伪元素?
【问题讨论】:
-
尝试将伪类添加到伪元素中,看看会发生什么。
-
您不能在表单元素(或图像)上使用
:before或:after。 -
我宁愿将其创建为 png/svg 背景并将其包含为 base64。
-
对于
input[type="search"]或文本,您可以使用label使用众所周知的技术创建一个三角形,例如:jsfiddle.net/pxytz/6 但在您编辑后,我发现这不是您的重新尝试实现。由 2 个 1 像素宽的非重复线性渐变组成的背景怎么样?
标签: html css textinput pseudo-element pseudo-class