Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316

реальная ширина div при position: fixed;

27.08.2019, 10:43. Показов 858. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый, что-то мне выдаёт цифры, не совместимые с реальностью.
Сначала задача человеческим языком: есть готовая вёрстка, в ней есть правый сайд-бар, и еще есть "плавающая" подсказка, которая должна "плыть" при скроле страницы вверх-вниз рядом с сайтбаром.
Движение вверх и вниз как-то поборол, теперь маюсь с выравниванием по правому краю.
Как делаю:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    var right_sidebar = document.getElementById('right_sidebar');
    var right_sidebarLeft = right_sidebar.getBoundingClientRect().left;
// находим наш многострадальный div, на котором тренируюсь:
    var koordinats = document.getElementById('koordinats');
 
//Нагуглил, что ширину должен возвращать:
    alert(koordinats.offsetWidth);
// но он выдаёт 1244, в то время, как реальная ширина блока у меня сейчас забита константой в
// стилях: 350px
// в самом проекте ширина блока будет динамически изменяться, в зависимости от актуального
//содержимого, поэтому к константе привязаться не получится
 
// пытаемся выравнять его относительно сайдбара:
    //koordinats.style.right = right_sidebarLeft + 'px'; закоментил - вообще никакого эффекта на расположение блока не оказывает;
    koordinats.style.left = (right_sidebarLeft - 350) + 'px'; // это работает, НО:
// 350 в реальном проекте не получится использовать, так как там эта подсказка будет формироваться
// динамически и может оказаться как шире, так и уже. На время экспериментов забил 350 в стилях (ниже напишу)
Почему ширина блока koordinats определяется "от левого края экрана до правого края блока" и как получить именно width самого этого блока, без расстояния от "нуля" экрана?

в стилях по быстрому накиданно вот такое:
CSS
1
2
3
4
5
6
7
8
#koordinats {
    position: fixed;
    width: 350px;
    height: 75px;
    background: black;
    color: white;
    text-align: center;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.08.2019, 10:43
Ответы с готовыми решениями:

Движение блока при скроллинге. Эмуляция position: fixed
Всем привет! Так уж получилось, что нет возможности использовать фиксирование элемента, а только абсолютное позиционирование. Подскажите,...

Реальная ширина элемента
Здраствуйте! Подскажите пожалуйста, как решить такую проблему? У меня на странице надо узнать в js ширину элемента. При этом в css вообще...

Два div и position:fixed
Добрый вечер. Опыта в верстании нет. Левый div должен быть position: fixed, но когда я это делаю то правый div уходит за него. Как это...

3
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,096
27.08.2019, 11:02
ИмяПользователя, покажите весь код который приводит к ошибке, вместе с html и остальными стилями.
Приведенный код показывает правильную ширину
1
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
27.08.2019, 11:53  [ТС]
Цитата Сообщение от AlexZaw Посмотреть сообщение
покажите весь код который приводит к ошибке, вместе с html и остальными стилями.
- сложно вычленить: проект "побит" по php, css и js файлам. Это я собрал в наколенке, уже смотрю, у меня даже вот такое вот:
JavaScript
1
2
3
    var koordinats = document.getElementById('koordinats');
    koordinats.style.left = '0px';
    alert(koordinats.offsetWidth);
Возвращает те же самые 1244, при этом div становится на левую бровку, т.е. - выравнивается по левому краю корректно...

Ладно, спасибо, буду пытаться понять где кто чего накрутил, потому как сам div у меня вообще тупо вот так добавлен сразу после хедера:
HTML5
1
2
3
<div id="koordinats">
    <p id="test_p"></p>
</div>
Содержимое строки обновляется позже "по событию", но на начальном этапе там пусто.
0
Модератор
Эксперт HTML/CSS
 Аватар для AlexZaw
2381 / 1741 / 677
Регистрация: 07.08.2016
Сообщений: 4,096
27.08.2019, 12:00
Цитата Сообщение от ИмяПользователя Посмотреть сообщение
у меня даже вот такое вот
Ну если именно такое, т.е. ширина для дива не задана, то все правильно показывает, так как у блочных элементов ширина по умолчанию равна 100% ширины окна браузера.
Возможно вам нужно просто задать для этого дива display:inline-block;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.08.2019, 12:00
Помогаю со студенческими работами здесь

position fixed, горизонтальный div становится вертикальным
здравствуйте. &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; &lt;meta http-equiv='Content-Type' content='charset=utf-8'&gt; ...

Как правильно использовать <div> c position:fixed
Есть шапка сайта #hat с фикс. позицией Проблема в том что следующий блок #pics залазеет на эту шапку. Как сделать так чтобы блок #pics...

Div блок с position:fixed относительно родительского
Всем привет! Подскажите как сделать div блок с position:fixed чтоб он позиционировался не от краев браузера, а от родительского div?

Как сделать div блок с position:fixed на переднем плане?
Имеются много дивов на странице у них при перетаскивании меняется на javascript z-index и всплывающее окно которое должно быть поверх их...

почему пропадает картинка при position:fixed?
&lt;div class=&quot;img-pop-up2&quot;&gt; &lt;img class=&quot;floater&quot; id=&quot;pop-up2&quot; src=&quot;images/sale-p.png&quot; width=&quot;338&quot; height=&quot;108&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru