在<input />框中加下划线

时间:2010-09-10 00:01:05

标签: html double textfield underline

我收到了客户的请求,要求在文本字段中为文本加下划线。 单行和双行。

这甚至可能吗?我假设有一些不起眼的插件,但我还没有找到它。 :P

如果可能的话,我已经考虑过有两种可能性。

  1. 在实际字段中加下划线。
  2. 在文本字段下方对文本进行一些疯狂的黑客攻击。
  3. 感谢您提供任何帮助和/或评论。 ^ _ ^

3 个答案:

答案 0 :(得分:6)

以下适用于Chrome 6.0.472.55 / Ubuntu 10.04和Firefox 3.6.9(也称为Ubuntu 10.04):

input {text-decoration: underline; }

虽然这显然只给出了一个下划线。

快速演示:jsbin

答案 1 :(得分:1)

您可以使用基于CSS的解决方案,即CSS选择器来为文本加下划线。

答案 2 :(得分:0)

这是如何完成此操作的非常基本的示例。

仍然不能立即使用,但是使用一些Sass和JS相当简单

Codepen example

<h1>Underline search input</h1>
<form class="search">
    <label class="inputs">
        <span class="label-tag">Search</span>
        <input placeholder="Search" type="text" value="">
        <span class="search-highlight"></span>
        <span class="search-highlight-second"></span>
    </label>
    <button type="submit"> Search </button>
</form>
form {
    label {
        position: relative;

        .label-tag {
            display: none;
        }

        .search-highlight, .search-highlight-second {
            user-select: none;
            border-top: 1px solid #75d46b;
            position: absolute;
            left: 0;
            bottom: -2px;
            max-width: 100%;
            height: 0;
            color: transparent;
            overflow: hidden;
        }

        .search-highlight-second {
            bottom: -4px;
        }

        input {
            border: none;

            &:focus {
                outline: none;
            }
        }
    }


    button {
        display: block;
        margin-top: 10px;
    }
}
const input = document.querySelector('input');
const highlightEl = document.getElementsByClassName('search-highlight')
const highlightElTwo = document.getElementsByClassName('search-highlight-second')

input.oninput = handleInput;

function handleInput(e) {
    console.log(e.target.value)
    highlightEl[0].innerHTML = e.target.value
    highlightElTwo[0].innerHTML = e.target.value
}