Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ширина плавающего и абсолютно позиционируемого блока

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Pavelbeginner
Отправлено: 02 Марта, 2012 - 14:41:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Прочитал в документации, что плавающим и абсолютно позиционируемым блокам обязательно нужно задавать ширину, то есть width:auto нельзя, нужно либо в процентах, либо в пикселя. Всегда верстал не указывая ширины и блок имел ширину равную контенту. Но вот отрывок из документации:

"10.3.5 Незамещаемые перемещаемые элементы

Если свойство 'left', 'right', 'width', 'margin-left' или 'margin-right' принимает значение 'auto', то его вычисляемое значение равно '0'. ".

Ещё где-то был отрывок, что ширину обязательно нужно указывать. В общем вопрос в следующем: это ошибка в документации или это мой косяк, что я не указываю ширину у плавающих и абсолютнопозиционируемым блокам?
 
 Top
IllusionMH
Отправлено: 02 Марта, 2012 - 15:36:00
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Pavelbeginner, где в спецификации такое написано?
Cascading Style Sheets Level 2 Revision 1 (CSS 2[dot]1) Specification
10 Visual formatting model details

Цитата:
10.3.5 Floating, non-replaced elements

If 'margin-left', or 'margin-right' are computed as 'auto', their used value is '0'.

If 'width' is computed as 'auto', the used value is the "shrink-to-fit" width.

Calculation of the shrink-to-fit width is similar to calculating the width of a table cell using the automatic table layout algorithm. Roughly: calculate the preferred width by formatting the content without breaking lines other than where explicit line breaks occur, and also calculate the preferred minimum width, e.g., by trying all possible line breaks. CSS 2.1 does not define the exact algorithm. Thirdly, find the available width: in this case, this is the width of the containing block minus minus the used values of 'margin-left', 'border-left-width', 'padding-left', 'padding-right', 'border-right-width', 'margin-right', and the widths of any relevant scroll bars.

Then the shrink-to-fit width is: min(max(preferred minimum width, available width), preferred width).


На заборе тоже пишут, а за ним дрова лежат Ха-ха
Нужно читать официальные документы

(Отредактировано автором: 02 Марта, 2012 - 15:38:40)

 
 Top
DelphinPRO
Отправлено: 02 Марта, 2012 - 15:40:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Pavelbeginner пишет:
Если свойство 'left', 'right', 'width', 'margin-left' или 'margin-right' принимает значение 'auto', то его вычисляемое значение равно '0'. ".

Данное утверждение верно только для пустых блоков.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Pavelbeginner
Отправлено: 03 Марта, 2012 - 12:36:05
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




У меня перевод русской документации по css2. Возможно, что-то отсутствует. Еще хотел бы одну вещь уточнить. В переводе написано, что, например, если есть вот такая верстка:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div style="position:relative">
  3.   hello world
  4.   <div style="position:absolute;top:200%;">
  5.   good
  6.   </div>
  7. </div>
  8.  


То вычисленное значение top внутреннего блока должно быть равно 0 т.к. значение высоты для внешнего блока не задано. То есть в переводе сказано, что, если значение высоты внешнего блока равно auto, то значение top(если оно задано в процентах) для внутреннего блока должно установиться в 0.

На практике, конечно, в 0 не устанавливается, а устанавливается проценту от высоты внутреннего блока. Скажите, пожалуйста, это баг документации или же у меня не полная документация? И скажите, как на самом деле в такой ситуации, которую я описал, должно вычисляться значение top(если оно в процентах) для внутреннего блока, если значение высоты для внешнего блока установлено в auto? Спасибо.
 
 Top
IllusionMH
Отправлено: 03 Марта, 2012 - 15:11:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Pavelbeginner, в моем посте есть ссылка на оригинал действующей спецификации css2[dot]1, а есть скомпрометировавший себя русский перевод устаревшей спецификации css2. Вот какую стоит читать?

В старой нам даже дают подсказку
Спойлер (Отобразить)


Старая которую уже не используют
Цитата:
<percentage>
The offset is a percentage of the containing block's width (for 'left' or 'right') or height (for 'top' and 'bottom'). For 'top' and 'bottom', if the height of the containing block is not specified explicitly (i.e., it depends on content height), the percentage value is interpreted like 'auto'.


Актуальная и используемая спецификация
Цитата:
<percentage>
The offset is a percentage of the containing block's width (for 'left' or 'right') or height (for 'top' and 'bottom'). Negative values are allowed.


Так что опять таки, напомню про заборы и чтение официальных документов Радость
 
 Top
Pavelbeginner
Отправлено: 04 Марта, 2012 - 10:32:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Я в английском не силен, поэтому и спрашиваю здесь. Получается, если у родительского блока высота задана как auto, то top внутреннего блока, если он задан в процентах, будет вычисляться в зависимости от высоты контента внешнего блока, верно? В документации так сказано?
 
 Top
IllusionMH
Отправлено: 04 Марта, 2012 - 13:04:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




В документации сказано
Отступ вчисляется как процент от ширины(left right) или высоты (top bottom) содержащего(внешнего) блока. Допустимы отрицательные значения.

т.е. всегда вычисляется от ширины/высоты блока. А в данном случае высота блока расчитывается из высот содержимого.
 
 Top
Pavelbeginner
Отправлено: 04 Марта, 2012 - 13:35:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 882
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




Спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTML, Дизайн & CSS »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB