Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474

Где можно прочитать про свойство offsetParent?

26.06.2014, 16:33. Показов 1779. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите, где можно прочитать про свойство offsetParent?

MDN не предлагать, так как там некорректное описание
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2014, 16:33
Ответы с готовыми решениями:

Где можно прочитать про мультитриггеры
Подскажите, где можно прочитать про мультитриггеры. В особенности интересует их реализация в Expression Blend

Где можно про это прочитать?
Вообще, есть несколько проблем: 1. Как убрать контур у фигуры на определённом участке? 2. Как сменить ВСЕ цвета у элементов управление?...

Где можно прочитать про АТД и структуру на С++?
Не нашла такого раздела здесь Литература C++ где можно подробнее узнать по этой теме?( сайты, книжки, видеоуроки и т.п.) Срочно нужно...

14
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 16:53
http://www.w3schools.com/jquer... parent.asp

Добавлено через 19 секунд
В спеке точно корректное%)
0
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 16:55  [ТС]
Цитата Сообщение от mixenik Посмотреть сообщение
http://www.w3schools.com/jquery/css_offsetparent.asp
The offsetParent() method returns the first positioned parent element.

это по вашему корректное описание? ))
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 17:00
А что вам еще нужно?

Добавлено через 17 секунд
если он именно это иделает
0
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 17:10  [ТС]
Цитата Сообщение от mixenik Посмотреть сообщение
А что вам еще нужно?
если он именно это иделает
Ну, во-первых: если нет позиционированных предков, то он возвращает элемент body, во-вторых, если определяется offsetParent в таблице, то в качестве контейнера может выступать <td>, <th> или <table>, в-третьих если в качестве offsetParent выступает body, то offsetTop и offsetLeft высчитывается относительно верхнего и левого края области просмотра окна браузера, а не относительно элемента body
0
Все элементарное - сложно
133 / 118 / 50
Регистрация: 14.04.2014
Сообщений: 509
26.06.2014, 17:15
The offsetParent attribute must return the result of running these steps:

If any of the following holds true return null and terminate this algorithm:

The element does not have an associated CSS layout box.
The element is the root element.
The element is the HTML body element.
The element's computed value of the 'position' property is 'fixed'.
Return the nearest ancestor element of the element for which at least one of the following is true and terminate this algorithm if such an ancestor is found:

The computed value of the 'position' property is not 'static'.
It is the HTML body element.
The computed value of the 'position' property of the element is 'static' and the ancestor is one of the following HTML elements: td, th, or table.
Return null.
Текст со спека

Добавлено через 1 минуту
сам спек
1
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 17:39  [ТС]
почитал, но не нашел там про это: если в качестве offsetParent выступает body, то offsetTop и offsetLeft высчитывается относительно верхнего и левого края области просмотра окна браузера, а не относительно элемента body
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
26.06.2014, 18:25
Цитата Сообщение от Justff Посмотреть сообщение
почитал, но не нашел там про это: если в качестве offsetParent выступает body, то offsetTop и offsetLeft высчитывается относительно верхнего и левого края области просмотра окна браузера, а не относительно элемента body
разумеется, такого бреда там нет

<body> - это точно такой же тег, как и все прочие теги, являющиеся оффсетным родителем
абсолютно для всех тегов offsetTop и offsetLeft отсчитываются относительно верхней и левой границы оффсетного родителя

упомянутая вами "область просмотра окна браузера" - несуществующая (т.е. кем-то выдуманная, и вами повторенная) категория

что до вышенаписанного вами про таблицу... то ничего "особливого" в этом нет
для тега внутри ячейки таблицы упомянутые вами теги <td>, <th> или <table> действительно являются последовательными оффсетными родителями (только вы пропустили <tr> и <tbody>|<thead>|<tfoot>)

стандартная конструкция, определяющая абсолютные координаты любого тега (tag в коде):
JavaScript
1
2
var l = t = 0; while (tag.OffsetParent)
   l += tag.offsetLeft, t += tag.offsetTop, tag = tag.offsetParent;
если чуть видоизменить код (для информативности), то вы сможете увидеть всю цепочку оффсетных родителей
JavaScript
1
2
3
var p = [], l = t = 0; while (tag.OffsetParent)
   p.push (tag), l += tag.offsetLeft, t += tag.offsetTop, tag = tag.offsetParent;
alert (p.join ('\n');
0
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 18:29  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
<body> - это точно такой же тег, как и все прочие теги, являющиеся оффсетным родителем
абсолютно для всех тегов offsetTop и offsetLeft отсчитываются относительно верхней и левой границы оффсетного родителя
ну тогда установите рамку в 1px для элемента body и margin: 10px;, а, например абзацу, расположенному внутри body, задайте margin-top: 20px; offsetTop абзаца будет = 31px, и напротив, если вместо body использовать позиционированный элемент с теми же свойствами, то offsetTop абзаца будет 20px

объясните пожалуйста, как в таком случае , если: "<body> - это точно такой же тег, как и все прочие теги" расстояние вычисляется не от края самого элемента body, а от края области просмотра окна браузера?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
26.06.2014, 18:52
да пожалуйста:
HTML5
1
2
3
4
5
6
7
<!doctype html>
<body style="margin: 10px; border: 1px solid #000">
<p id="myTAG" style="margin-top: 20px">txt</p>
</body>
<script>
alert (document.getElementById ('myTAG').offsetTop); // ïîêàçûâàåò 31
</script>
и
HTML5
1
2
3
4
5
6
7
<!doctype html>
<div style="margin: 10px; border: 1px solid #000">
<p id="myTAG" style="margin-top: 20px">txt</p>
</div>
<script>
alert (document.getElementById ('myTAG').offsetTop); // ТОЖЕ ïîêàçûâàåò 31
</script>
а объяснение простое: вы провели свой эксперимент в браузере Internet Explorer и не указали доктайпа

извините, но это называется особенностью (багом) конкретного браузера, но никак не имеет отношения к стандартизированному определению свойства

Не по теме:


если лично у вас от выпитой бутылки пива начинают дрожать руки и подёргиваться голова, то неужели из-за этого в энциклопедическом термине "Пиво" должно быть написано, что оно "является средством для инициирования тремора верхних конечностей"? :)

0
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 19:14  [ТС]
kalabuni
Цитата Сообщение от kalabuni Посмотреть сообщение
а объяснение простое: вы провели свой эксперимент в браузере Internet Explorer и не указали доктайпа
вы не очень внимательно прочитали, то что я написал, и из-за невнимательности сделали этот вывод


я написал: "div позиционированный", а не простой, так как если простой, то результат понятно будет таким же, как и если абзац будет в body.

Смотрите на пример:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Название документа</title>
  <style>
    body { margin: 10px; border: 1px solid #000; }
    div { margin: 10px; border: 1px solid #000; position: absolute; top: 60px; }
    p { margin-top: 20px; }
  </style>
</head>
<body>
 
  <p id="myTAG">txt</p>
 
  <div>
    <p id="myTAG2">txt</p>
  </div>
 
  <script>
    alert(document.getElementById('myTAG').offsetTop);  // показывает 30
    alert(document.getElementById('myTAG2').offsetTop); // показывает 20
  </script>
 
</body>
</html>
в первом случае расстояние вычисляется не от края самого элемента body, а от начала края области в которой отображается веб-страница.
во втором случае расстояние вычисляется от края элемента div.

отсюда: если: "<body> - это точно такой же тег, как и все прочие теги", то расстояние должно вычисляться от края элемента body, а не от края области просмотра окна браузера.

Поэтому я и попросил вас объяснить, почему расстояние вычисляется по разному, а не от края самого элемента body.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
26.06.2014, 19:59
перепишите строки ##7 и 8 вот так:
CSS
1
2
body {margin: 0; padding: 10px; border: 1px solid #000}
div  {margin: 0; padding: 10px; border: 1px solid #000; position: absolute; top: 60px}
и посмотрите - что получится

вывод: ничего особливого в теге <body> с точки зрения определения свойства offsetParent нет
1
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
26.06.2014, 23:54  [ТС]
Цитата Сообщение от kalabuni Посмотреть сообщение
вывод: ничего особливого в теге <body> с точки зрения определения свойства offsetParent нет
если так, то да, но все же, если body имеет внешний отступ, то разница есть

Добавлено через 2 часа 42 минуты
и последний вопрос, почему если offsetTop или offsetLeft вычисляется у строчных элементов, то расстояние = 1px (при отсутствии любых отступов и рамок)
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
27.06.2014, 02:29
Цитата Сообщение от Justff Посмотреть сообщение
почему если offsetTop или offsetLeft вычисляется у строчных элементов, то расстояние = 1px (при отсутствии любых отступов и рамок)
немного не понял
дайте пример, где единичка "выскакивает"
1
48 / 87 / 11
Регистрация: 12.08.2013
Сообщений: 474
27.06.2014, 05:01  [ТС]
да все, разобрался уже =) этот 1 пиксель у offsetTop у строчных элементов из-за межстрочного интервала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2014, 05:01
Помогаю со студенческими работами здесь

Где можно прочитать про работу с bmp
где можно прочитать про работу с bmp ? Гуглил и толком ничего не нашел. Интересует следующее считывание исходного RGB-изображения ,...

Ссылки с параметрами - где можно про них прочитать?
Проблема такая: Ссылки с параметрами - где можно про них прочитать? Допустим по этой ссылке нужно сформировать запрос и вывести...

Где можно прочитать про стандарт X Window System
Кто-нибудь знает, где прочитать про стандарт X Window System

Где можно прочитать про перевод структуры в массив
Здравствуйте! Подскажите где можно прочитать про перевод структуры в массив? У меня такая работа: #include &lt;fstream&gt; ...

Где можно прочитать про строительство графиков этих функций?
Дали две функции, как строить их графики нигде не могу найти. Подскажите, где можно узнать как их построить. 1. x2 - |8*x + 1| 2....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru