The problem is in scaling of border of the grid which have 1px. As the result it can exist the difference in width of the grid and the outer div which is less then 1px, but which is still visible.
One can fix the problem by usage .getBoundingClientRect().width
instead of jQuery.width
for getting the width of the grid and to setting the same value on different outer divs of jqGrid on every grid or column resizing and on resizing (changing the zoom) of the page. The corresponding code could be the following:
var fineTuningOfWidth = function () {
var $grid = $("#list"),
gridWidth = $grid[0].getBoundingClientRect().width.toFixed(2) + "px",
$gview = $grid.closest(".ui-jqgrid-view");
$grid.closest(".ui-jqgrid-bdiv").css("width", gridWidth);
$gview.children("div.ui-jqgrid-hdiv").css("width", gridWidth);
$gview.css("width", gridWidth);
$grid.closest(".ui-jqgrid").css("width", gridWidth);
};
$("#list").jqGrid({
datatype: "json",
url: "andrus.json",
colModel: [
{ label: "", name: "_actions", template: "actions" },
{ label: "Nimetus", name: "Nimi", jsonmap: "cell.0" }
],
iconSet: "fontAwesome",
jsonReader: { repeatitems: false }
}).bind("jqGridResizeStop", fineTuningOfWidth);
$(window).resize(fineTuningOfWidth);
setTimeout(fineTuningOfWidth, 150); // initial fine tuning of the width
See the modified demo