Модератор форума: Yuri_G  
Оптимизация дизайна под разные браузеры
Модератор форума
Сообщение # 1 | 22:12:11
Зачем нужен "правильный" HTML-код?

HTML - это специальный язык разметки для веб-страниц. Этот язык стандартизован. Значения каждого тега строго определены. Каждый тег имеет определенные атрибуты. HTML-код страницы интерпретируется браузерами и переводится в изображение веб-страницы, которое видит пользователь.

Теперь представьте, что HTML код страницы содержит ошибки (не соответствует стандарту). Что в этом случае делать браузеру?

Самый простой вариант - это вывести на экран сообщение об ошибке и все. Однако пользователь вряд ли будет рад увидеть вместо страницы, на которой пропущен закрывающийся тег, сообщение об ошибке. Поэтому создатели браузеров пошли другим путем. Браузеры пытаются (в меру своей интеллектуальности) "исправить" некорректный HTML-код.

Вот тут и кроется проблема. Каждый браузер имеет свои правила, по которым он будет исправлять HTML ошибки на веб-страницах. Поэтому, если на странице есть ошибки, то существует большая вероятность, что данная страница в разных браузерах будет выглядеть по-разному. Более того, если даже он сейчас выглядит одинаково во всех браузерах, это не значит, что так будет всегда. С выходом новой версии какого-либо браузера коррекция HTML ошибок может быть изменена. А вот следование стандартам изменено вряд ли будет.

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

В общем, бывает когда есть сайт, есть дизайн, но вот проблема - неизвестно, как он выглядит на других браузерах. Те, кто попроще, просто отписываются, что проверил на таком-то браузере, на других - не знаю.

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

Проблема с отображением тега HR

Советую вместо
Code
<hr>

который красиво может выглядить только в ИЕ использовать цветную однопиксельную картинку:
Code
<img src="путь до картинки/hr.gif" class="hr">

и прописать ее в стилях:
Code
.hr {height: 1px; width: 100%; margin-top: 5px; margin-bottom: 5px;}

© Andre

Разное понимание CSS браузреами типа IE и Opera (там же Mozilla и прочие)

Проблема в следующем: ИЕ и Опера по разному принимают стили и пересчитывают ее на свой лад. Так расстояние между тегами H1 и P разное и поэтому текст по разному смотрится. Для решения этой проблемы надо использовать дополнительную таблицу стилей под IE, поставить там в ручную padding и margin, или другие атрибуты (в зависиости от ситуации) и прописать ссылку в html, заключив ее в специальные теги.

Code
<html>
<head>
<title>Максим Пелевин - Главная страница</title>
<link href="http://maxpelevin.3dn.ru/_st/my.css" rel="StyleSheet" type="text/css">
                  <!--[if IE]><link rel="stylesheet" type="text/css" href="/img/ie7.css" /><![endif]-->
<script type="text/javascript" src="/img/global.js"></script>
</head>

Надеюсь понятно объяснил.

© Русак

Решаем проблему с прозрачностью картинок PNG в ИЕ: http://www.tigir.com/alpha_png.htm
Real-san
Сообщений: 17
Репутация: 0

Сообщение # 241 | 16:43:33
Miss_Esq, он выглядит не просто по разному, там именно какое-то непониманик со стороны оперы.
В свойствах основного блока есть строчка
margin:105px auto 10px;
Во всех браузах, кроме оперы выглядит так как и должно


А вот опера


Если написать так margin:auto;
В целом становится нормально, но красота теряется да и художнику который обоину фоновую делал будет обидна потеря пагоды во всех обозвевателях. ДА и по задумке там должен быть отступ.

Quote (Miss_Esq)
Во всяком случае одинакового отображения для Opera , FireFox , Google Chrome и IE 8 - 9 нужно добиваться вёрсткой HTML , а не отдельными метатегами , условными операторами или ещё чем ... Применение костылей для конкретных версий конкретных обозревателей это тупик ...

Это-то я понимаю, но хотя бы как временное средство они подходят, чтобы люди могли пользоваться, а я тем временем искала истинные пути решение
Прикрепления: 6012701.png (410.3 Kb) · 6914748.png (141.5 Kb)
Сообщение отредактировал Real-san - Пятница, 30 Дек 2011, 16:50:03
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 242 | 17:47:46
Real-san,
Quote
margin:105px auto 10px;
Ну а как вы это переведёте на слова ??

margin: 105px auto; - это например , свеху и снизу по 105 по бокам авто

margin: 105px auto 10px auto; - сверху 105 по бокам авто , снизу 10

margin: 105px; - со всех сторон по 105

А ваш как прочитать ??? margin: 105px auto 0px auto;

Сообщение отредактировал Miss_Esq - Пятница, 30 Дек 2011, 18:10:38
Real-san
Сообщений: 17
Репутация: 0

Сообщение # 243 | 18:25:04
Miss_Esq, ну как говорится "Я не волшебник, я только учусь" smile
ПЛюс настраивала в Дримвевере, он ошибок не показал, по справочнику поняла что так писать тоже возможно.
Да вот еще что странное заметила, если в Дримвевере, даже при старом написании проблемной строчки, нажать кномку Просмотр и отладка в браузере и выбрать Оперу, то все отображается как надо. Но в живом уже так сказать виде (т.е в нете), почему то нет.
Сообщение отредактировал Real-san - Пятница, 30 Дек 2011, 21:20:10
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 244 | 22:07:55
Real-san, Попробуйте Doctype в общих настройках прописать ... В случае с IE это могло бы помочь а вот с Opera ...

Real-san
Сообщений: 17
Репутация: 0

Сообщение # 245 | 23:29:35
Miss_Esq, он там прописан, уже месяц или два точно. А в купе с вот этим
Quote (Real-san)
Да вот еще что странное заметила, если в Дримвевере, даже при старом написании проблемной строчки, нажать кномку Просмотр и отладка в браузере и выбрать Оперу, то все отображается как надо. Но в живом уже так сказать виде (т.е в нете), почему то нет.

оно меня вообще конкретно сбивает с толку...
Сообщение отредактировал Real-san - Пятница, 30 Дек 2011, 23:33:46
meys
Сообщений: 32
Репутация: 0

Сообщение # 246 | 23:43:47
Здравствуйте! Помогите пожалуйста решить мою проблему. Дело в том, что в браузере Опера. Сайт http://залазна.рф
1. Не создаются папки и не удаляются файлы в файловом менеджере.
2. Не отправляются сообщения в гостевой книге (при нажатии на кнопку отправить пишет "Идет передача данных..." бесконечно и ни чего не происходит).

Пробовал частить кэш - не помогло.

Сообщение отредактировал meys - Пятница, 30 Дек 2011, 23:52:03
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 247 | 00:46:17
meys,
Quote
и ни чего не происходит
Это не только в Opera но и в IE 9 ... Со всеми обозревателями смотрели ??? wink

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

Сообщение # 248 | 12:58:04
Miss_Esq, Да Вы правы. в IE9 тоже такая же ситуация.
В Chrome и FF данной проблемы нет.
Можно это как то исправить?

HavingingWorld
Сообщений: 69
Репутация: 19

Сообщение # 249 | 23:27:17
Помогите, сделал классное меню в дримвайфере,
по возможности оптимизировал под ie скриптом
но всё равно края слоёв в ie цветными линиями обведены
#1 как решить эту проблему в самом дримвайфере, тоесть что бы можно было подредактировать опираясь на различные браузеры
#2 кому не трудно подредактируйте под современные браузеры, а то нормального материала по данному вопросу не могу найти
Code
<style type="text/css">
#apDiv1 {
  position:absolute;
  width:61px;
  height:85px;
  z-index:1;
  margin-left:12;
  margin-top:-44;
}
#apDiv2 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:73;
  margin-top:-44;
}
#apDiv3 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:174;
  margin-top:-44;
}
#apDiv4 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:241;
  margin-top:-44;
}
#apDiv5 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:356;
  margin-top:-44;
}
#apDiv6 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:417;
  margin-top:-44;
}
#apDiv7 {
  position:absolute;
  width:65px;
  height:94px;
  z-index:2;
  margin-left:475;
  margin-top:-44;
}
</style>

<script type="text/javascript">
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
  var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>

<body onload="MM_preloadImages('http://1415926535.moy.su/images/prozr.gif')"><table width="550" height="120" border="0" background="http://1415926535.moy.su/images/fon_menu.jpg">
  <tr>
  <td><div id="apDiv1"><a href="$HOME_PAGE_LINK$" title="Главная Brute Force"><img src="http://1415926535.moy.su/images/glavnaya.jpg" alt="Главная" width="59" height="89" id="Image1" onmouseover="MM_swapImage('Image1','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()" /></a></div>
  <div id="apDiv2"><a href="$HOME_PAGE_LINK$" title="Закладки"><img src="http://1415926535.moy.su/images/favorit.jpg" alt="Главная" width="59" height="89" id="Image2" onmouseover="MM_swapImage('Image2','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div>
  <div id="apDiv3"><a href="$PM_URL$" title="<?if($UNREAD_PM$)?>Новые сообщения:$UNREAD_PM$<?else?>Входящии сообщения<?endif?>"><img src="http://hw.ucoz.net/images/messg.jpg" alt="Сообщения пользователя сайта Brute Force" width="69" height="89" id="Image3" onmouseover="MM_swapImage('Image3','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div>
  <div id="apDiv4"><a href="$PERSONAL_PAGE_LINK$" title="Профиль $USERNAME$"><img src="http://1415926535.moy.su/images/profil.jpg" alt="Профиль пользователя на Brute Force" width="59" height="89" id="Image4" onmouseover="MM_swapImage('Image4','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div>
  <div id="apDiv5"><a href="$LOGOUT_LINK$" title="Покинуть профиль $USERNAME$"><img src="http://1415926535.moy.su/images/exit.jpg" alt="Выйти с Брутфорсологии" width="59" height="89" id="Image5" onmouseover="MM_swapImage('Image5','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div>
  <div id="apDiv6"><a href="$LOGIN_LINK$" title="Ввести логин и пароль"><img src="http://1415926535.moy.su/images/vxod.jpg" alt="Вход на Brute Force" width="59" height="89" id="Image6" onmouseover="MM_swapImage('Image6','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div>
  <div id="apDiv7"><a href="$REGISTER_LINK$" title="Обязательная регистрация"><img src="http://1415926535.moy.su/images/reg.jpg" alt="Brute Force регистрация" width="59" height="89" id="Image7" onmouseover="MM_swapImage('Image7','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()"/></a></div></td>
  </tr>
</table>

Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 250 | 23:42:16
HavingingWorld, Если это у вас замещение изображений
Quote
<div id="apDiv1"><a href="$HOME_PAGE_LINK$" title="Главная Brute Force"><img src="http://1415926535.moy.su/images/glavnaya.jpg" alt="Главная" width="59" height="89" id="Image1" onmouseover="MM_swapImage('Image1','','http://1415926535.moy.su/images/prozr.gif',1)" onmouseout="MM_swapImgRestore()" ></a></div>

То делается это так без применения скритов ( тот что у вас в заголовке страницы ... )
Quote
<div id="apDiv1"><a href="$HOME_PAGE_LINK$" title="Главная Brute Force">
<img id="pic01" src="http://1415926535.moy.su/images/glavnaya.jpg" alt="Главная" style="display: block; width: 59px; height: 89px;" onmouseover="document.getElementById('pic01').style.display='none';document.getElementById('pic02').style.display='block';">
<img id="pic02" src="http://1415926535.moy.su/images/prozr.gif" alt="Главная" style="display: none; width: 59px; height: 89px;" onmouseout="document.getElementById('pic02').style.display='none';document.getElementById('pic01').style.display='block';"></a></div>

БЕЗ этого

Сообщение отредактировал Miss_Esq - Вторник, 03 Янв 2012, 23:58:08
DarkAp
Сообщений: 21
Репутация: 1

Сообщение # 251 | 02:40:44
Здравствуйте! А есть ли возможность сделать под браузер IE, отдельное меню для сайта, например:

<?if($IE$)?>
Меню в IE
<?else?>
Меню в остальных браузерах
<?endif?>

Есть ли код If, отдельно для браузера IE?

Нашел решение, пару страниц назад написали:

<?if($USER_AGENT$='ie')?>
В IE
<?else?>
В любом другом
<?endif?>
Сообщение отредактировал DarkAp - Среда, 04 Янв 2012, 03:01:00
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 252 | 03:25:33
DarkAp,
Quote
А есть ли возможность сделать под браузер IE, отдельное меню для сайта,
biggrin Лучше не стоит этого делать , если заточите как вы предполагаете под IE , на самом деле в тех же IE разных версий будет так же различаться как у вас например различается то из за кторорого вы решили сделпть для IE отдельное меню .. Потом всё равно снесёте ... Делайте одно но нормальное меню для всех обозревателей , это вполне реально выполнимая задача ...

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

Сообщение # 253 | 07:14:49
fflesh, скажи плизз а где это писать не понел cry

Начинающий помощник Ucoz.
Одна единственная жизнь и та лишённая достатка проходит нас, толкая, в низ и исчезая без остатка!
http://kinosayt2012.ucoz.ru/
http://baga1996.ucoz.ru
meys
Сообщений: 32
Репутация: 0

Сообщение # 254 | 11:00:06
Miss_Esq,
Quote
Идет передача данных..." бесконечно и ни чего не происходит).

Вы не ответили это можно как-нибудь исправить? Или это не у меня одного проблема такая?

HavingingWorld
Сообщений: 69
Репутация: 19

Сообщение # 255 | 12:19:19
Miss_Esq, Спасибо, так всё таки как насчёт слоев, а именно их синей обводке в IE

Поиск:
Telegram
Будьте в курсе всех обновлений: подпишитесь на наш официальный Telegram-канал uCoz и задавайте вопросы в чате сообщества!