Проблемы с размером CSS

Хорошо, ребята, У меня возникла проблема / вопрос, и я не могу найти на него ответа. Допустим, у меня есть что-то вроде этого:

<div className='container'>
    <div className='wrapper' style = {{
        width: 40,
        height: 40,
        backgroundColor: 'red'
    }}>
        <div
            className='item'
            style = {{
                width: 18,
                height: 18,
                backgroundColor: 'black',
            }}
        />
    </div>
</div>

Так что в основном у меня есть квадрат с квадратом внутри верхнего container.

Если я добавлю отступ к container, размер и положение item изменится:

Проблемы с размером CSS

Как вы можете видеть, размер элемента изменяется [В ВИДЕО Я ЗАМЕНЯЮ НАБИВКУ КОНТЕЙНЕРА] (если он будет расположен по центру, то положение тоже изменится ..., поскольку инспектор Chrome говорит, что он остается на 18 пикселей)

P.S .: Если размер элемента even percentage (или px), например 10%, 20%, 30% ... 90%,, и так далее, то размер и положение не изменятся. (То же самое, если я использую PX, и он равен = 10% ... 90%.. eg.: 4px, 8px, 12px...)

вот аналогичная проблема: stackoverflow.com/questions/48044040/… ... это связано с перерисовкой браузера и некоторым подсчетом субпикселей

Temani Afif 16.08.2018 23:51

Хм, да, это действительно похоже. Это действительно странно :(. В моем реальном приложении это элемент, у которого есть оболочка со значком в ней. (Item-> Wrapper-> Icon), но мой значок (значок шрифта) не будет центрирован, если его размер не равен даже 10% процентов (что кажется немного строгим правилом.: /)

Istvan Orban 16.08.2018 23:59
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит из-за субпиксельный рендеринг в сочетании с способ рендеринга CSS-пикселя.

Из статьи по ссылке:

... A CSS ‘px’ unit (because it is 1/96 of an inch) may resolve to a fractional number of device pixels. For example, on a 300dppi (device pixel per inch) screen the ratio of device pixels to CSS pixels pixels is 300/96 = 3.125.

По сути, когда ваши элементы расположены в очень определенных местах на экране, браузер отображает их с указанными вами размерами, но может показаться, что они выходят за край на один пиксель или отступают на один пиксель из-за нечетного CSS-пикселя на вашем мониторе. соотношение пикселей экрана.

Если бы вы попробовали тот же тест на другом экране, у элементов была бы такая же «проблема», но, вероятно, в разных местах на экране.

Аааааааааааааааааа в этом есть смысл! Спасибо, что разъяснили мне это!

Istvan Orban 17.08.2018 00:40

Другие вопросы по теме