Как центрировать флажок в ячейке таблицы?



клетка не содержит ничего, кроме флажка. Он достаточно широк из-за текста в строке заголовка таблицы. Как мне центрировать флажок (с помощью встроенного CSS в моем HTML? (Я знаю))



пробовал



 <td>
<input type="checkbox" name="myTextEditBox" value="checked"
style="margin-left:auto; margin-right:auto;">
</td>


но это не сработало. Что я делаю не так?





обновление: вот тестовая страница. Может ли кто - нибудь исправить это - с помощью CSS inline в 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>
490   9  

9 ответов:

обновление

Как насчет этого... 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;   
}

Я надеюсь, что это помогает.

попробовать

<td style="text-align:center;">
  <input type="checkbox" name="myTextEditBox" value="checked" />
</td>

попробуйте это, это должно работать,

td input[type="checkbox"] {
    float: left;
    margin: 0 auto;
    width: 100%;
}

Это должно работать, я использую это:

<td align="center"> <input type="checkbox" name="myTextEditBox" value="checked" ></td>

вытащите все ваши встроенные CSS, и перенести его в голову. Тогда использовать классы на ячейках, так что вы можете настроить все, как вам нравится (не используйте имя, как "центр" - вы можете изменить его на левый 6 месяцев с этого момента...). Ответ на выравнивание все тот же-примените его к <td> Не флажок (что бы просто центр вашей проверки : -))

используя ваш код...

<!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>

Если вы не поддерживаете устаревшие браузеры, я бы использовал 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> в каждой строке.

для динамической записи элементов td и не полагаться непосредственно на стиль td

  <td>
     <div style="text-align: center;">
         <input  type="checkbox">
     </div>
  </td>

определите свойство float элемента check для none:

float: none;

и центр родительского элемента:

text-align: center;

Это было единственное, что работает для меня.

убедитесь, что ваш <td> не display: block;

плавучие будет делать это, но гораздо проще просто: display: inline;

Comments

    Ничего не найдено.