/* * SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0 * * Hacky fix for vertical scrollbar width being included in child's width * * This file is part of Haketilo. * * Copyright (C) 2021 Wojtek Kosior * * File is dual-licensed. You can choose either GPLv3+, CC BY-SA or both. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * I, Wojtek Kosior, thereby promise not to sue for violation of this file's * licenses. Although I request that you do not make use of this code in a * proprietary program, I am not going to enforce this in court. */ /* * Under Mozilla browsers to avoid vertical scrollbar forcing horizontal * scrollbar to appear in an element we add the `firefox_scrollbars_hacky_fix' * class to an element for which width has to be reserved. * * This is a bit hacky and relies on some assumed width of Firefox scrollbar, I * know. And must be excluded from Chromium builds. * * I came up with this hack when working on popup. Before that I had the * scrollbar issue with tables in the options page and gave up there and made * the scrollbal always visible. Now we could try applying this "fix" there, * too! */ .firefox_scrollbars_hacky_fix { font-size: 0; } .firefox_scrollbars_hacky_fix>div { display: inline-block; width: -moz-available; } .firefox_scrollbars_hacky_fix>*>* { font-size: initial; } .firefox_scrollbars_hacky_fix::after { content: ""; display: inline-block; visibility: hidden; font-size: initial; width: 14px; } .firefox_scrollbars_hacky_fix.has_inline_content::after { width: calc(14px - 0.3em); }