Cellpadding en celspatiëring instellen in CSS?

In een HTML-tabel kunnen de cellpaddingen cellspacingals volgt worden ingesteld:

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

Hoe kan hetzelfde worden bereikt met CSS?


Antwoord 1, autoriteit 100%

Basis

Om “cellpadding” in CSS te regelen, kun je eenvoudig paddinggebruiken voor tabelcellen. bijv. voor 10px van “cellpadding”:

td { 
    padding: 10px;
}

Voor “celafstand” kunt u de CSS-eigenschap border-spacingtoepassen op uw tabel. bijv. voor 10px “celafstand”:

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

Deze eigenschap maakt zelfs gescheiden horizontale en verticale afstand mogelijk, iets wat je niet zou kunnen doen met ouderwetse “celafstand”.

Problemen in IE ≤ 7

Dit werkt in bijna alle populaire browsers, behalve Internet Explorer tot en met Internet Explorer 7, waar je bijna geen geluk hebt. Ik zeg “bijna” omdat deze browsers nog steeds de eigenschap border-collapseondersteunen, die de randen van aangrenzende tabelcellen samenvoegt. Als je cellpacing probeert te elimineren (dat wil zeggen cellspacing="0"), dan zou border-collapse: collapsehetzelfde effect moeten hebben: geen spatie tussen tabelcellen. Deze ondersteuning is echter foutief, omdat het een bestaand cellspacingHTML-kenmerk op het table-element niet overschrijft.

Kortom: voor niet-Internet Explorer 5-7 browsers, border-spacinghandelt u af. Voor Internet Explorer, als uw situatie precies goed is (u wilt 0 celspatiëring en uw tabel heeft deze nog niet gedefinieerd), kunt u border-collapse: collapsegebruiken.

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

Opmerking: voor een goed overzicht van CSS-eigenschappen die men kan toepassen op tabellen en voor welke browsers, zie deze fantastische Quirksmode-pagina.


Antwoord 2, autoriteit 26%

Standaard

Het standaardgedrag van de browser is gelijk aan:

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

         

Cellpadding

Stelt de hoeveelheid ruimte in tussen de inhoud van de cel en de celwand

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

        

Celafstand

Beheerst de ruimte tussen tabelcellen

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

        

Beide

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

        

Beide (speciaal)

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

        

Opmerking:als er border-spacingis ingesteld, geeft dit aan dat de eigenschap border-collapsevan de tabel separate.

Probeer het zelf!

Hiervindt u de oude HTML-manier om dit te bereiken.


Antwoord 3, autoriteit 10%

table
{
    border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
    padding: 0; /* 'cellpadding' equivalent */
}

Antwoord 4, autoriteit 3%

Het instellen van marges op tabelcellen heeft voor zover ik weet geen enkel effect. Het echte CSS-equivalent voor cellspacingis border-spacing– maar het werkt niet in Internet Explorer.

Je kunt border-collapse: collapsegebruiken om de celafstand betrouwbaar in te stellen op 0, zoals vermeld, maar voor elke andere waarde denk ik dat de enige manier om in meerdere browsers te werken is om de cellspacingkenmerk.


Antwoord 5, autoriteit 3%

Deze hack werkt voor Internet Explorer 6 en hoger, Google Chrome, Firefox en Opera:

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

De *-declaratie is voor Internet Explorer 6 en 7, en andere browsers zullen deze correct negeren.

expression('separate', cellSpacing = '10px')retourneert 'separate', maar beide instructies worden uitgevoerd, omdat u in JavaScript meer argumenten kunt doorgeven dan verwacht en ze worden allemaal geëvalueerd.


Antwoord 6, autoriteit 2%

Voor degenen die een celafstandwaarde willen die niet nul is, de volgende CSS werkte voor mij, maar ik kan deze alleen in Firefox testen.

Zie de Quirksmode-link elders gepostvoor compatibiliteitsdetails. Het lijkt erop dat het niet werkt met oudere versies van Internet Explorer.

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

Antwoord 7

De eenvoudige oplossing voor dit probleem is:

table
{
    border: 1px solid #000000;
    border-collapse: collapse;
    border-spacing: 0px;
}
table td
{
    padding: 8px 8px;
}

Antwoord 8

Ook, als u wilt cellspacing="0", vergeet niet om border-collapse: collapsein uw table‘ s stylesheet.


9

Wikkel de inhoud van de cel met een div en je kunt alles doen wat je wilt, maar je moet elke cel in een kolom inpakken om een ​​uniform effect te krijgen. Bijvoorbeeld om gewoon breder links en amp te worden; juiste marges:

Dus de CSS zijn,

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>

10

Gebruik gewoon border-collapse: collapsevoor uw tabel, en paddingVOOR thOF td.


11

Deze stijl is voor Volledige reset voor tabellen Cellpadding , celspacing en randen .

Ik had deze stijl in mijn reset.css-bestand:

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 */
}

12

TBH. Voor al het geklungel met CSS kun je net zo goed cellpadding="0"cellspacing="0"gebruiken omdat ze niet verouderd zijn…

Iedereen die marges suggereert op <td>‘s heeft dit duidelijk niet geprobeerd.


Antwoord 13

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

Antwoord 14

Gebruik eenvoudig CSS-opvulregels met tabelgegevens:

td { 
    padding: 20px;
}

En voor randafstand:

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

Het kan echter problemen veroorzaken in oudere browserversies zoals Internet Explorer vanwege de diff-implementatie van het boxmodel.


Antwoord 15

Van wat ik begrijp uit de W3C-classificaties is dat <table>‘s bedoeld zijn om gegevens ‘alleen’ weer te geven.

Op basis daarvan vond ik het een stuk eenvoudiger om een <div>te maken met de achtergronden en zo en een tabel te hebben met gegevens eroverheen met behulp van position: absolute;en background: transparent;

Het werkt in Chrome, Internet Explorer (6 en later) en Mozilla Firefox (2 en later).

Marges worden gebruikt (of betekende sowieso) om een ​​afstandhouder tussen containerelementen te creëren, zoals <table>, <div>en <form>, niet <tr>, <td>, <span>of <input>. Gebruik het voor iets anders dan containerelementen houdt u bezig met het aanpassen van uw website voor toekomstige browserupdates.


16

CSS:

selector{
    padding:0 0 10px 0; // Top left bottom right 
}

17

U kunt eenvoudig vulling in de tabelcellen instellen met behulp van de CSS-opvulling. Het is een geldige manier om hetzelfde effect te produceren als het cellpaddingattribuut van de tabel.

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>

18

Probeer dit:

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

of probeer dit:

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

19

Ik gebruikte !importantNA DE BORDERCOLLAPSE LIKELE

border-collapse: collapse !important;

En het werkt voor mij in IE7. Het lijkt het attribuut van de celspacing te negeren.


20

<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-paddingKan worden gegeven door paddingIN CSS TERWIJL cell-spacingkan worden ingesteld door border-spacingvoor tabel.

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

Fiddle.


Antwoord 21

td {
    padding: npx; /* For cellpadding */
    margin: npx; /* For cellspacing */
    border-collapse: collapse; /* For showing borders in a better shape. */
}

Als marginniet werkte, probeer dan de displayvan trin te stellen op blocken dan zal de marge werk.


Antwoord 22

Voor tabellen zijn cellpacing en cellpadding verouderd in HTML 5.

Voor cellpacing moet je nu border-spatiëring gebruiken. En voor cellpadding moet je border-collapse gebruiken.

En zorg ervoor dat u dit niet gebruikt in uw HTML5-code. Probeer deze waarden altijd in een CSS 3-bestand te gebruiken.


Antwoord 23

table {
    border-spacing: 4px; 
    color: #000; 
    background: #ccc; 
}
td {
    padding-left: 4px;
}

Antwoord 24

In een HTML-tabel kunnen de cellpaddingen cellspacingals volgt worden ingesteld:

Voor celopvulling:

Noem eenvoudig td/thcel padding.

Voorbeeld:


Antwoord 25

Je kunt eenvoudig zoiets in je CSS doen, met behulp van border-spacingen 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>

Antwoord 26

U kunt de onderstaande code controleren door een index.htmlte maken en deze uit te voeren.

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

Antwoord 27

Hoe zit het met het rechtstreeks toevoegen van de stijl aan de tabel zelf? Dit is in plaats van het gebruik van tablein je CSS, wat een SLECHTEbenadering is als je meerdere tabellen op je pagina hebt:

<table style="border-collapse: separate;border-spacing: 2px;">
    <tr>
        <td style="padding: 4px 4px;">Some Text</td>
    </tr>
</table>

Antwoord 28

Dit werkte voor mij:

table {border-collapse: collapse}
table th, table td {padding: 0}

29

Ik stel dit voor en alle cellen voor de specifieke tabel worden bewerkstelligd.

table.tbl_classname td, th {
    padding: 5px 5px 5px 4px;
 }

Other episodes