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 :: Странное поведение <p>

 PHP.SU

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


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

> Описание: при вложенных блочных элементах
Yuriy
Отправлено: 07 Февраля, 2010 - 00:33:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007  
Откуда: Азов


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




Сколько верстал, но никогда ещё таких чудес не видал Улыбка

Вот код:

CODE (html):
скопировать код в буфер обмена
  1. <style>
  2. p {margin: 0;padding: 10px 0;border: 1px solid red;}
  3. </style>
  4.  
  5. <p>
  6. <div>Текст</div>
  7. </p>


В итоге, вместо того, чтобы див был в теге p, последний делится на 2 самостоятельных и обрамляет див сверху и снизу! А если стили для p приписать в его style-свойство вместо описания в теге style или отдельном css-файле, он будет лишь сверху дива. Но опять-таки, див почему-то не внутри p...

Как понимать такую ситуацию?


-----
Yuriy
 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 00:51:55
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Yuriy пишет:
Но опять-таки, див почему-то не внутри p...
Все зависит от того какие параметры у самого div-a - ведь если внутри p не установлно overflow:hidden и не установлена жесткая привязка - то div может находится и за его пределами за счет сдвигов типа margin или relative-position и так далее
Вероятно в данном случае это эффект от padding-а и увеличенного размера данного div-а


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Yuriy
Отправлено: 07 Февраля, 2010 - 01:16:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007  
Откуда: Азов


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




JustUserR пишет:
Все зависит от того какие параметры у самого div-a


Стоп-стоп... Я привёл полный код. Никаких параметров и ничего лишнего здесь нет. Попробуйте запустить. Может я чего-то не понимаю...


-----
Yuriy
 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 03:31:42
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Yuriy пишет:
Стоп-стоп... Я привёл полный код. Никаких параметров и ничего лишнего здесь нет. Попробуйте запустить. Может я чего-то не понимаю...
На самом деле такой эффект бывает - когда внутренний элемент выходит за границы его контейнера определенным образом то рамка внешнего контейнера расслаивается и искривляется - поставьте к примеру для p параметр style="position:relative; display:block; overflow:hidden" и все пропадет Также можете поставить рамку для div-а и поймете почему так происходит и где происходит то самое наложение Улыбка


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Ch_chov
Отправлено: 07 Февраля, 2010 - 06:53:23
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


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




Ни чего странного нет. Тег <p/> не должен заключать в себе других блочных элеметов.

Попробуй пройти валидацию этого кода.
http://validator[dot]w3[dot]org
 
 Top
Yuriy
Отправлено: 07 Февраля, 2010 - 12:58:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007  
Откуда: Азов


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




Ch_chov пишет:
Попробуй пройти валидацию этого кода.


Больше вопросов нет. Не додумался... Смущение Теперь всё ясно!

Спасибо!


-----
Yuriy
 
 Top
JustUserR
Отправлено: 07 Февраля, 2010 - 13:47:21
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




Ch_chov пишет:
Тег <p/> не должен заключать в себе других блочных элеметов
С учетом концепции CSS2 любой блок с помощью свойства display может быть представлен в любой форме - внутренних элемент можно превратить в блочный или списочный и наоборот и так далее - так что ничего такого в этом нет - главное чтобы внутри inline-элементов не было block-элементов в общем случае


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Yuriy
Отправлено: 07 Февраля, 2010 - 13:50:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 142
Дата рег-ции: Июнь 2007  
Откуда: Азов


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




JustUserR, всё верно.

Но мне нужен валидный код.


-----
Yuriy
 
 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