Ustawić cellpadding i cellspacing w CSS?

W tabeli HTML, cellpadding i cellspacing można ustawić tak:

<table cellspacing="1" cellpadding="1">

Jak to samo można osiągnąć za pomocą CSS?

Author: lat94, 2008-12-04

29 answers

Podstawy

Do kontrolowania "cellpadding" w CSS, możesz po prostu użyć padding na komórkach tabeli. Np. dla 10px "cellpadding":

td { 
    padding: 10px;
}

Dla" cellspacing", możesz zastosować właściwość border-spacing CSS do swojej tabeli. Np. dla 10px "cellspacing":

table { 
    border-spacing: 10px;
    border-collapse: separate;
}

Ta właściwość pozwoli nawet na oddzielenie poziomego i pionowego odstępu, czego nie można zrobić ze starym "cellspacingiem".

Problemy w IE ≤ 7

To zadziała w prawie wszystkie popularne przeglądarki z wyjątkiem Internet Explorer przez Internet Explorer 7, gdzie masz prawie pecha. Mówię "prawie", ponieważ te przeglądarki nadal obsługują właściwość border-collapse, która łączy granice sąsiednich komórek tabeli. Jeśli próbujesz wyeliminować odstępy między komórkami (tj. cellspacing="0"), border-collapse:collapse powinien mieć taki sam efekt: brak spacji między komórkami tabeli. Ta obsługa jest jednak błędna, ponieważ nie nadpisuje istniejącego atrybutu cellspacing HTML w elemencie table.

W skrócie: dla przeglądarek innych niż Internet Explorer 5-7, border-spacing obsługuje Ciebie. Dla Internet Explorera, jeśli Twoja sytuacja jest odpowiednia (chcesz mieć 0 cellspacing, a twoja tabela nie ma jeszcze zdefiniowanej), możesz użyć border-collapse:collapse.

table { 
    border-spacing: 0;
    border-collapse: collapse;
}

Uwaga: Aby uzyskać świetny przegląd właściwości CSS, które można zastosować do tabel i dla których przeglądarek, zobacz tę stronę fantastic Quirksmode .

 3674
Author: Eric Nguyen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-25 02:28:00

Default

Domyślne zachowanie przeglądarki jest równoważne:

table {border-collapse: collapse;}
td    {padding: 0px;}

         Tutaj wpisz opis obrazka

Ustawia ilość przestrzeni między zawartością komórki a ścianą komórkową

table {border-collapse: collapse;}
td    {padding: 6px;}

        Tutaj wpisz opis obrazka

Cellspacing

Kontroluje przestrzeń między komórkami tabeli

table {border-spacing: 2px;}
td    {padding: 0px;}

        Tutaj wpisz opis obrazka

Obie

table {border-spacing: 2px;}
td    {padding: 6px;}

        Tutaj wpisz opis obrazka

Obie (special)

table {border-spacing: 8px 2px;}
td    {padding: 6px;}

        Tutaj wpisz opis obrazka

Uwaga: jeśli istnieje border-spacing, oznacza to, że border-collapse właściwością tabeli jest separate.

Spróbuj sam!

Tutaj można znaleźć Stary HTML sposób osiągnięcia tego.

 971
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 09:57:28
table
{
    border-collapse: collapse; /* 'cellspacing' equivalent */
}

table td, table th
{
    padding: 0; /* 'cellpadding' equivalent */
}
 352
Author: Pup,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-23 20:46:23

Ustawianie marginesów na komórkach tabeli tak naprawdę nie ma żadnego wpływu, o ile wiem. Prawdziwym odpowiednikiem CSS dla cellspacing jest border-spacing - ale nie działa on w Internet Explorerze.

Możesz użyć border-collapse: collapse, aby niezawodnie ustawić odstępy między komórkami na 0, jak wspomniano, ale dla każdej innej wartości myślę, że jedynym sposobem między przeglądarkami jest używanie atrybutu cellspacing.

 118
Author: Will Prescott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-02 20:34:03

Ten hack działa dla Internet Explorer 6 i nowszych, Google Chrome , Firefox iOpera :

table {
    border-collapse: separate;
    border-spacing: 10px; /* cellspacing */
    *border-collapse: expression('separate', cellSpacing = '10px');
}

table td, table th {
    padding: 10px; /* cellpadding */
}

Deklaracja * jest przeznaczona dla Internet Explorera 6 i 7, a inne przeglądarki poprawnie ją zignorują.

expression('separate', cellSpacing = '10px') zwraca 'separate', ale obie polecenia są uruchomione, ponieważ w JavaScript można przekazać więcej argumentów niż oczekiwano i wszystkie z nich zostaną ocenione.

 104
Author: Vitalii Fedorenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 17:17:02

Dla tych, którzy chcą mieć niezerową wartość cellspacing, następujący CSS działał dla mnie, ale jestem w stanie przetestować go tylko w Firefoksie.

Zobacz Quirksmode link opublikowany gdzie indziej aby uzyskać szczegóły zgodności. Wydaje się, że może nie działać ze starszymi wersjami Internet Explorera.

table {
    border-collapse: separate;
    border-spacing: 2px;
}
 72
Author: Malvineous,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 09:55:41

Proste rozwiązanie tego problemu to:

table
{
    border: 1px solid #000000;
    border-collapse: collapse;
    border-spacing: 0px;
}
table td
{
    padding: 8px 8px;
}
 55
Author: George Filippakos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-23 20:45:19

Ponadto, jeśli chcesz cellspacing="0", nie zapomnij dodać border-collapse: collapse do swojego arkusza stylów table.

 51
Author: mat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-04 09:06:50

Owiń zawartość komórki div I możesz zrobić wszystko, co chcesz, ale musisz owinąć każdą komórkę w kolumnę, aby uzyskać jednolity efekt. Na przykład, aby po prostu uzyskać szerszy lewy i prawy margines:

Więc CSS będzie,

div.cellwidener {
  margin: 0px 15px 0px 15px;
}
td.tight {
  padding: 0px;
}
<table border="0">
  <tr>
    <td class="tight">
      <div class="cellwidener">My content</div>
    </td>
  </tr>
</table>
Tak, to kłopot. Tak, działa z Internet Explorerem. W rzeczywistości, testowałem to tylko z Internet Explorer, ponieważ to wszystko, co możemy używać w pracy.
 44
Author: Robert White,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 09:58:32

Wystarczy użyć border-collapse: collapse do stołu, a padding do th lub td.

 24
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:00:17

Ten styl jest dla pełnego resetowania tabel - cellpadding, cellspacing i obramowania.

Miałem taki styl w resecie.plik css:
table{
    border:0;          /* Replace border */
    border-spacing: 0px; /* Replace cellspacing */
    border-collapse: collapse; /* Patch for Internet Explorer 6 and Internet Explorer 7 */
}
table td{
    padding: 0px; /* Replace cellpadding */
}
 22
Author: Elad Shechter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:01:10

TBH. Dla wszystkich fanów z CSS można równie dobrze po prostu użyć cellpadding="0" cellspacing="0" ponieważ nie są przestarzałe...

Ktoś inny sugerujący marginesy na <td>'S oczywiście nie próbował tego.

 20
Author: corrector,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-15 23:54:28
table th,td {
    padding: 8px 2px;
}
table {
    border-collapse: separate;
    border-spacing: 2px;
}
 18
Author: Abhishek Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-30 10:26:02

Po prostu Użyj reguł wypełniania CSS z danymi tabeli:

td { 
    padding: 20px;
}

I dla odstępów granicznych:

table { 
    border-spacing: 1px;
    border-collapse: collapse;
}

jednak może powodować problemy w starszych wersjach przeglądarek, takich jak Internet Explorer, ze względu na implementację diff modelu pudełkowego.

 17
Author: suraj rawat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-02 20:32:43

Z tego co rozumiem z klasyfikacji W3C wynika, że <table> S są przeznaczone do wyświetlania danych "tylko".

W oparciu o to stwierdziłem, że łatwiej jest stworzyć {[1] } z tłem i tym wszystkim i mieć tabelę z danymi unoszącymi się nad nią za pomocą position: absolute; i background: transparent;...

Działa na przeglądarkach Chrome, Internet Explorer (6 i nowszych) oraz Mozilla Firefox (2 i nowszych).

Marginesy są używane (lub w ogóle) do tworzenia odstępów między elementami kontenera, np. <table>, <div> i <form>, nie <tr>, <td>, <span> lub <input>. Używanie go do innych elementów niż kontenery sprawi, że Twoja witryna będzie zajęta dostosowywaniem się do przyszłych aktualizacji przeglądarki.

 15
Author: RolanDecoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 09:59:38

CSS:

selector{
    padding:0 0 10px 0; // Top left bottom right 
}
 13
Author: suraj rawat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-02 20:31:53

Możesz łatwo ustawić padding wewnątrz komórek tabeli za pomocą właściwości CSS padding. Jest to poprawny sposób na uzyskanie takiego samego efektu jak atrybut cellpadding tabeli.

table,
th,
td {
  border: 1px solid #666;
}

table th,
table td {
  padding: 10px;
  /* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>

  <meta charset="utf-8">
  <title>Set Cellpadding in CSS</title>

</head>

<body>

  <table>
    <thead>
      <tr>
        <th>Row</th>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>Clark</td>
        <td>Kent</td>
        <td>[email protected]</td>
      </tr>
      <tr>
        <td>2</td>
        <td>Peter</td>
        <td>Parker</td>
        <td>[email protected]</td>
      </tr>
      <tr>
        <td>3</td>
        <td>John</td>
        <td>Rambo</td>
        <td>[email protected]</td>
      </tr>
    </tbody>
  </table>

</body>
</html>

Podobnie można użyć właściwości CSS border-spacing, aby zastosować odstępy między sąsiadującymi obramowaniami komórek tabeli, jak atrybut cellspacing. Jednak w celu pracy z odstępami granicznymi wartość właściwości border-collapse musi być oddzielna, co jest default.

table {
  border-collapse: separate;
  border-spacing: 10px;
  /* Apply cell spacing */
}

table,
th,
td {
  border: 1px solid #666;
}

table th,
table td {
  padding: 5px;
  /* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>

  <meta charset="utf-8">
  <title>Set Cellspacing in CSS</title>

</head>

<body>

  <table>
    <thead>
      <tr>
        <th>Row</th>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Email</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>Clark</td>
        <td>Kent</td>
        <td>[email protected]</td>
      </tr>
      <tr>
        <td>2</td>
        <td>Peter</td>
        <td>Parker</td>
        <td>[email protected]</td>
      </tr>
      <tr>
        <td>3</td>
        <td>John</td>
        <td>Rambo</td>
        <td>[email protected]</td>
      </tr>
    </tbody>
  </table>

</body>
</html>
 12
Author: Rafiqul Islam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:09:51

Spróbuj tego:

table {
    border-collapse: separate;
    border-spacing: 10px;
}
table td, table th {
    padding: 10px;
}

Lub spróbuj tego:

table {
    border-collapse: collapse;
}
table td, table th {
    padding: 10px;
}
 11
Author: Falguni Panchal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 17:17:51

Użyłem !important po obramowaniu-zwiń jak

border-collapse: collapse !important;

I u mnie działa w IE7. Wydaje się, że nadpisuje atrybut cellspacing.

 9
Author: Håkan Nilsson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-29 17:17:42
<table>
    <tr>
        <th>Col 1</th>
        <th>Col 2</th>
        <th>Col 3</th>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
    </tr>
</table>

cell-padding może być podana przez padding w CSS, podczas gdy {[4] } może być ustawiona przez ustawienie border-spacing dla tabeli.

table {
    border-spacing: 10px;
}
td {
    padding: 10px;
}

Fiddle .

 8
Author: Super User,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-11 08:37:21
td {
    padding: npx; /* For cellpadding */
    margin: npx; /* For cellspacing */
    border-collapse: collapse; /* For showing borders in a better shape. */
}

Jeśli margin nie zadziałało, spróbuj ustawić display z tr na block, a wtedy margines zadziała.

 6
Author: Majid Sadr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:02:26

Dla tabel, cellspacing i cellpadding są przestarzałe w HTML 5.

Teraz dla cellspacing musisz użyć border-spacing. A do cellpaddingu trzeba użyć border-collapse.

I upewnij się, że nie używasz tego w kodzie HTML5. Zawsze spróbuj użyć tych wartości w pliku CSS 3.

 5
Author: Pushp Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:06:07
table {
    border-spacing: 4px; 
    color: #000; 
    background: #ccc; 
}
td {
    padding-left: 4px;
}
 5
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:07:05

W tabeli HTML, cellpadding i cellspacing można ustawić tak:

Dla cell-padding :

Po Prostu zadzwoń do simple td/th cell padding.

Przykład:

/******Call-Padding**********/

table {
    border-collapse: collapse;
}

td {
  border: 1px solid red;
  padding: 10px;
}
<table>
        <tr>
            <th>Head1 </th>
            <th>Head2 </th>
            <th>Head3 </th>
            <th>Head4 </th>
        </tr>
        <tr>
            <td>11</td>
            <td>12</td>
            <td>13</td>
            <td>14</td>
        </tr>
        <tr>
            <td>21</td>
            <td>22</td>
            <td>23</td>
            <td>24</td>
        </tr>
        <tr>
            <td>31</td>
            <td>32</td>
            <td>33</td>
            <td>34</td>
        </tr>
        <tr>
            <td>41</td>
            <td>42</td>
            <td>43</td>
            <td>44</td>
        </tr>
    </table>
table {
    border-collapse: collapse;
}

td {
  border: 1px solid red;
  padding: 10px;
}

Dla rozstaw komórek

Po Prostu zadzwoń prosto table border-spacing

Przykład:

/********* Cell-Spacing   ********/
table {
    border-spacing: 10px;
    border-collapse: separate;
}

td {
  border: 1px solid red;
}
<table>
        <tr>
            <th>Head1</th>
            <th>Head2</th>
            <th>Head3</th>
            <th>Head4</th>
        </tr>
        <tr>
            <td>11</td>
            <td>12</td>
            <td>13</td>
            <td>14</td>
        </tr>
        <tr>
            <td>21</td>
            <td>22</td>
            <td>23</td>
            <td>24</td>
        </tr>
        <tr>
            <td>31</td>
            <td>32</td>
            <td>33</td>
            <td>34</td>
        </tr>
        <tr>
            <td>41</td>
            <td>42</td>
            <td>43</td>
            <td>44</td>
        </tr>
    </table>
/********* Cell-Spacing   ********/
table {
    border-spacing: 10px;
    border-collapse: separate;
}

td {
  border: 1px solid red;
}

More table style by CSS source link tutaj dostaniesz więcej table style by CSS .

 5
Author: MD Ashik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-07 10:08:39

Możesz po prostu zrobić coś takiego w swoim CSS, używając border-spacing i padding:

table {
  border-collapse: collapse;
}

td, th {
  padding: 1em;
  border: 1px solid blue;
}
<table>
  <tr>
    <th>head_1</th>
    <th>head_2</th>
    <th>head_3</th>
    <th>head_4</th>
  </tr>
  <tr>
    <td>txt_1</td>
    <td>txt_2</td>
    <td>txt_3</td>
    <td>txt_4</td>
  </tr>
</table>
 3
Author: Alireza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 08:49:58

Możesz sprawdzić poniższy kod po prostu utwórz index.html i uruchom go.

<!DOCTYPE html>
<html>

<head>
  <style>
    table {
      border-spacing: 10px;
    }
    
    td {
      padding: 10px;
    }
  </style>
</head>

<body>
  <table cellspacing="0" cellpadding="0">
    <th>Col 1</th>
    <th>Col 2</th>
    <th>Col 3</th>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
    </tr>
  </table>
</body>

</html>

Wyjście:

Tutaj wpisz opis obrazka

 1
Author: Amaresh Tiwari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-09 01:51:51

to mi pomogło.

Tabela {border-collapse: collapse}

Tabela th, tabela TD {padding: 0}

 1
Author: Muhammad Tahseen ur Rehman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-05 17:40:33

A może dodanie stylu bezpośrednio do samej tabeli? Jest to zamiast używania table w CSS, co jest złym podejściem , Jeśli masz wiele tabel na swojej stronie:

<table style="border-collapse: separate;border-spacing: 2px;">
    <tr>
        <td style="padding: 4px 4px;">Some Text</td>
    </tr>
</table>
 0
Author: vapcguy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-26 05:30:28

Proponuję to i wszystkie komórki dla danej tabeli są wykonane.

table.tbl_classname td, th {
    padding: 5px 5px 5px 4px   ;
 }
 0
Author: Greggo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-17 05:09:20