Chrome и его обработка% s - PullRequest
4 голосов
/ 21 марта 2012

При использовании процентов (%) для определения размеров моих элементов Chrome, очевидно, предпочитает математически составлять свои собственные правила.

Насколько я понимаю, когда вы добавляете 80 + 20, вы получаете 100; право? Ладно, хорошо. Chrome это тоже понимает. Но что, если мы напишем одно и то же уравнение по-разному? Например: (78 + 1 + 1) + (18 + 1 + 1) Что вы получили? Было ли это 100? Да, я тоже.

Итак, кто-то может , пожалуйста, , скажите мне, почему Chrome считает иначе?

Возьмите два элемента и поместите их рядом друг с другом. Затем примените width:20% к одному элементу и width:80% к оставшемуся элементу. Вы заметите, что 100% страницы (или контейнера) занято обоими элементами рядом. Тем не менее, давайте будем простыми и добавим отступ в 1% с обеих сторон каждого элемента. Это означает, что один элемент будет иметь width:18%; padding:1%, а другой элемент будет иметь width:78%; padding:1%. Теоретически, это должно иметь тот же результат: 100% страницы (или контейнера) заняты обоими элементами рядом. Но в Chrome это просто не так. Это терпит неудачу.

Доказательство в пудинге: jsfiddle (вы заметите небольшие различия, если вы используете Chrome).

Это разочаровывает, потому что, когда все складывается, особенно с большим объемом элементов, используемых рядом, это может действительно вывести макет из строя. Я знаю, что, создавая дочерние элементы, чтобы заботиться о отступах и / или полях, мы можем избежать ситуации, но это может привести к использованию разметки, которая в противном случае была бы избыточной.

Мне просто нужно объяснить, почему Chrome ведет себя таким образом (возможно, это вообще Webkit, я еще не тестировал его).

Ответы [ 3 ]

6 голосов
/ 21 марта 2012
0 голосов
/ 18 июля 2014

Поместите обертку вокруг ваших плавающих элементов, со скрытым переполнением (на всякий случай). Затем для div, который не округляется должным образом, используйте calc (X% + 1px), чтобы исправить проблему.

0 голосов
/ 20 марта 2013

Я исправил свою проблему, изменив поле Chrome для веб-набора, например, использовал:

-webkit-margin-start: -5%;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...