Модераторы: Illuminaty

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Продвинутый вопрос, Великая проблема 
:(
    Опции темы
AN_Reise
  Дата 12.7.2007, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Профессионалы, можете объяснить природу появления съезжаний элементов на разных моделях браузеров, как с этим бороться?

PM MAIL   Вверх
WebDisaster
Дата 12.7.2007, 21:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



Пока профессионалы спят... маненько пошалю ;)

Если говорить о природе явления, то состоит она в том, что разные браузеры 

1. имеют разные движки, которые 
2. написаны разработчиками, по-разному интерпретирующими стандарты (особенно преуспели в этом ребята из M$.)
3. имеют разную кривизну в собственном коде (одни загнуты вправо, другие - влево smile


Как с этим бороться - вопрос отдельный. И довольно сложный.

1. На старые кривые браузеры вообще забить. Что относить к понятию "старый" - решать придётся индивидуально. Для Оперы и ФайрФокса, ИМХО, стоит ориентировать на самые последние версии и билды. Используют их, как правило, люди достаточно "технически продвинутые" и следящие за обновлениями программ (которые, к тому же, совершенно бесплатны)

2. Писать код с максимально возможным соблюдением стандартов w3c, избегая невалидных хаков. Это, по крайней мере, минимизирует проблемы при появлении новых браузеров (к M$/IE, пожалуй, это относится с большой натяжкой)

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

Моя ИМХА так думает.
PM MAIL   Вверх
AN_Reise
  Дата 14.7.2007, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Да, ответ неутешительный... это же какой геморрой  smile 
Особенно надоедают съезжания элементов, каждый браузер делает свои отступы, границы...

Вот - для конкретики см. здесь
Может на этом примере мне объяснить подробнее? И по возможности помочь с кодом, мне здесь как раз и нужно, чтобы на всех браузерах эта страничка смотрелась идентично.

Хм... css хаки, об этом я не слышал... можете ссылки кинете, если таковые имеются?

Это сообщение отредактировал(а) AN_Reise - 14.7.2007, 06:27
PM MAIL   Вверх
WebDisaster
Дата 14.7.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



1. Чтобы обнулить все "заводские настройки" браузеров есть специальные средства.

2. Какие конкретно хаки интересуют? Хорошие подборки самых разнообразных хаков, предназначенных для разделения бразуеров, есть здесь, здесь и т.д. А вообще, можно погуглить с запросом css hacks browser и чтиво на ближайшую пару месяцев обеспечено.

3. По раскладке, которую Вы хотите сделать, очень мало информации. Нужно видеть макет и подробнейшее ТЗ:  что "резинится", что "не резинится", что и где выводится и т.д. и т.п. Лично меня ничто не выводит из равновесия так, как необходимость десять раз ездить по одному месту, переделывая вёрстку под каждый новый "бзик". Один из главных принципов сбережения собственных нервов при работе - верстать только после того, как железно согласован макет. Любые последующие изменения - за отдельные деньги. Желательно большие, чтобы желание "бзикать" исчезло сразу  ;)

Да, а в качестве основы для своей страницы посмотрите следующий пример (фоновый цвет только для того, чтобы были видны div'ы):

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<style type="text/css">
<!-- 
div {
    width: 33%;
    float: left;
}
#first {
    background-color: #cff;
}
#second {
    background-color:#99F;
}
#third {
background-color:#90F;
}
-->
</style>

<body>
<div id="first">Первая колонка</div><div id="second">Вторая колонка</div><div id="third">третья колонка</div>
</body>
</html>


Это сообщение отредактировал(а) WebDisaster - 14.7.2007, 17:45
PM MAIL   Вверх
AN_Reise
  Дата 16.7.2007, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Хех, не дам вам расслабиться... У меня проблема, от который я могу прямо-таки умереть
Вообщем я типа немного дизайнер наголову ну и это страничку сделал
в ней есть такая картинка веселая "информация" и над ней осколок компаса торчик
и вот, на всех браузерах они смотрятся слитно вместе, а на осле раздвигаются.. чегоше я не делал и размеры установил, придавление, таблицы аккуратно сделал (или нет), вообщем вот - смотрите, а то я и правду умру...

http://an-reise2.narod.ru
PM MAIL   Вверх
AN_Reise
  Дата 17.7.2007, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.7.2007

Репутация: нет
Всего: нет



Все работает, обновил версии браузеров, работает  smile 

Это сообщение отредактировал(а) AN_Reise - 20.7.2007, 06:28
PM MAIL   Вверх
liliana2
Дата 22.11.2007, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Хочу задать конкретный вопрос, 
В общем есть блок:

http://liliana2.freetzi.com/index12.htm

который вместе с дочерними элементами позиционируется по центру браузера
Код

#contents{
    position: relative;
    width: 800px;
    height: 500px;
    display: table;
    margin: 0 auto;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;}

#contentsie{
    position: relative;
    width: 800px;
    height: 500px;
    display: table;
    margin: 0 auto 0 100px;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;}

но в ие и в файерфоксе, макетик уезжает влево, просьба
подскажите (а лучше покажите) какими конкретными средствами можно это сделать
если кому не трудно можно пример кода или как это называют условного комментария.
Нашла условие при котором все красиво, но не уверена что правильном месте егопоставила:
Код
<div id="contents">
<!--[if IE]>id="contentsie"<![endif]-->
  <div id="poet">
  <p align="center" style="font-size:14px; font-weight:bold; color:#000000; margin-top:7px;">
    
    </p>
  </p> Контент
</div>

или вот так, но тоже не работает:
Код
<div id="contents">
<!--[if IE]><style type="text/css">.contentsie {margin: 0 auto 0 100px;}</style><![endif]-->
  <div id="poet">
  <p align="center" style="font-size:14px; font-weight:bold; color:#000000; margin-top:7px;">
    
    </p>
  </p> Контент
</div>



Это сообщение отредактировал(а) liliana2 - 22.11.2007, 09:30
PM MAIL ICQ   Вверх
WebDisaster
Дата 22.11.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



Я не понял, зачем Вам там

#contentsie{display: table;}

ИМХО, если убрать, всё работает нормально.

PM MAIL   Вверх
liliana2
Дата 22.11.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Если убрать, не сохраняется центровка при изменении разрешения экрана (в частности масштаб в опере) 

Ой smile  и правда работает... smile 
а раньше не работало... теперь только ie выбивается... но там надо комментом маргин побольше просто вставить, да? smile 

Это сообщение отредактировал(а) liliana2 - 22.11.2007, 11:28
PM MAIL ICQ   Вверх
WebDisaster
Дата 22.11.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



Какая версия IE? Смотрел в 6-ой проблемы не видел. Семёрки сейчас под рукой нет.
PM MAIL   Вверх
liliana2
Дата 22.11.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



Код

<div id="contents">
<!--[if IE]>   
.contents {margin: 0 auto 0 100px;}
<![endif]--> 

<div>вложенный блок1</div>  
<div>вложенный блок2</div>  
<div>вложенный блок3</div>  
  </div>

так должно быть? чтобы в ие, основной блок был тоже по центру?
PM MAIL ICQ   Вверх
WebDisaster
Дата 22.11.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



Повторю ещё раз: в IE6 я проблемы не вижу. Всё и так "по центру". Если вопрос касается синтаксиса условных комментариев, тогда -- нет, неправильно.

1. Стили должны (по стандарту) подгружаться между <head> и </head> (если это не инлайн-стили).
Если Вы хотите определить стиль для всех версий IE, тогда правильно так:

Код

<head>
...
<!--[if IE]>
     <link href="pato/to/file/style.css" rel="stylesheet" type="text/css"/>
<![endif]-->

</head>


А уже внури файла style.css пишете .contents {margin: 0 auto 0 100px;}

Причём, если это идет "переопределение" ранее назначенного стиля, которое должно действовать только для IE (всех версий) и игнорироваться другими браузерами, тогда этот файл должен загружаться последним

Следующий вариант (тоже последний из загружаемых стилей, если идёт переопределение для всех версий IE): 

Код

<head>
...
  <!--[if IE]>
     <style type="text/css">
          .contents {margin: 0 auto 0 100px;}
     </style>
  <![endif]-->
</head>


Это сообщение отредактировал(а) WebDisaster - 22.11.2007, 12:20
PM MAIL   Вверх
liliana2
Дата 22.11.2007, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



В том то и дело что в 6 ие все приклеено к левому краю
Хотя спасибо что подсказали где это прописывать
в ие 7 все работает нормально
я сделала так:
Код

<head>

 <!--[if lt IE 7]>
     <style type="text/css">
          .contents {    margin: 0 auto 0 100px;
    float:center;
}
     </style>
  <![endif]-->

  </head>



Это сообщение отредактировал(а) liliana2 - 22.11.2007, 12:30
PM MAIL ICQ   Вверх
WebDisaster
Дата 22.11.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 406
Регистрация: 22.6.2007

Репутация: 17
Всего: 19



Мама...  А что такое 

Цитата(liliana2 @  22.11.2007,  12:24 Найти цитируемый пост)
float:center;


*** пошёл покурить ***

PM MAIL   Вверх
liliana2
Дата 22.11.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 178
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



ой... блин.. попутала немного, мозги кипят, ну у меня почему то даже при таком правильно поставленном синтаксисе и расположении ничего не выходит все равно приклеивается к левому краю, если ставлю флоат райт, приклеивается вправо (*паника* *что же мне делать?!!!*)
Есть еще варианты, примеры, как сделать в ие меньше 7-го нормальную центровку?

Это сообщение отредактировал(а) liliana2 - 22.11.2007, 12:44
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.