クライアントから、テキストフィールドのテキストに下線を付けるように要求されました。シングルラインとダブルラインの両方。
これも可能ですか?あいまいなプラグインを想定していますが、まだ見つけていません。:P
可能であれば、2つの可能性があると思いました。
- 実際のフィールドのテキストに下線を引きます。
- テキストフィールドのすぐ下にあるテキストでクレイジーなハックを実行します。
ヘルプや解説をありがとう。^ _ ^
以下は、Chrome 6.0.472.55 / Ubuntu10.04およびFirefox3.6.9(Ubuntu 10.04)で機能します。
input {text-decoration: underline; }
ただし、これは明らかに1つの下線のみを示します。
クイックデモ:jsbin
CSSベースのソリューション、つまりCSSセレクターを使用してテキストに下線を引くことができます。
これを実現する方法の非常に基本的な例を次に示します。
それでも箱から出してそれを行うことはできませんが、少しのSassとJSで行うのはかなり簡単です
<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
}