Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 04.01.2011, 21:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от monolithed
я не являюсь сторонником применения хаков (но без них даже сами мелокомягкие).
а к чему эта ссылка?

Сообщение от monolithed
Сходу пример привести не могу, но по памяти могу сказать, что бывают различия в размерах элеметов, отступов (особенно в формах это наблюдается). Есть также нюансы с позиционироаванием, использованием а в качестве едениц измерения процентов, с таблицами есть косяки.
все это есть, просто мне как-то не приходилось их использовать. Это, в общем-то, не аргумент. Просто интересно, когда без этого не обойтись. Не, ну я представляю себе пару вариантов, типа "валидатор - истина в последней инстанции" или "я сделаю это списком, no matter what it takes" или "websites need to look exactly the same in every browser" или "блочная верстка - наше все" или, в случае верстки, при написании какого-нибудь css-фреймворка. Но, как по мне, это все надуманные цели

Последний раз редактировалось x-yuri, 04.01.2011 в 21:32.
Ответить с цитированием
  #32 (permalink)  
Старый 04.01.2011, 22:31
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от x-yuri
а к чему эта ссылка?
она ведет на сайт мелокомягких, где можно заглянуть в код и увидеть, что они сами же используют хаки.

Последний раз редактировалось monolithed, 04.01.2011 в 22:36.
Ответить с цитированием
  #33 (permalink)  
Старый 04.01.2011, 23:53
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от monolithed
она ведет на сайт мелокомягких, где можно заглянуть в код и увидеть, что они сами же используют хаки.
это не аргумент
Ответить с цитированием
  #34 (permalink)  
Старый 05.01.2011, 00:58
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Написать серьёзный проект не уделяя особого внимания ie6 - это фантастика. В нем слишком много документированных багов. Какой бы чудесный и правильный код бы вы не писали.

Нет, наверное можно в каждом конкретном случае вместо простых решений заворачивать html и css конструкции на десятки кб - чтобы и в ие и в браузерах всё работало одинаково, но на деле удобнее для браузеров сделать простой и правильный вариант, а для ослика хак.

Последний раз редактировалось Aetae, 05.01.2011 в 01:05.
Ответить с цитированием
  #35 (permalink)  
Старый 05.01.2011, 01:37
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

я не говорил про "не уделяя особого внимания ie6". В первую очередь мне непонятно, зачем выносить стили для ie в отдельный файл. Я предположил, что иначе прийдется использовать хаки. Я не помню, чтобы мне это когда-либо пригодилось (наверное, все дело в том, что я не участвовал в серьезных проектах), поэтому мне и интересно, что такое должен хотеть дизайнер, чтобы понадобились хаки. Кроме того, абстрактно на эту тему можно долго спорить и все будут правы, поэтому я предложил привести реальные примеры...

по поводу серьезных проектов... microsoft.com - серьезный проект? Они забили на ie6

Сообщение от Aetae
Нет, наверное можно в каждом конкретном случае вместо простых решений заворачивать html и css конструкции на десятки кб - чтобы и в ие и в браузерах всё работало одинаково, но на деле удобнее для браузеров сделать простой и правильный вариант, а для ослика хак.
вот именно поэтому я и говорил про реальные примеры. Да, я могу ответить, что вместо того, чтобы писать код-который-хрен-кто-поймет, лучше в каждом конкретном случае применить простое решение проблемы. Но без примеров можно спорить очень долго. Как, однажды, сказал один персонаж, "оба правы, но спорить будут долго..."
Ответить с цитированием
  #36 (permalink)  
Старый 05.01.2011, 11:26
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

x-yuri
На самом деле, без хаков можно обойтись если выносить стили для IE в отдельные файлы (я выбрал этот подход), если конечно не считать это тоже хаком...
Ответить с цитированием
  #37 (permalink)  
Старый 05.01.2011, 14:36
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от monolithed
На самом деле, без хаков можно обойтись если выносить стили для IE в отдельные файлы (я выбрал этот подход), если конечно не считать это тоже хаком...


а подход, да, лучше, если использовать его, чтобы фиксить старые версии, т.е. if lt/lte IE n
Ответить с цитированием
  #38 (permalink)  
Старый 09.01.2011, 01:58
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от monolithed Посмотреть сообщение
видимо потому, что безграмотная верстка
<style type="text/css">
#wrap, #content, ul, ul li {
    overflow: hidden;
    position: relative;
}

#wrap {
    background: gray; 
    width: 208px;
    height: auto;
}

#content {
    background: red;
    margin: 20px auto;
    width: 100px;
    height: 50px;
}

ul, ul li {
    margin: 0px;
    padding: 0px;
}

ul {
    width: 208px;
    height: 20px;
}

ul li {
    background: #35C;
    border: solid 1px;
    border-color: #46F #238 #238 #46F;
    display: block;
    list-style: none; 
    text-align: center;
    float: left;
    width: 50px;
}

ul li a {
    color: #fff;
    font: 300 14px/14px arial, tahoma, verdana, sans-serif;
    text-decoration: none;
}
</style>
вот здесь вопрос возник:
есть такие статейки по верстке (хорошие):
http://softwaremaniacs.org/blog/2005...-layout-float/
там есть цитата:
Цитата:
блоки, идущие за float'ами перестают эти float'ы замечать и подтягиваются вверх. Более того, сам контейнер, в котором float'ы находятся, тоже перестает их замечать и float'нутые блоки проваливаются через низ контейнера, если он заканичвается раньше.
и решение:
Цитата:
Для устранения подтягивания блоков существует специальное свойство — clear. Оно заставляет элемент сдвигаться вниз, пока сбоку от него не останется float'ов.
Но это не решает другой проблемы: того, что float'ы проваливаются через "main", и тот схлопывается, в результате чего не видно колоночного фона, который ему назначен. Проваливание можно победить двумя способами.

Можно явно спозиционировать контейнер каким-нибудь образом. Насколько я понимаю логику спецификации, поведение проваливания считается логичным только в простом потоке. В других случаях оно только мешает. И так оно и есть, как мы убедились. То есть достаточно назначить контейнеру например position:absolute или float:left и ничего не будет проваливается, контейнер будет полностью заключать в себя и текст, и float'ы. В нашем случае (и в большинстве случаев, кстати) это решение вполне подойдет.

Другой интересный способ связан с побочным эффектом свойства overflow.
Так вот побочный эффект заключается в том, что если контейнеру поставить любой overflow, кроме обычного visible, он вдруг растягивается и заключает в себя float'ы, которые в нем сидят, устраняя проваливание.


так вот,
у нас есть контейнер ul, унего в стилях position:relative и
overflow:hidden,
если я удаляю эти стили ему, то floatнутые блочные li (у которых по умолчанию высота чуть больше высоты ul) "заканчиваются" чуть-чуть ниже ulа(через файрбаг посмотрел, на полосочку маленькую ниже), т.е. "проваливаются через низ контейнера"

если ставим position:relative и overflow:hidden
то, как я понимаю, благодаря поцизионированию ul, решается проблема "проваливания", а overflow уже просто обрубает то, что выходит за пределы контейнера

но если мы ставим просто overflow:hidden без position:relative, то контейнер, по идее, должен растянуться, и заключить в себя floatы,
а вместо этого он обрубает лишнее у floatов

и если мы отдельно ставим position:relative, то тоже самое, по идее мы позиционируем контейнер => "проваливание" должно исчезнуть, но опять получается, что ul чуть чуть уже, чем li.

Последний раз редактировалось Shaci, 09.01.2011 в 02:01.
Ответить с цитированием
  #39 (permalink)  
Старый 09.01.2011, 02:26
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

<telepath-mode>hasLayout что ли?</telepath-mode>
<!DOCTYPE HTML>
<html>
  <head>   
  </head>
  <body>   

<div style="
    overflow:hidden;
    background: green;
    zoom: 1;
">
<div style="
    width: 50px;
    height: 50px;
    background: red;
    float: left;
"></div>
</div>

  </body>
</html>
Ответить с цитированием
  #40 (permalink)  
Старый 09.01.2011, 13:10
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от monolithed Посмотреть сообщение
видимо потому, что безграмотная верстка (без обид, но ошибки совсем детские):


<!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" dir="ltr" lang="ru">
<head> 

<style type="text/css">
#wrap, #content, ul, ul li {
    overflow: hidden;
    position: relative;
}

#wrap {
    background: gray; 
    width: 208px;
    height: auto;
}

#content {
    background: red;
    margin: 20px auto;
    width: 100px;
    height: 50px;
}

ul, ul li {
    margin: 0px;
    padding: 0px;
}

ul {
    width: 208px;
    height: 20px;
}

ul li {
    background: #35C;
    border: solid 1px;
    border-color: #46F #238 #238 #46F;
    display: block;
    list-style: none; 
    text-align: center;
    float: left;
    width: 50px;
}

ul li a {
    color: #fff;
    font: 300 14px/14px arial, tahoma, verdana, sans-serif;
    text-decoration: none;
}
</style>
</head> 
<body> 
    <div id="wrap"> 
        <ul> 
            <li><a href="#">1</a></li> 
            <li><a href="#">2</a></li> 
            <li><a href="#">3</a></li> 
            <li><a href="#">4</a></li> 
        </ul> 
        <div id="content"></div> 
    </div>     
  </body> 
</html>
я вот этот пример имел ввиду, и его поведение при
#wrap, #content, ul, ul li {
    overflow: hidden;
    position: relative;
}

и при
#wrap, #content, ul li {
    overflow: hidden;
    position: relative;
}

и
#wrap, #content, ul li {
    overflow: hidden;
    position: relative;
}

ul {
    overflow:hidden;
}

или
#wrap, #content, ul li {
    overflow: hidden;
    position: relative;
}

ul {
    position:relative;
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по учебнику Invis1ble Сайт Javascript.ru 12 21.03.2011 20:06
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
Вопрос по верстке Riim (X)HTML/CSS 6 21.06.2010 14:51
Chrome - вопрос по верстке. constantant Opera, Safari и др. 1 22.02.2010 21:58
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47