- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
.wrap {padding: 1rem;
}
Признаюсь честно, что мне непонятно не только почему 411px, но и почему должно быть 390px. :)
offsetWidth включает в себя border и padding. Попробуйте clientWidth. Еще у вас там у wrap в rem, попробуйте дать пиксельное значение.
Написали уже выше, что из-за padding - он делает контейнер шире. Чтобы этого не происходило, в CSS есть box-sizing: border-box;
Написали уже выше, что из-за padding - он делает контейнер шире. Чтобы этого не происходило, в CSS есть box-sizing: border-box;
да не же ))
к тому же использую getComputedStyle и вычитаю падинги ) Все равно хром не правильно высчитывает.
Надо вживую смотреть почему у вас так. Вообще попробуйте на пикселях сделать, без rem, такие вещи вычисляются на лету, тяжелей дебажить где чего.
да не же ))
к тому же использую getComputedStyle и вычитаю падинги ) Все равно хром не правильно высчитывает.
Простите, я не знаю ЧТО вы там считаете, но у меня показывает 390, когда ширина 390 :)
А у вас 424.
https://jsfiddle.net/6zvsmh2g/2/
---------- Добавлено 28.12.2017 в 02:38 ----------
Да, если в CSS добавить box-sizing: border-box; - у вас будет считать верно, а у меня - ошибаться.
https://jsfiddle.net/aLgowj1m/
padding: 1rem - это 24 + 24 = 48px
border: 1px solid red - 1 + 1 = 2px
let parent = slider.parentNode;
let width = parent.offsetWidth;
alert( width );
Показывает 48 + 2 + 390 = 440
ТС посмотри указан ли у тебя размер шрифта в корневом html. rem относительно размера шрифта корневого элемента высчитывается.
Leonid H, судя по всему, у Вас установлен базовый font-size 65%, потому и получается 411px.
Это странно, но когда я убрал назначение ширины с контейнера .slider или назначил ее как '100%' - всё начало правильно отображаться. А если вернуть фиксированное значение, то почему - то идет сдвиг.
p.s
box-sizing: border-box; стоял - не в нём дело
Ничего странного нет, вы просто подробней изучите css: проценты, em, rem и т.д. Станет понятней что происходит.