IEでのテキスト入力のパディング…可能?
-
03-07-2019 - |
質問
検索ボタンが絶対に配置されたテキスト入力があります...ボタンのスペースを確保するために、ボタンの下にテキストが入らないようにするためにパディングを使用しました。 IE。
実際... IEではテキスト入力のパディングがまったく機能していないようです。
次のコードがあります
<style type="text/css">
#mainPageSearch input {
width: 162px;
padding: 2px 20px 2px 2px;
margin: 0;
font-size: 12px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
background:#F3F3F3 url(form-shadow.png) repeat-x scroll left top;
border-color:#C6C6C6 #C6C6C6 #E3E3E3;
border-style:solid;
border-width:1px;
color:#666666;
}
#mainPageSearch {
margin-bottom: 10px;
position: relative; /* Lets me absolute position the button */
}
#mainPageSearchButton {
display: block;
position: absolute;
top:0px;
right: -2px;
text-indent: -2000em;
height: 22px;
width: 22px;
background: transparent url('images/searchBtn.png') top center no-repeat;
}
</style>
<form id="mainPageSearch" action="">
<input type="text"/>
<a id="mainPageSearchButton" href="#">Search</a>
</form>
私がしようとしていることは可能ですか、それとも吸い上げて検索ボタンの下にあるテキストを処理する必要がありますか?
透明な背景/境界線で検索ボックスを作成し、それを含むdivを使用してスタイリングを描画できることはわかっています...サイト。
たぶん、このテキスト入力用の新しいクラスを作成して透明にし、通常のテキスト入力スタイルをdivに割り当てますか?どう思いますか?
編集:申し訳ありませんが、Doctypeを含める必要がありました...ここにあります:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
また、私が抱えている問題はIE 7にあります
解決
line-heightを使用してみてください
他のヒント
この問題が発生し、次の行を追加して解決しました
input
{
overflow:visible;
padding:5px;
}
これが役立つことを願っていますか?お知らせください。
padding-right の代わりに border-right
を試してください。これでうまくいきました。
入力を透明にし、スタイルをコンテナdiv内に配置します:
http://jsfiddle.net/LRWWH/211/
HTML
<div class="input-container">
<input type="text" class="input-transparent" name="fullname">
</div>
CSS
.input-container {
background:red;
overflow:hidden;
height: 26px;
margin-top:3px;
padding:6px 10px 0px;
width: 200px;
}
.input-transparent {
background-color:transparent;
border:none;
overflow:hidden;
color:#FFFFF;
width: 200px;
outline:none;
}
CSSのみの修正があります
div.search input[type="text"] {
width: 110px;
margin: 0;
background-position: 0px -7px;
text-indent:0;
padding:0 15px 0 15px;
}
/*ie9*/ div.search input[type="text"] {
border-left: 25px solid transparent;
}
/*ie8*/ div.search input[type="text"] {
border-left: 25px solid transparent;
background-position-x: -16px;
padding-left: 0px;
line-height: 2.5em;
}
ありがとう ムハンマド・アティフ・チュータイ
パディング/マージンを適用する前に、 '#mainPageSearch input'でfloat:left / rightを使用する必要があります。
同様の問題が発生しました-IEは入力フィールドをパディングしていましたが、大きくしなかったため、テキストをその中に押し込みました。入力の高さも設定して修正しました。それを試してください。
IE7で次の作業をしています。どのバージョンをターゲットにしていますか?
<style type="text/css">
input#test {
padding: 10px;
}
</style>
<input type="text" id="test" />
DOCTYPEの宣言はどうですか?
&lt;!DOCTYPE html&gt;
を追加することにより、IE8でパディングが非常に機能します。例として次のコードを取り上げます。
<!DOCTYPE html>
<html>
<head>
<style>
#myInput {
padding: 10px;
}
</style>
</head>
<body>
<input id="myInput" value="Some text here!" />
</body>
</html>