DOMPDF table border issue - border

I've come across a very strange issue with the latest version of DOMPDF (0.6.0 Beta 3). I'm using it to create invoices for customers on my site. The design calls for 1px borders between the table cells. If I use either black or #000 for the border color, the tables are rendered nicely. However, when I change the color, to say #CCC for example, instead of a 1px border, the borders become 2px. I'm using border-collapse:collapse and I've been pulling my hair out over this for 2 days. I'm not changing anything else except the color, yet the border thickness is changing. Has anyone else run across this issue and know what the solution is or have any suggestions? Why does black render a 1px border but other colors are rendered as 2px borders? Help!
Edit: I also have empty cells filled with as I read that that may cause issues with tables, but still no luck.

This might help. I have not tried to reproduce your problem, but I know it helped with some issues I was having with tables.
try adding this to your css for the table:
table {
border-collapse: collapse;
}
Obviously you can use the appropriate selector in the css and not define the entire table class.

I was having the exact same problem. It's caused from the table having its own border and the cells having their own borders. Here's how I fixed it:
table {
border-left: 0.01em solid #ccc;
border-right: 0;
border-top: 0.01em solid #ccc;
border-bottom: 0;
border-collapse: collapse;
}
table td,
table th {
border-left: 0;
border-right: 0.01em solid #ccc;
border-top: 0;
border-bottom: 0.01em solid #ccc;
}

If anyone facing problem with borders of multiple tables in a row
Replace This
table{ border:collapse; }
with
table{ border-spacing: 0; }
Reference link

I've seen some improvement by setting border thickness to 0.01em

Use border-spacing: -1px;
Instead of border-collapse: collapse;

Related

Border assigned over TD is not working in IE

I have a Table in which there are TD's. In one of those td's, I am applying border. It is
working fine in CHROME, but its getting disturbed in IE.
NOTE:- Earlier, when the cellpadding of the table was 2 it was looking fine but when I increased the cellpadding the border got disturbed.
Here is how it looks like
and here is the fiddle
what should I do to make it work in IE
Do you mean you want it looking like this?
https://jsfiddle.net/Hastig/o1j88quk/3/
If so add table { border-collapse: collapse; } to your css.
May also have to remove cellspacing="10" from inline style of table
To remove middle line
change
tr.black-border td {
border-top: 1px solid #0D63B0;
border-bottom: 1px solid #0D63B0;
}
to
tr.black-border:nth-child(3) td {
border-top: 1px solid #0D63B0;
}
tr.black-border:nth-child(4) td {
border-bottom: 1px solid #0D63B0;
}
Alternatively, you can control the border style by adding classes, if old IE has a problem with nth-child(x)

How to get borders to collapse in IE10?

Has anyone come across a solution for border collapse on tables not working in IE10?
I have tables on web sites used where needed, and they display fine in all other browsers, but Since IE 10 the borders are way to thick.
Above question may be a few months old, but today I've ran into the same problem and thought I could at least provide some possible solution, even though it's not an ideal one.
As the problem describes, using border-collapse causes a thick border in IE10, even though there are no borders that would add up. When leaving out border-collapse, the border-width remains its normal thickness. However, leaving out border-width results in space between cells.
The only possible alternative to get the desired result is to not use border-collapse at all. Instead, use 'border-spacing:0px;' to get rid of the spaces between cells and define borders very specifically.
Example:
This
table{
border-collapse: collapse;
}
table td{
border: 1px solid black;
}
Would become
table{
border-spacing: 0px;
border-top: 1px solid black;
border-right: 1px solid black;
}
table td{
border-left: 1px solid black;
border-bottom: 1px solid black;
}
Like I said before: it's not ideal, but at least it would give the desired cross-browser result.
Note: the problem in IE10 only occurs when using a border-width of 1px. A border-width of 1px will result in 2px when using border-collapse:collapse; in IE10. When using a higher border-width, the result will be normal.

CSS - Border only inside the table with the cell spacing

I am trying to figure out how to add border only inside the table with the cell spacing. When I do:
table {
border-collapse: collapse;
border-spacing: 4px;
}
table td, table th {
border: 1px solid black;
}
It works almost fine just cells without spacing. How to achieve that?
Thanks
If you're trying to write CSS rules for tables on which you've defined the cellspacing attribute, a solution could be this :
table[cellspacing] {
border-collapse: collapse;
border-spacing: 4px;
}
table[cellspacing] td, table[cellspacing] th {
border: 1px solid black;
}
But it would be much cleaner and more efficient to give a class to your table (<table class="withspace">). So you would more classically do
table.withspace {
border-collapse: collapse;
border-spacing: 4px;
}
table.withspace td, table.withspace th {
border: 1px solid black;
}
EDIT : just in case, if what you want is simply to have some space in your cells, add a padding value in your css :
table {
border-collapse: collapse;
border-spacing: 4px;
}
table td, table th {
border: 1px solid black;
padding: 4px;
}
The CSS code posted is correct and causes borders around cells (but around the table as a whole) and 4px spacing between cells, on conforming browsers. I suppose you were testing this on IE 7 or older, which do not support the border-spacing property.
I’m afraid there is no simpler workaround than to create a table without any borders and put an inner element inside each cell, making that cell occupy the entire cell except small margins, and draw borders around the inner elements. This probably gets ugly, so I’d rather let the presentation on IE 7 be suboptimal.
(For some reason, border-spacing does not seem to work in jsfiddle. Probably some general rule overrides a normal attempt to set the property.)

how to get rid outer table border

I need to get rid outer border, just cells border and there should be space between cells . I can't get why it builds this outer border around the table, I just tried this code in separate file
table {
border-collapse: separate;
border-spacing: 4px;
}
table td, table th {
border: 1px solid black;
}
and it display correctly. But on website content it make this outer border. Can somebody help me?
Just do in your css:
.tribe-events-calendar
{
border: 0px!important;
}
OR
#big
{
border: 0px!important;
}
Or, if it's already there the class or id, modify these values to set them as said. Beware the class, because supposedly it should affect other elements.
Reading again your question, if you set it in a different stylesheet it could happen that it overwrites the values of the 0px with the values of the Npx from the other sheet. Merge them into one, or, if you cannot, put the !important; mark after the css that says 0px.
If nothing works, embed (not include) it at the beginning of your file. Last and least (read: NOT ADVISABLE), use inline css.
I tried to add this: "border: none;" to the table element itself inside the HTML and it worked.
I think your problem is this:
table.tribe-events-calendar, .tribe-events-calendar td {
border: 1px solid #BBB;
}
It overrides your css.
Use chrome's "inspect element" or firebug for Firefox to see the problem.
You Just need to change only one place that is,
Original Code
table.tribe-events-calendar, .tribe-events-calendar td {
border: 1px solid #BBBBBB;
After Modification
table.tribe-events-calendar td {
border: 1px solid #BBBBBB;
You can use Firefox FireBug for inspect and do Live edits for CSS and Jquery.

How to separate two tr's in an html table

Is there a possibility to have a visual separator between two lines (tr) in an HTML table.
I tried with a <br> but this is not valid code.
I tried do add a padding-top to the tr after the break but it does not work.
Currently I use an empty line:
<tr><td colspan=\"X\"> </td></tr>
but I don't think this is the best solution, especially as I have to make sure the colspan is adjusted if there is a change is the number of columns.
Is there any way to solve this?
Edited to reflect my re-reading the question rather than the title of the question (original answer remains below the rule).
If you want a visual separator (rather than simply white-space) then simply use:
td {
border-bottom: 1px solid #ccc; /* or whatever specific values you prefer */
}
The only way to increase spacing between table rows, that I'm currently aware of, is to use padding on individual rows/cells:
td {
padding: 0.5em 1em;
border: 1px solid #ccc;
}
JS Fiddle demo
Although there is the potential to use transparent (or background-color-ed borders):
table {
border-collapse: separate;
}
td {
border-top: 0.5em solid transparent;
border-bottom: 0.5em solid transparent;
}
td:hover {
border-color: #ccc;
}
JS Fiddle demo
The <tr /> element is not stylable in all browsers however you could always add the padding or a bottom-border to the cells within the tr.
Actually, I use separate trs for this purpose all the time. I style them (e.g. the one td within) via a separator class.
About the colspan-problem see Colspan all columns.