Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Растягивающийся блок
 
 автор: ~Z0RR0~   (11.03.2008 в 18:30)   письмо автору
11.7 Кб
 
 

Как сделать блок, который растягивался бы на высоту контента и имел бы какой-нибудь БГ, я знаю.
Но пришла идея сделать так, чтобы не нужно было создавать много вложенных блоков, а сделать один, в котором бы лежали блоки с необходимыми бекграундами РАЗДЕЛЬНО друг от друга. Так, чтобы не было большой вложенности.
Качайте аттачи, там все понятно.
Главному, родительскому, блоку задал position:relative; для блоков с бекграудами position:absolute; ну и в нужное место их спозиционировал.
Для угловых блоков задал z-index:2; Дальше задача - сделать, чтобы блоки, которые имеют в БГ фон, который должен растягиваться по высоте и ширине имел высоту родительского блока. Сделал через CSS-свойство :inherit; но как оказалось ИЕ его не воспринимает. Пришлось прибегнуть к expression. Тут, после некоторой возни понял что придется все-таки положить основной предок в ещё один блок, т.к. для предка указал width:100%; height:100%; (для того чтобы эти свойства наследовались где надо). А при помощи ещё одного внешнего блока регулировать родителя по ширине (и/или высоте). Проблема возникла в ИЕ6, если создать такой управляющий блок, то блоки, которые должны растягиваться по высоте ни в какую этого делать не хотят. Почему? (это смотрите в аттаче1)
Пока писал придумал ещё один способ, но там снова грабли. Убрал управляющий блок, задал для родительского высоту и ширину, а для блоков с БГ, который должны наследовать его высоту убрал :expression; и :inherit; и задал height:100%; Все вроде работает. Осталось сделать так, чтобы основной блок растягивался, когда много контента. Ну и чтобы он имел какую-то минимальную высоту. Для родителя указал min-height:400px; (дальше знаменитый хак, чтоб в ИЕ работало) height:auto !important; height:400px;. Проверяю, в ИЕ6 снова не пашет. (аттач2)
Хочется как-то реализовать идею. Может кто чего толкового посоветовать?
Кстати второй вариант наверняка лучше чем первый.

   
 
 автор: AlexSol   (11.03.2008 в 19:01)   письмо автору
 
   для: ~Z0RR0~   (11.03.2008 в 18:30)
 

а нужно на все случаи жизни придумать или под конкретные требования?

   
 
 автор: ~Z0RR0~   (11.03.2008 в 19:04)   письмо автору
 
   для: AlexSol   (11.03.2008 в 19:01)
 

Ну хотелось бы конечно чтобы универсально было. Там ведь и так на все случаи, только в ИЕ6 проблема. Или это ещё не на все случаи?

   
 
 автор: AlexSol   (11.03.2008 в 19:55)   письмо автору
 
   для: ~Z0RR0~   (11.03.2008 в 19:04)
 

на помощь придло свойство zoom к сожалению не знаю за что оно отвечает, знаю что для ослика...


<div style="position:relative; zoom:1; overflow:hidden; height:auto">
<div style="background:#666666; position:absolute; width:20px; padding-bottom:3000px"></div>
<div style="background:#666666; position:absolute; right:0; width:20px; padding-bottom:3000px"></div>
<div style="background:#006600; position:absolute; height:20px; padding-right:3000px"></div>
<div style="background:#006600; position:absolute; height:20px; bottom:0; padding-right:3000px"></div>
<p style="padding:80px">
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
dskdskj hdksjh dksjbhd ksjhdksj gdskjdg ksjdg <br>
</p>
</div>

   
 
 автор: ~Z0RR0~   (12.03.2008 в 12:46)   письмо автору
 
   для: AlexSol   (11.03.2008 в 19:55)
 

Спасибо, нормальное решение. Возьму на заметку.
Хотя задумка была немножко другая. Так чтобы не скрывался БГ за пределы, а занимал область блока. Но похоже что пока 6 ослик жив стоит забить.
Кстати работает в ИЕ6 и без zoom. =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования