Как центрировать флажок в ячейке таблицы?
Ячейка содержит только флажок. Он довольно широкий из-за текста в строке заголовка таблицы. Как мне установить флажок (с встроенным CSS в мой HTML? (Я знаю))
Я пробовал
<td>
<input type="checkbox" name="myTextEditBox" value="checked"
style="margin-left:auto; margin-right:auto;">
</td>
но это не сработало. Что я делаю не так?
Обновление: здесь тестовая страница. Может кто-то исправить это - с CSS встроенным в HTML - чтобы флажки были центрированы в своих столбцах?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Alignment test</title>
</head>
<body>
<table style="empty-cells:hide; margin-left:auto; margin-right:auto;" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>Search?</th><th>Field</th><th colspan="2">Search criteria</th><th>Include in report?<br></th>
</tr>
<tr>
<td>
<input type="checkbox" name="query_myTextEditBox" style="text-align:center; vertical-align: middle;">
</td>
<td>
myTextEditBox
</td>
<td>
<select size ="1" name="myTextEditBox_compare_operator">
<option value="=">equals</option>
<option value="<>">does not equal</option>
</select>
</td>
<td>
<input type="text" name="myTextEditBox_compare_value">
</td>
<td>
<input type="checkbox" name="report_myTextEditBox" value="checked" style="text-align:center; vertical-align: middle;">
</td>
</tr>
</table>
</body>
</html>
Я принял ответ @Hristo - и вот он со встроенным форматированием...
<table style="empty-cells:hide;" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>Search?</th><th>Field</th><th colspan="2">Search criteria</th><th>Include in report?<br></th>
</tr>
<tr>
<td style="text-align: center; vertical-align: middle;">
<input type="checkbox" name="query_myTextEditBox">
</td>
<td>
myTextEditBox
</td>
<td>
<select size ="1" name="myTextEditBox_compare_operator">
<option value="=">equals</option>
<option value="<>">does not equal</option>
</select>
</td>
<td>
<input type="text" name="myTextEditBox_compare_value">
</td>
<td style="text-align: center; vertical-align: middle;">
<input type="checkbox" name="report_myTextEditBox" value="checked">
</td>
</tr>
</table>
Ответы
Ответ 1
UPDATE
Как насчет этого... http://jsfiddle.net/gSaPb/
Посмотрите мой пример на jsFiddle: http://jsfiddle.net/QzPGu/
HTML
<table>
<tr>
<td>
<input type="checkbox" name="myTextEditBox" value="checked" /> checkbox
</td>
</tr>
</table>
CSS
td {
text-align: center; /* center checkbox horizontally */
vertical-align: middle; /* center checkbox vertically */
}
table {
border: 1px solid;
width: 200px;
}
tr {
height: 80px;
}
Надеюсь, это поможет.
Ответ 2
Try
<td style="text-align:center;">
<input type="checkbox" name="myTextEditBox" value="checked" />
</td>
Ответ 3
Попробуйте это, это должно работать,
td input[type="checkbox"] {
float: left;
margin: 0 auto;
width: 100%;
}
Ответ 4
Это должно работать, я использую это:
<td align="center"> <input type="checkbox" name="myTextEditBox" value="checked" ></td>
Ответ 5
Вытащите ВСЕ встроенный CSS и переместите его в голову. Затем используйте классы на ячейках, чтобы вы могли настраивать все по своему усмотрению (не используйте такое имя, как "center" - вы можете изменить его на 6 месяцев). Ответ выравнивания по-прежнему остается прежним - примените его к флажку <td>
NOT (который будет просто центрировать вашу проверку:-))
Использование кода...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Alignment test</title>
<style>
table { margin:10px auto; border-collapse:collapse; border:1px solid gray; }
td,th { border:1px solid gray; text-align:left; padding:20px; }
td.opt1 { text-align:center; vertical-align:middle; }
td.opt2 { text-align:right; }
</style>
</head>
<body>
<table>
<tr>
<th>Search?</th><th>Field</th><th colspan="2">Search criteria</th><th>Include in report?<br></th>
</tr>
<tr>
<td class="opt1"><input type="checkbox" name="query_myTextEditBox"></td>
<td>
myTextEditBox
</td>
<td>
<select size ="1" name="myTextEditBox_compare_operator">
<option value="=">equals</option>
<option value="<>">does not equal</option>
</select>
</td>
<td><input type="text" name="myTextEditBox_compare_value"></td>
<td class="opt2">
<input type="checkbox" name="report_myTextEditBox" value="checked">
</td>
</tr>
</table>
</body>
</html>
Ответ 6
Если вы не поддерживаете устаревшие браузеры, я бы использовал flexbox
, потому что он хорошо поддерживается и просто решит большинство ваших проблем с макетами.
#table-id td:nth-child(1) {
/* nth-child(1) is the first column, change to fit your needs */
display: flex;
justify-content: center;
}
Это центрирует все содержимое в первой <td>
каждой строки.
Ответ 7
Для динамической записи элементов td и не полагаться непосредственно на стиль td
<td>
<div style="text-align: center;">
<input type="checkbox">
</div>
</td>
Ответ 8
Определите свойство float элемента check none:
float: none;
И центрируйте родительский элемент:
text-align: center;
Это единственное, что работает для меня.
Ответ 9
Убедитесь, что ваш <td>
не display: block;
Плавающий будет делать это, но гораздо проще: display: inline;