Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the space on the right of images in chrome?

Consider the following example:

<!doctype html>
<html>
<head>
    <style>
        td {
            padding: 0;
            background: red;
        }
        img {
            display: block;
        }
    </style>
</head>
<body
    ><table
    ><tr
      ><td
        ><img src="https://raw.githubusercontent.com/sinatra/sinatra/v1.4.7/lib/sinatra/images/500.png"
      ></td
    ></tr
    ></table
></body>
</html>

There's a red line in chrome on the right of the image. No such line in firefox. It doesn't seem like a space, because the html markup has no spaces between tags. It doesn't seem like a margin, because Developer tools doesn't report any margin.

What is this? How much space could it take?

I'm running chromium-47.0.2526.111 (64-bit), if anything.

UPD I made an example without spaces specifically to show that the red line is not caused by spaces.

Next, it was found the line appears when Zoom is, for instance, 110%. So, everything is supposedly clear now.

like image 753
x-yuri Avatar asked Feb 24 '16 14:02

x-yuri


1 Answers

It is because of the way <td> elements are displayed. As you can see, they are displayed as:

display: table-cell;

This is because of how table-cell is ment to calculate pixels. Since 1 pixel is not equal to 1 pixel in CSS if you have DPI scaling enabled (or you zoom), it will start to behave weird.

You can either find another approach of your <td> inside <tr> or simply change the display to display: inline;

It's all because of how pixels sizes are calculated. I know it sounds weird, but 1px is not 1 physical pixel. Essentially what happens is your td's background changes according to the size of your image. When your image hits an odd number (because of zooming or DPI scaling), it will either round down or up. This is when the calculation happens and is wrong.

Sources: https://www.w3.org/TR/css3-values/#absolute-lengths
http://www.quirksmode.org/blog/archives/2010/04/a_pixel_is_not.html

like image 198
MortenMoulder Avatar answered Oct 09 '22 20:10

MortenMoulder