Wewnętrzny margines w komórkach tabeli

0

mam tabele z komórkami o dokładnie określonym rozmiarze w pikselach

<table style="border-collapse: collapse;"  cellspacing=1 cellpadding=2 width="100%">
<tr>
   <td style="border: 1px solid black;width:40px" align="left"><FONT SIZE="3"><B>&nbsp;LP</B></FONT></td>
   <td style="border: 1px solid black;width:120px"align="left"><FONT SIZE="3"><B>&nbsp;Nazwa</B></FONT></td>
   <td style="border: 1px solid black;width:40px" align="left"><FONT SIZE="3"><B>&nbsp;Liczba</B></FONT></td>
   <td style="border: 1px solid black;width:90px" align="left"><FONT SIZE="3"><B>&nbsp;Opodatkowane</B></FONT></td>
   <td style="border: 1px solid black;width:90px" align="left"><FONT SIZE="3"><B>&nbsp;Potrącenia</B></FONT></td>
   <td style="border: 1px solid black;width:90px" align="left"><FONT SIZE="3"><B>&nbsp;Nieopodatkowane</B></FONT></td>
 </tr>');

i teraz chciałbym dodać wewnętrzny margines do komórek (czasem lewy, czasem prawy)
problem w tym, że jak dodaje padding-left:10px (lub padding-right:10px) to o tyle rozszerza mi się wielkość komórki
próbowałem dodawać znak nbsp; i wygląda dobrze, ale jak eksportuję to zestawienie do excela, to wtedy te komórki są traktowane jako tekst i już nie można na lich liczyć.

Jak odsunąć tekst od ramki komórki bez zmiany jej rozmiaru?

1

a próbowałeś skorzystać z text-indent?

<table style="border-collapse: collapse;" cellspacing="1" cellpadding="2" width="100%">
<tr>
   <td style="border: 1px solid black; width:40px; text-indent: 10px;" align="left"><FONT SIZE="3"><B>&nbsp;LP</B></FONT></td>
   <td style="border: 1px solid black; width:120px; text-indent: 50px;" align="left"><FONT SIZE="3"><B>&nbsp;Nazwa</B></FONT></td>
   <td style="border: 1px solid black; width:40px; text-indent: 10px;" align="left"><FONT SIZE="3"><B>&nbsp;Liczba</B></FONT></td>
   <td style="border: 1px solid black; width:90px; text-indent: 10px;" align="left"><FONT SIZE="3"><B>&nbsp;Opodatkowane</B></FONT></td>
   <td style="border: 1px solid black; width:90px; text-indent: 10px;" align="left"><FONT SIZE="3"><B>&nbsp;Potrącenia</B></FONT></td>
   <td style="border: 1px solid black; width:90px; text-indent: 10px;" align="left"><FONT SIZE="3"><B>&nbsp;Nieopodatkowane</B></FONT></td>
</tr>
</table>
1

próbowałem dodawać znak nbsp; i wygląda dobrze, ale jak eksportuję to zestawienie do excela, to wtedy te komórki są traktowane jako tekst i już nie można na lich liczyć.

Design pro-visualny a design dla dogodnego eksportu jako dane, to dwie różne sprawy i należy oddzielić.
Zaraz wejdziesz na wiele problemów na swojej drodze (pierwsze z brzegu: daty, pola string ale "trochę podobne" do liczbowych, one sprawią problem.
I lekarstwa gdy traktujemy HTML jako dane są przeciwstawnie gdy dopieszczamy wygląd

BTW HTML jako zasilanie Excella to samo w sobie jest kiepskim pomyłem, sa lepsze

0

Zmień model polowy na alternatywny, czyli dodaj do CSS deklarację td {box-sizing: border-box}. Tu możesz poczytać więcej na ten temat: https://shebang.pl/html/stylizacja-strony-glownej/#model-polowy-css.

0
cerrato napisał(a):

a próbowałeś skorzystać z text-indent?

tylko jak zrobić margines prawy?

0

Wsadziłbym w środek komórki jakiś element - typu <DIV> czy <SPAN> i do niego dał margines. Tylko przy SPAN nie wiem, czy nie trzeba by było zmienić display: inline-block. Sprawdź i daj znać, czy to dobry pomysł :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1