New issue
Advanced search Search tips

Issue 672216 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner: ----
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Table with double borders and border-collapse incorrectly renders corners.

Reported by 12jdir...@gmail.com, Dec 7 2016

Issue description

Chrome Version       : 55.0.2883.75
URLs (if applicable) : https://jsfiddle.net/yxkfyx6w/5/
Other browsers tested:
  Add OK or FAIL, along with the version, after other browsers where you
    Firefox 57: OK
         IE 11: OK

What steps will reproduce the problem?
(1) Example at https://jsfiddle.net/yxkfyx6w/5/
(2) Create a table element and style it { border-style: double; border-collapse: collapse; }
(3) 

What is the expected result?
Tables with double borders and border-collapse: collapse should render their corners the same way as border-collapse: separate


What happens instead?
The corner of the border has lines that intersect when they should not. 


Please provide any additional information below. Attach a screenshot if
possible.

Note that divs don't share this problem unless they are set to { render: table; }

 
tableborder.PNG
5.3 KB View Download
Components: Blink>Layout

Comment 2 by ajha@chromium.org, Dec 8 2016

Labels: M-55

Comment 3 by e...@chromium.org, Dec 8 2016

Cc: dgro...@chromium.org
Components: -Blink>Layout Blink>Layout>Table
Status: Available (was: Unconfirmed)
Labels: -M-55 M-57 OS-Linux OS-Mac OS-Windows
Tested this issue on Ubuntu 14.04, Windows-10 and Mac OS 10.12 using chrome latest stable #55.0.2883.75. By opening the link  https://jsfiddle.net/yxkfyx6w/5/ observed the table with double borders collapse incorrectly and renders in the corners. 

Note: This is a non-regression issue seen from past M35-35.0.1849.0

Thanks!
Cc: wangxianzhu@chromium.org atotic@chromium.org
Aleks, Xianzhu, quick thoughts on whether this is paint or layout?
Components: -Blink>Layout>Table Blink>Paint
Labels: -M-57
This is a paint issue. Currently we have problems painting border that is translucent or transparent in any part, because we just paint one border over another to "resolve" conflicts between the borders with different priorities, and paint each border shared by two cells twice by each cell.  

We'll need to continue atotic@'s work (https://codereview.chromium.org/1781463002/) to fix the above issues, but only after we find a good way to properly handle paint invalidations. One way is to paint all collapsed borders of a table or a row as one display item. 

However, even with correct painting, we won't paint the exact the same borders as non-collapsed borders because they have different corner conflict algorithms (or unspecified behaviors) in the spec. For example, we may paint one of the adjoining borders to fully cover the corner, instead of painting diagonal joints. In addition, sometimes we do need to overlap two borders at a corner if neither of the borders can fully cover the corner.
Status: WontFix (was: Available)
Update: https://chromium-review.googlesource.com/c/528561/ fixed some issues about collapsed border joints, but the current behavior of overlapping borders of the same width at joints is kept.

We don't think we can paint the same for collapsed and separate borders. No browsers can do that, though browsers do differently for collapsed border joints, and all are spec conforming and it's hard to say which is the best.

Sign in to add a comment