Модератор форума: Yuri_G  
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Подстройка размера картинки под разрешение экрана (Подстройка размера изображения под разрешение экрана)
Подстройка размера картинки под разрешение экрана
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 1 | 23:56:47
Все сайты, по макету вёрстки, можно разделить на три принципиальные группы: жестко фиксированные (Rigid fixed), адаптивные резиновые (Adaptable fluid) и расширяемые эластичные (Expandable elastic) макеты.

В данной теме, рассмотрим варианты подстройки элементов дизайна шапки, а именно - картинок, под резиновые макеты сайтов.

Делается это, обычно, тремя основными способами:
* Вёрсткой шапки, с использованием не фиксированных областей с фоном.
* Изменение параметров позиционированного изображения - разными способами.
* Изменение всего вида элементов методом динамического добавления/изменения стилей.



Вёрсткой шапки, с использованием не фиксированных областей с фоном.

Наиболее распространённой и кроссбраузерной, является конструкция вида:

HTML-код
Code
<table id="headerTb" width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
<td class="hdLeft"><div class="author">Copyright <b>2005-2011</b> <a class="flink" href="http://likbezz.ru/">«likbezz.ru»</a>, Оформление: <a class="flink" href="http://likbezz.ru/index/8-1" target="_blank">Flesh</a></div></td>
<td class="hdRight"> </td>
</tr>
</table>


CSS-стили:
Code
<style type="text/css">
/* StartStyle */
#headerTb{border-collapse:collapse;border-spacing:0;background:#1552ca url(_st/v00_h_bg.jpg) repeat-x left top;height:121px;}
td.hdLeft{background:url(_st/v00_h1.jpg) no-repeat left top;width:auto;vertical-align:top;}
td.hdRight{background:url(_st/v00_h2.jpg) no-repeat right top;width:445px;}
/* EndStyle */
</style>

...
В подобном исполнении, всё просто - рисуется шапка, в каком-нибудь графическом редакторе, например в фотошопе или кореле, нарезается на отдельные графические элементы (фрагменты):

картинка - слева:


картинка - справа:


и фон - по центру.

...
Для таблицы, в данном случае, прописывается фон, а ширина указывается в процентах - обычно 100%.
Ширина ячеек таблицы, в которых будут размещаться графические элементы, обычно прописывается в пикселах, но, как минимум, одна из ячеек таблицы должна иметь свободную ширину (auto).
То есть если ячеек две, как в данном случае, одной прописывается фиксированный размер, равный ширине картинки, второй устанавливается значение «auto» - то есть на всю оставшуюся ширину.

Сами картинки могут вставятся в предназначенные для них ячейки, как просто картинкой (тегом <img />), так и фоном.
В данном случае, картинки вставлены фоном, так как левая ячейка уже содержит текстовый блок - копирайт, а правая предполагает его наличие.

Здесь все просто - смотрим пример:

Пример ...

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


Изменение параметров позиционированного изображения

Масштабированием относительно родительского элемента.

В данном случае - таблица.

Сразу хочу отметить, что у браузера Internet Explorer небольшие проблемы с изменением размеров объекта - в данном случае - картинки.
Суть его в следующем:
Если у картинке реальная ширина равна, допустим 1024px, и необходимо чтобы при изменении ширины окна браузера это изображение растягивались/сужались пропорционально, то при сужении окна браузера ширина изображения в определенный момент “застревает” и не сужаются дальше. В результате чего оно выходит за пределы предполагаемого контента.
То бишь, изображения не сужаются меньше их фактического размера.

Обходится этот «баг» достаточно просто и заключается всего в одной строчке CSS-кода - в свойстве «table-layout: fixed», которое нужно применить к таблице, в которую заключено изображение.

Следовательно, если у вас картинка шапки заведомо больше, минимальной ширины сайта, нужно задать таблице этот параметр.
Задаётся он через стили (CSS) и имеет всего два аргумента: «auto» и «fixed».

Кроме того:
Если у изображения не указана высота, или указано значение «auto» - изображение масштабируется пропорционально (сохраняя соотношение сторон).
Если же высота указана конкретно (в любых положительных единицах измерения), то соотношение сторон нарушается и изображение масштабируется только в ширину, сохраняя заданную в высоту.

HTML-код:
Code
<table id="headerTb" width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
<td class="hdImg"><img class="topImg" src="/_content/_tpl/v00/_st/v00_h_1200.jpg" border="0" alt="" /></td>
</tr></table>


CSS-стили (изображение масштабируется пропорционально)
Quote (CSS)
<style type="text/css">
/* StartStyle */
#header{ height:auto;}
#headerTb{border-collapse:collapse;border-spacing:0;table-layout:fixed;background-color:#1552ca;height:121px;}
#headerTb img.topImg{width:100%!important;height:auto!important;-ms-interpolation-mode:bicubic;}
td.hdImg{vertical-align:top;}
/* EndStyle */
</style>


CSS-стили (изображение масштабируется линейно - в ширину)
Quote (CSS)
<style type="text/css">
/* StartStyle */
#header{ height:auto;}
#headerTb{border-collapse:collapse;border-spacing:0;table-layout:fixed;background-color:#1552ca;height:121px;}
#headerTb img.topImg{width:100%!important;height:125px!important;-ms-interpolation-mode:bicubic;}
td.hdImg{}
/* EndStyle */
</style>


Примеры:
Пропорционально-масштабируемая картинка ...

Линейно-масштабируемая картинка ...
...

И ещё:
Не все браузеры умеют правильно масштабировать изображения.
Opera, Safari и Google Chrome отобразят их почти без искажений.
А в Internet Explorer и Firefox (опаньки!) картинка исказится.

В MSIE искажения будет наиболее заметными.
Дело в том, что для ресемплинга (изменения размеров изображения) браузеры используют свой собственный, метод.

Например, если фактическая ширина изображения 200x200, но вы указываете, что его размеры должна быть 400x400 (увеличиваете), то изображение будет растянуто, используя «nearest-neighbor» алгоритм масштабирования - по соседним пикселям - то бишь замыливание, если не указано иное.

Если же наоборот, вы уменьшаете изображение, то будет использоваться «bicubic» - бикубический режим сглаживания.

В Internet Explorer «nearest-neighbor» является значением по-умолчанию, но есть возможность принудительно задать необходимый режим, в зависимости от начальных размеров и качества вашей картинки.

Делается это через CSS, свойством «-ms-interpolation-mode».

Оно может принимать два значения:
Quote (Info)
-ms-interpolation-mode:nearest-neighbor; - Всегда используется интерполяция по соседним пикселам.
-ms-interpolation-mode:bicubic; - Всегда используется высококачественный бикубический режиме интерполяции.


Internet Explorer v6 - не поддерживает данную функцию.

В примерах, так как картинка изначально больше минимальной ширины контент блока, задан бикубический режим сглаживания:
Quote
#headerTb img.topImg{width:100%!important;height:auto!important;-ms-interpolation-mode:bicubic;}

...


Изменение параметров позиционированного изображения

Масштабирование относительно родительского элемента.

В данном варианте - блоком-обёрткой, позиционированному относительно его исходного положения (position:relative).

Суть его в том - создается дополнительный блок-обертка, для которого устанавливается position:relative и в него помещается картинка (<img />), используемая в качестве фона.

Для того, чтобы картинка не висела на первом плане, загораживая собой возможный внутренний контент шапки - текст, другие картинки, прочее - блоку-обёртке назначают z-index:1, а картинке, что будет выступать в роли фона, тоже задают позиционирование (так как только позиционированным элементам можно задать атрибут - z-index - кроме position:static;) и атрибут z-index:-1, смещая тем самым её (по z-оси) на задний план.

Чтобы управлять положением блока с контентом внутри блока с картинкой, применяется абсолютное позиционирование и/или поля/отступы.
Блоки вне обёртки, позиционируются как и обычно.

HTML-код:
Quote (HTML)
<div id="wrapBox">
<div id="selfBox"><div class="author">Copyright 2005-2011 <a class="flink" href="http://likbezz.ru/">«likbezz.ru»</a>, Оформление: <a class="flink" href="http://likbezz.ru/index/8-1" target="_blank">Flesh</a></div></div>
<img class="topImg" src="/_content/_tpl/v00/_st/v00_h_1200.jpg" alt="" />
</div>

Где:
<div id="selfBox"> ... </div> - дополнительный контент - в данном случае - копирайт.
<img class="topImg" /> - картинка.

CSS-стили:
Quote
<style type="text/css">
/* StartStyle */
#header{height:auto;}
#wrapBox{position:relative;width:100%;height:auto;z-index:0;}
#selfBox{width:100%;position:absolute;}
#wrapBox img.topImg{display:block;position:relative;top:0;left:0;width:100%;height:100%;z-index:-1;}
/* EndStyle */
</style>


Пример ...

Кроме того:
Так же как и в примере выше, если у изображения не указана высота, или указано значение «100%» - изображение масштабируется пропорционально.
Если же высота указана конкретно, в любых положительных единицах измерения, то не пропорционально, а только в ширину, сохраняя заданную в высоту.

Пример - высота зафиксирована размером в 125px ...

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
1irishka1
Сообщений: 5
Репутация: 0

Сообщение # 211 | 07:34:56
http://www.aromacharm24.ru/
проблема описана в Сообщении # 241
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 212 | 21:04:37
Berecunda,
Цитата
а если с телефона захожу, там вообще дурдом
Для телефонов, мелких экранов обычно делается PDF версия сайта ...
А по скриншоту планшета, шапку, шаблон шапки переделывать однозначно ...

Berecunda
Сообщений: 31
Репутация: 20

Сообщение # 213 | 21:16:00
Miss_Esq, Можно подробнее описать, будьте любезны, если я сделаю ПДФ, то как будет смотреться сайт с экрана монитора?
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 214 | 21:35:39
Berecunda,
Цитата
то как будет смотреться сайт с экрана монитора

Для больших мониторов так и будет как есть, PDF версия максимально упрощённый вариант сайта, для этого есть отдельные шаблоны в Панели Управления.
Достаточно активировать их в Общих настройках Панели управления

Активизировать шаблоны для PDA версии сайта:
Вы сможете настраивать шаблоны для отображения сайта в браузерах PDA устройств. Мини браузеры определяются автоматически. Чтобы посмотреть вид дизайна в обычном браузере необходимо добавить "/pda" в URL (http://site.com/pda/).

Для планшетов можно исправить и существующий шаблон, шаблон шапки, но есть так сказать специальные решения для чисто планшетов, смартфонов ... но в любом случае нужно шаблон шапки исправлять под любое разрешение ..

Berecunda
Сообщений: 31
Репутация: 20

Сообщение # 215 | 21:51:57
Miss_Esq, У меня стоит галка, помогите устранить проблему с шапкой
Вот верхняя часть шапки:
<table width="100%" style='background: url("http://www.narodnyi-yurist.ru/shapka.gif") repeat-x rgb(99, 201, 0);' border="0" cellspacing="0" cellpadding="0"
height="68" width="100%">

<tbody><tr>
<td width="200" height="68" style="letter-spacing: 0px; font-style: normal; font-weight: normal; text-decoration: none;"><p align="center"><span style="font-size: 24pt;"><span style="color: rgb(0, 160, 0); font-family: Monotype Corsiva; font-size: 18pt; font-weight: bold;"><img width="15j" height="150" style="width: 150px; height: 150px;" src="/logotip.gif"></span></span><div align="center"></div><p></p></td>
<td height="68"><p align="center"><strong><span style="font-size: 36pt;"><span style="color: rgb(255, 0, 0); font-family: Monotype Corsiva;"><font size="6">Бесплатные юридические консультации</font></span></span> </strong></p><p align="center"><!--<s3167>--><span style="color: rgb(99, 201, 0); font-family: Monotype Corsiva; font-size: 24pt;"><strong><font color="#ff0000">Прием ведется по предварительной записи!</font></strong></span></p><p align="center"><span style="font-family: Monotype Corsiva; font-size: 24pt;"><strong><font color="#ff0000">8 (496) 416-17-88, 8 (968) 454-06-82</font></strong></span></p><p align="center"><a href="[url=mailto:Narodnyi-yurist@mail.ru"> color="#ff0000" face="Monotype Corsiva" size="6"><strong>Narodnyi-yurist@mail.ru</strong></font></a><!--?endif?--><!--?endif?--></p></td>
<td height="68"><p align="right">$WDAY$, $DATE$, $TIME$ <br></p><p align="right"><span style="font-size: 36pt;"><font color="rgb(99,201,0)"></font></span><font color="rgb(99,201,0)"> Вы вошли как<!--</s>--> <a title="Мой профиль" href="$PERSONAL_PAGE_LINK$"><span style="font-weight: bold;">$USERNAME$</span></a> | <!--<s3167>-->Группа<!--</s>--> "<span style="text-decoration: underline;">$USER_GROUP$</span>"<br><a title="Главная" href="$HOME_PAGE_LINK$"><!--<s5176>-->Главная<!--</s>--></a> <!--?if($USERS_ON$)?--><!--?if($USER_LOGGED_IN$)?--> | <a title="Мой профиль" href="$PERSONAL_PAGE_LINK$"><!--<s5214>-->Мой профиль<!--</s>--></a><!--?else?--> | <a title="Регистрация" href="$REGISTER_LINK$"><!--<s3089>-->Регистрация<!--</s>--></a><!--?endif?--><!--?endif?--> <!--?if($USERS_ON$)?--><!--?if($USER_LOGGED_IN$)?--> | <a title="Выход" href="$LOGOUT_LINK$"><!--<s5164>-->Выход<!--</s>--></a><!--?else?--> | <a title="Вход" href="$LOGIN_LINK$"><!--<s3087>-->Вход<!--</s>--></a><!--?endif?--><!--?endif?--></font></p></td>
</tr>
</tbody></table>

Нижняя часть, на некоторых страницах желтая полоска не до конца правой части страницы
<table border="0" height="40" cellpadding="0" cellspacing="0" width="100%" style="background:url(http://www.narodnyi-yurist.ru/bez_imeni-8.gif);">
<tr><td width="30"><img src="http://www.narodnyi-yurist.ru/bez_imeni-9.gif" border="0"></td><td align="center"><!-- <copy> -->Народный Юрист 2012 © $YEAR$<!-- </copy> --></td><td align="center">$POWERED_BY$</td><td width="30"><img src="http://www.narodnyi-yurist.ru/bez_imeni-10.gif" border="0"></td></tr>
</table>
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 216 | 23:00:32
Berecunda, Шапка
Код
<table style="background: url('http://www.narodnyi-yurist.ru/shapka.gif'); border: 0; border-collapse: collapse; width: 100%;">  
<tr>  
<td style="text-align: center; vertical-align: middle; padding: 10px;"><img  alt="" style="width: 150px;" src="http://www.narodnyi-yurist.ru/logotip.gif"></td>  
<td style="text-align: center; font: bold 26pt/20pt Monotype Corsiva; color: #f00;">
Бесплатные юридические консультации<br>
Прием ведется по предварительной записи!<br>
<span style="font-size: 12pt;">8 (496) 416-17-88, 8 (968) 454-06-82</span>
</td>  
<td style="text-align: right ; vertical-align: bottom;">$WDAY$, $DATE$, $TIME$ <br>
<span style="color: rgb(99,201,0)"> Вы вошли как <a title="Мой профиль" href="$PERSONAL_PAGE_LINK$"><b>$USERNAME$</b></a> | Группа "<span style="text-decoration: underline;">$USER_GROUP$</span>"<br><a title="Главная" href="$HOME_PAGE_LINK$">Главная</a> | <a title="Мой профиль" href="$PERSONAL_PAGE_LINK$">Мой профиль</a> | <a title="Регистрация" href="$REGISTER_LINK$">Регистрация</a> | <a title="Выход" href="$LOGOUT_LINK$">Выход</a> | <a title="Вход" href="$LOGIN_LINK$">Вход</a></span>
</td>  
</tr>  
</table>

Berecunda
Сообщений: 31
Репутация: 20

Сообщение # 217 | 17:13:13
Miss_Esq, Добрый день! Шапку изменила, подскажите как добавить электронную почту, и еще смотрю снова через планшет, надписи не выползают, а вот правый верхний угол в шапке так и остался зеленым
Сообщение отредактировал Berecunda - Среда, 12 Мар 2014, 17:20:38
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 218 | 19:53:36
Berecunda
Цитата
остался зеленым
,

Попробуйте вместо этого

<table style="background: url('http://www.narodnyi-yurist.ru/shapka.gif'); border: 0; border-collapse: collapse; width: 100%;">

написать так

<table style="background-color: #ffcc00; border: 0; border-collapse: collapse; width: 100%;">
Цитата
подскажите как добавить электронную почту
Ссылку на почтовую форму поставить ...

Сообщение отредактировал Miss_Esq - Среда, 12 Мар 2014, 19:54:51
a1-vip
Сообщений: 8
Репутация: 10

Сообщение # 219 | 22:59:08
Помогите исправить проблему !!!

http://a1-vip.ru/shop....-iphone

Смещение всего сайта вправо и чем дальше по категориям выбираю тем смещение больше становится, а на главной странице вроде норм !!!
Прикрепления: 6656707.png (175.0 Kb)

А1-ВИП Интернет-магазин товаров и услуг
www.a1-vip.ru
y4astneg
Сообщений: 5
Репутация: 0

Сообщение # 220 | 02:39:40
Доброй ночи кто не спит!.
Такая беда приключилась. при попытке открыть фото в полный вид (нажатии на само фото) оно криво открывается. как и где исправить???
при попытке прокрутить полосой прокрутки фото остается в мертвом положении на "своем" месте .
фото люка прилагается ниже!!!

Добавлено (01 Июн 2014, 02:39:40)
---------------------------------------------
сайт для проверки о чем я говорю http://crimea-gbo.ucoz.ua/photo/toyota/4

не пинайте уж ради бога если не туда написал, поиском пользовался)))

Прикрепления: 3377954.jpg (225.6 Kb)
Germa
Сообщений: 1
Репутация: 0

Сообщение # 221 | 11:49:28
Доброго времени суток. Никак не могу нормально поставить картинку с левой стороны от названия(чтоб вписывалась в очерченный белым квадрат). Раньше там стояло другое изображение, но после замены поставить новое так же не получается. Помогите пожалуйста

http://hellheim.ucoz.ru

Добавлено (24 Июл 2014, 11:49:28)
---------------------------------------------
Все, отбой тревоги. Проблему решил банально сделав черный фон под картинкой

саня-десант
Сообщений: 64
Репутация: -28
Уровень замечаний:

Сообщение # 222 | 20:30:13
Шапка сайта при разном разрешение экрана растягивается, как сделать чтоб она была одного размера и не тянулась :
html:
<body style="background:url('шапка')0% 0%/cover no-repeat #000000;">

Раша
Сообщений: 13
Репутация: 0

Сообщение # 223 | 09:41:38
Пользователь жалуется, что при размещении топика на форуме сайта http://obkon.ucoz.com/forum/59-1566-1 текст размещается в предыдущем им размещённом окне со словами "Добавлено (13.09.2014, 08:42) Т.е. новый топик автоматически перебрасывается в окно ранее открытое им. (т.е. новое окно не открывается).
--------------------------------------------- "
Подскажите что сделать (перестроить)?
Что то необычное - ранее такого не наблюдалось.
arturgub10202
Сообщений: 49
Репутация: 0

Сообщение # 224 | 18:19:37
У меня проблема такая у меня на главной странице когда я нажимаю на матерьял читать дальше у меня картинка котороя в матерьяле растягиваеться на весь экран как мне сделать чтоб она нормальная стала ну типа ато размер
arturgub10202
Сообщений: 49
Репутация: 0

Сообщение # 225 | 19:55:09
вот скрин

Добавлено (22 Сен 2014, 19:55:09)
---------------------------------------------
http://gamertracker.ucoz.org/news/tropico_5_v_1_06_2014_pc_124_steam_rip_ot_r_g_steamgames/2014-09-22-13 ссылка на проблему

Прикрепления: 2714233.jpg (322.2 Kb)
Сообщество uCoz » Мастерская uCoz » Дизайн: управление шаблонами » Подстройка размера картинки под разрешение экрана (Подстройка размера изображения под разрешение экрана)
Поиск: