powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как выровнять по вертикали текст в кнопке?
12 сообщений из 12, страница 1 из 1
Как выровнять по вертикали текст в кнопке?
    #38673868
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!

Проблема в том, что если рядом располагаются 2 кнопки, одна задана через <a>, другая через <button> (или <input type="submit" - неважно), то текст выровненный по центру/вертикали выглядит не на одном уровне! Более сносно выглядет в хроме, в ФФ и ИЕ разъезжается. Что делать? Прочитал весь интернет, пробовал разное, но ничего не получилось!

Вот код кнопки на CSS:
Код: css
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
.button1 {
	display: inline-block;
	outline: none;
	cursor: pointer;

	vertical-align: middle;
	text-align: center;
	box-sizing: content-box;
	-moz-box-sizing: content-box;

	text-decoration: none;
	font: normal bold 12pt Calibri, Helvetica, Arial, sans-serif;
	padding: 0px 5px;
	text-shadow: #faf4c0 1px 1px 0;

	-webkit-border-radius: 5px;
	-moz-border-radius: 5px;
	border-radius: 5px;

	-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.5);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,.5);

	box-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.button1:hover {
	text-decoration: none;
}
.button1:active {
	position: relative;
	top: 1px;
}

.orange1 {
	color: #000000;
	border: solid 1px #000000;
	background: #f9b042;
	background: -webkit-gradient(linear, left top, left bottom, from(#f9b042), to(#ba6d2e));
	background: -moz-linear-gradient(top,  #f9b042,  #ba6d2e);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9b042', endColorstr='#ba6d2e');
}
.orange1:hover {
	background: #ba6d2e;
	background: -webkit-gradient(linear, left top, left bottom, from(#ba6d2e), to(#f9b042));
	background: -moz-linear-gradient(top,  #ba6d2e,  #f9b042);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ba6d2e', endColorstr='#f9b042');
}
.orange1:active {
	color: rgba(0,0,0,.6);
	background: -webkit-gradient(linear, left top, left bottom, from(#ba6d2e), to(#f9b042));
	background: -moz-linear-gradient(top,  #ba6d2e,  #f9b042);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ba6d2e', endColorstr='#f9b042');
}



и код на html:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
      <tr>
        <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
              <tr>
                <td width="10"></td>
                <td align="left"><?php echo '<a class="button1 orange1" style="width:70px; height:24px;"  href="' . tep_href_link(FILENAME_LOGIN, '', 'SSL') . '">' .  'back' . '</a>'; ?></td>
                <td align="right"><?php echo '<button type="submit" class="button1 orange1" style="width:70px; height:24px;">continue</button>'; ?></td>
                <td width="10"></td>
              </tr>
        </table></td>
      </tr>
...



Вот как оно выглядит в ФФ (см. аттач.).
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38673890
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser79,

1. удалить все margin. padding
2. выставить одинаковый размер шрифта и высоту строки.
3. выставить одинаковый vertical-align

После этого надписи должны расположиться на одной линии.

Если этого не произошло, накрайняк подкорректировать padding для кнопок отдельно (button.button1{...})
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38673920
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Програмёрser79,

1. удалить все margin. padding
2. выставить одинаковый размер шрифта и высоту строки.
3. выставить одинаковый vertical-align

После этого надписи должны расположиться на одной линии.

padding убрал. margin не было.
Добавил в css line-height: 24px;
vertical-align итак стоит миддл.
Всё равно криво.

авторподкорректировать padding для кнопок отдельно (button.button1{...})
Опять же в разных браузерах отобразиться по разному. Оно не критично, если кнопки располагаются не рядом.
А если рядом... то сразу видно дисгармонию!
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38673941
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем добавил в css строчку line-height: 24px;
Во всех остальных браузерах всё хорошо, по центру. Тестировал в Опере, ИЕ, Хроме, Сафари.

А вот в ФФ всё никак не лечиться!
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38673983
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser79,
так пойдет?
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<style>
.GradCmd {
	background:-moz-linear-gradient(top, #FDFDFD, #D1D1D1);
	background:-webkit-linear-gradient(top, #FDFDFD, #D1D1D1);
	background:linear-gradient(top, #FDFDFD, #D1D1D1);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FDFDFD', EndColorStr='#D1D1D1');
	background:-ms-linear-gradient(top, #FDFDFD, #D1D1D1);
	width:70px;
	height:20px;
	border:1px solid #999;
	padding:1px;
	float:left;
	border-radius:5px;
	font:10pt/20px sans-serif;
	text-align:center;
	cursor:pointer;
	margin:3px;
}
.GradCmd:active {
	padding:2px 0 0 2px;
}
</style>
<body>
	<div class="GradCmd">Back</div>	<div class="GradCmd">Continue</div>
</body>
</html>

...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674676
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89,

В вашем примере не выводится через <a> и <button>, а просто текст в ДИВе.
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674684
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser79,

Как вариант, насколько помню в файрфоксе в средствах отладки (уж где они не помню, пользовался раза 2 и то с пол года назад) есть так же как и в хроме применённые к элементу стили (часть из которых генерирует сам браузер). На крайняк можно сравнить их, и разобраться в чём там дело. Какие-то позиционирующие явно должны отличаться. Так что отладчик в руки и ... :)
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674698
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser79user89,
В вашем примере не выводится через <a> и <button>, а просто текст в ДИВе.Я button давно не использую.
У DIV можно сделать любой внешний вид, в событии OnClick - любые операции, например проверка на значения, и если всё ОК, то submit на сервер. Для визуальной имитации щелчка используем псевдокласс :active
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674714
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89,

Решение хорошее. Код на JS не подскажете? А то я не силён!
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674733
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ser79,
Сразу нажмите на DIV, имитирующий кнопку
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<!DOCTYPE html>
<html>
<style>
.GradCmd {
	background:-moz-linear-gradient(top, #FDFDFD, #D1D1D1);
	background:-webkit-linear-gradient(top, #FDFDFD, #D1D1D1);
	background:linear-gradient(top, #FDFDFD, #D1D1D1);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorStr='#FDFDFD', EndColorStr='#D1D1D1');
	background:-ms-linear-gradient(top, #FDFDFD, #D1D1D1);
	width:70px;
	height:20px;
	border:1px solid #999;
	padding:1px;
	float:left;
	border-radius:5px;
	font:10pt/20px sans-serif;
	text-align:center;
	cursor:pointer;
	margin:3px;
}
.GradCmd:active {
	padding:2px 0 0 2px;
}
</style>
<body>
 <form id="myform" onsubmit="return false;">
  <table>
  <tr>
    <td> <label for="Edit1">ФИО</label> </td>
    <td> <input id="Edit1" name="Edit1" type=text placeholder="введите ФИО" required> </td>
    <td> <span id="txtError"></span> </td>
  </tr>
  <tr>
    <td colspan=3 align=center> <div class="GradCmd" onclick="validate()">Continue</div>  </td>
  </tr>
  </table>
</form>

<script type='text/javascript'>
  function validate() {
	  elem = document.getElementById('txtError');
    if (document.getElementById('Edit1').value.length > 0) {
      elem.innerHTML = 'Правильно!';
      elem.style['color'] = 'green';
			alert('Данные проверены. Можно отправлять на сервер');
      document.getElementById('myform').submit();
    }
    else {
      elem.innerHTML = 'Не правильно!';
      elem.style['color'] = 'red';
    }
  }
</script>
</body>
</html>

...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674889
st_st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В FF 3 помню баг был с выравниванием внутри кнопок, но должны были починить, столько лет прошло, пример .
...
Рейтинг: 0 / 0
Как выровнять по вертикали текст в кнопке?
    #38674912
ser79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st_st,

баг видимо ещё не исправили, но пример помог! Спасибо!!!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как выровнять по вертикали текст в кнопке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]