верстка, позиционирование курсора в input text

EW
На сайте с 21.10.2009
Offline
3
7114

при верстке - задал фон(картинку) для элемента "input type=text", изменил высоту элемента. проблема - мигающий курсор для ввода текста в опере отображается не в позиции x-0, y-0, а по средней линии (см. рисунок). все бордеры и марджины и паддинги равны нулю, также пробовал vertical-align менять - не помогает.

Opera - 9.64

Firefox - 3.5.3

html-код:


<div class="hsearch">
<input type="text" />
</div>

css:


.hsearch {
margin: 0 0 0 0;
padding: 0 0 0 0;
width: 350px;
height: 40px;
float: left;
}

.hsearch input[type="text"] {
background: top left url(img/hsearch.png) no-repeat;
margin: 0 0 0 0;
padding: 0 0 0 0;
border: none;
height: 30px;
width: 208px;
line-height: 16px;
}

вопрос: Как позицианировать этот курсор в верхнюю левую точку в Опере?

jpg 45676.jpg
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#1

Проще фоновый рисунок делать для внешнего блока, а уже внутри этого блока позиционировать input с точностью до пикселя.

Dimid
На сайте с 03.12.2006
Offline
74
#2

кстати сам совсем недавно пытался решить данную проблему. решений не нашёл (

попробуйте как посоветовал Алексей Барыкин

EW
На сайте с 21.10.2009
Offline
3
#3

Вначале так и сделал, но потом решил, что логичнее и правильнее будет сделать фон у input'а. Неужели нет решения?? Посмотрел все стили у inputa - как его видит опера и фф, все стили касающиеся позицианирования - совпадают! Странный какойто эффект, неужели недаработка оперы?

L
На сайте с 08.10.2009
Offline
1
#4
Проще фоновый рисунок делать для внешнего блока, а уже внутри этого блока позиционировать input с точностью до пикселя.

+1 IMHO лучший вариант в данной ситуации

Time Zone: +6 GTM вёрстка от $15 (/ru/forum/406881)
Varkolak
На сайте с 03.06.2005
Offline
174
#5

Верстаю уже довольно давно!

Могу сказать 100%, что в input ставить фон - плохая затея ибо как не крути, в каждом браузере отображается по разному, а отступы вообще лучше не делать.

Так что самый лучший и правильный способ посоветовал Алексей Барыкин, в div запихать, для input прописать border:none; background:none;, стили для текста и будет все красиво.

html/css/js верстка и разработка сайтов на hostcms (хостцмс) - skype: varkolak1, тел: 89675012935, e-mail: anton.yurzanov@gmail.com
T.R.O.N
На сайте с 18.05.2004
Offline
314
#6
eEqzWOw8ov4KWCcMts7Y:
Вначале так и сделал, но потом решил, что логичнее и правильнее будет сделать фон у input'а.

Всегда логичнее разделять мух и печенье. Тем более, в Вашем случае, див все равно есть. Зачем гемороится с конкретным частным случаем????

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
H
На сайте с 27.04.2008
Offline
12
#7

Да, 1,5 часа пытался сделать кросс-браузерную верстку с инпутом и формой. Задолбался:

<?php

$ua_ie = false;

$ua_opera = false;

$ua_firefox = false;

$ua_chrome = false;

$ua_str = $_SERVER['HTTP_USER_AGENT'];

if (strstr ($ua_str, 'MSIE')) {

$ua_ie = true;

}

if (strstr ($ua_str, 'Opera')) {

$ua_opera = true;

}

if (strstr ($ua_str, 'Firefox')) {

$ua_firefox = true;

}

if (strstr ($ua_str, 'Chrome')) {

$ua_chrome = true;

}

?>

<?

if ($ua_ie) {

?>

<link rel="stylesheet" href="/input_ie.css" type="text/css" />

<?

} else if ($ua_opera) {

?>

<link rel="stylesheet" href="/input_opera.css" type="text/css" />

<?

} else if ($ua_chrome) {

?>

<link rel="stylesheet" href="/input_chrome.css" type="text/css" />

<?

} else {

?>

<link rel="stylesheet" href="/input.css" type="text/css" />

<?

}

?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий