Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 11 Февраль, 2012, 12:13:57

Страниц: [1] 2 3
Печать
Автор Тема: Killich's Верстко Hacks  (Прочитано 4315 раз)
0 Пользователей и 1 Гость смотрят эту тему.
killich    ↓ 
18 Март, 2009, 04:18:55
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 20
Сообщений: 275
Сила слова: 7.27

Илья Зайко Зыкин постит свои любимые верстко хаки:
 
Ничего никому пояснять не буду.
Поверьте - кому надо - тот поймет:
(да родные пыхо-братья - можете ох$еть от моего альтруизма и доброты, такого хер где найдете в одном месте)
 
Данный пост создаю для себя - где запостю все те хаки верстки с которыми приходилось столкнуться.
Если буду далеко от рабочего места - всегда смогу найти тут - да и вам глядишь пригодится
 
1.Всегда использовать reset.css
 
РЕСЕТ - сбрасывает все стандартные CSS всех браузеров и помогает наблюдать более адекваватное поведение элементов.
Первое с чего начинает проф верстальщик - вставляет в CSS ресет.
 
Короче - смотрите внутринности например Opera.com - там оно есть.
Там вообще очень хорошо поучиться и фиксов много можно найти под ослы
 
Text

/* reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym,
address, big, cite, code, del, dfn, em, font, img, ins, kbd,
q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i,
center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td
{ margin:0; padding:0; border:0; outline:0; font-size: 100.01%; vertical-align:baseline; background:transparent; font-weight:normal; line-height:100%; }
ol, ul        { list-style:none; }
table, tr, td { vertical-align:top; border-collapse: collapse; border-spacing: 0; }
a             { text-decoration: underline; color:#30306A;}
a:hover       { text-decoration: none; }
p             { margin:0 0 35px 0; line-height:180%; font-size:10pt; }
.nobr{white-space:nowrap;}
/* reset */
 

2.Использовать iepngfix.htc
для IE6 - показывает пнгэхи в осле6
Искать тут
 
Text

Ищите в гугле - абсолютно незаменимая вещь!
// IE5.5+ PNG Alpha Fix v2.0 Alpha 2
// (c) 2004-2008 Angus Turnbull http://www.twinhelix.com
 

 
3. использовать csshover3.htc
для IE6 - позволяет применять :hover для дивов
Text

Ищите в гугле - абсолютно незаменимая вещь!
При наведении на слой позволяет к нему применять псевдокласс :hover как у ссылки
 

 
4.
Всегда юзать для блоков, дочки которых имеют float
Text

  overflow:hidden;
  zoom:1;
 

Если внутри блока находятся блоки со свойством float, то родтельский блок не растягивается под высоту дочерних (даже можно сказать не натягивается на них - эта тема лечит это поведение)
решает абсолютное кол-во проблем ослов!
Однако есть одно ограничение, вы не сможете использовать абсолютное позиционирование выходящее за рамки блока с определением - overflow:hidden; что вполне понятно - блок просто не будет отображаться, т.к. фактически находится вне зоны отображения содержимого блока. Короче - чем объяснять - легче попробовать.
 

ХАКИ
 
видит только опера
Text

/* Jast Opera */
html:first-child .afisha .right ul.event_list li{
    background:#F00;
}
 

видит только сафарь
Text

/*safari only*/
html:root* .main .left{width:556px;}
 

 
Вообще хороший список хаков под конкретный браузер тут
Text

http://higher.com.ua/article/111/poleznye-css-khaki
 

 
Эмуляция псевдоклассов - первый элемент, последний элемент для осла 6
например, нужно сделать список у которого все <li> имеют сверху и снижу рамку, а только верхний и нижней элементы списка этих рамок не имеют.
 
Во всех нормальных браузерах есть псевдоклассы - первый и последний элемент. У ослов такого нет - нужно в CSS внедрять expression, т.е. JS код, который определяет есть ли предыдущий/последующий элемент списка и соответственно генерит нужный стиль
 
Text

ul li{
    padding:10px 0 0 0;
    border-top:1px solid #FFF;
    border-bottom:1px solid #dcdcdc;
   
    border-top: expression(this.previousSibling == null ? '0' : '1px solid #FFF');
    border-bottom: expression(this.nextSibling == null ? '0' : '1px solid #dcdcdc');
  
    padding-top: expression(this.previousSibling == null ? '0' : '10px');
    padding-bottom: expression(this.nextSibling == null ? '10px' : '0');
}
ul li:first-child{
    padding:0;
    border-top:none;
}
ul li:last-child{
    padding-bottom:10px;
    border-bottom:none;
}
 

 

 

 

Та же дрянь с псевдоклассами
:before
:after
 
с их помощью можно принудительно в конец и начало списка принудительно подставлять некоторый контент. Иногда это бывает полезно. Например с картинками откр/закр кавычек в блоках с цитированием.
Что б автоматом подставлять кавычки на уровне CSS есть псевдоклассы :after, :before
Но не работает в Осле. Значит! Лечим осел!
 
Например подстановка каких то элементов перед и после списка.
Самый неверояный да еще и оптимизированный экспрешн который мне на данный момент попадался
 
Text

E: expression(this.yes ? '' : (this.yes = true, this.parentNode.innerHTML = 'ЛЮБОЙ КОНТЕНТ ПЕРЕД' + this.parentNode.innerHTML + 'ЛЮБОЙ КОНТЕНТ ПОСЛЕ'));
 
_________________________________
 

Эмуляция выравнивания по вертикали внутри блока для гребаных ослов
Если хочешь картинки разной высоты позиционировать в некотором блоке и всегда по середине - самое простое обернуть картинку в inline элемент, например p. Сделать line-height у <p> равным высоте блока, и задать выравнивание строчного элемента vertical-align:middle;
 
Но Осел - он и есть Осел. Какой бы версии он ни был. Лечим с помощью выражения, которое определяет высоту родителя и смещает <p> так что бы она была посередине блока!
 
Text

p{
    line-height:240px;
    vertical-align:middle;
    margin-top: expression((parentNode.offsetHeight - this.offsetHeight)<0 ? '0' : (parentNode.offsetHeight - this.offsetHeight)/2 + 'px');
}
 

____________________________________________
 
Как сделать блок тянущимся до определенного момента?
А вот так!
 
Очередная эмуляция для Ослов
 
Text

.body{
    min-width: 990px;
    max-width: 1300px;
    -width: expression(document.documentElement.clientWidth > 1280? "1280px": document.documentElement.clientWidth < 990? "990px": "auto");
}
 
______________________________________________
 

 

Position FIXED Практика и решение
 
Задача: Вывести на странице блок, который будет находиться поверх всех остальных и всегда в определенном месте сайта вне зависимости от скролла.
 
Задача решается очень просто - в CSS есть свойство position: fixed;
Однако в IE это свойство не работает.
Следовательно для него необходимо свойство, которое понять может только IE а все прочие будут игнорировать.
 
Определяем:
Text

<div class="fixme">
    содержимое блока
</div>
 

Text

.fixme { position: absolute; left: 33%; top: 30%; }
div.fixme {
z-index: 1000;
-top: expression( ((document.documentElement.clientHeight/10)*3)+(ignoreMe = document.documentElement.scrollTop) + 'px' );
}
body > div.fixme { position: fixed; top: 30%; left: 33%; }
 

 
Начала Браузер видит определение
 
Text

.fixme { position: absolute; left: 33%; top: 30%;  }
 

После этого переходит к следующему определению
 
Text

-top: expression( ((document.documentElement.clientHeight/10)*3)+(ignoreMe = document.documentElement.scrollTop) +
 

Это определение может увидит только IE 6 (именно для этого здесь стоит знак - перед определением top)
Если его убрать, то все браузеры будут отображать блок нормально, а IE 7 будет тупить, т.к. он понимает и expression и top.
 
во всех остальных браузерах будет выполняться определение
 
Text

body > div.fixme { position: fixed; top: 30%; left: 33%; }
 

 
только IE его не увидит.
 
Так мы получаем блок в указанном месте сайта.
 
Text

/* FIXED PATCH */
.fixme { position: absolute; left: 33%; top: 30%;  }
div.fixme {
    border: 7px solid #CCC;
    background: #ECEEED;
    z-index: 1000;
    width: 400px;
    color: #000;
    -top: expression( ((document.documentElement.clientHeight/10)*3)+(ignoreMe = document.documentElement.scrollTop) + 'px' );
}
body > div.fixme { position: fixed; top: 30%; left: 33%; }
/* FIXED PATCH */
 
________________________________________________
 
Почти адекватная эмуляция табличных структур в дивах. Есть небольшие ограничения
 
Text

/* tab emulation */
    .tbl{
        width: 100%;
        display: table;
    }
    .contentbody{ display: table-row; }
    .column{
        display: table-cell;
        vertical-align: top;
    }
    .column,{
        display: inline;
        vertical-align: top;
        zoom: 1;
    }
/* tab emulation */
 

Text

    <div class="contacts"><!-- contacts -->
        <div class="tbl">
            <div class="contentbody">
                <div class="column left">
               
                </div><!-- column left -->                 
                <div class="column right">
               
                </div><!-- column right -->
            </div><!-- contentbody -->
        </div><!-- tbl -->
    </div><!-- contacts -->
 

__________________________________________________________________
 

Охеренный баг Ослов с SELECT элементами которые не имеют z-index
 
если сверху выводим блок, то селекты как кишки торчат на экране и никогда ничем не перекрываются
 
Лечится вставкой условного комментария для IE с элементом iframe
который должен полностью совпадать по размерам с всплывающим блоком, абсолютно позиционирован к нему и иметь следующее определение:
 
Text

.fixme iframe {
    position:absolute;
    top:0;
    left:0;
    z-index:-1;
    filter:mask();
    width:400px;
    height:100px;
}
 

только iframe c фильтром filter:mask(); способен перекрыть селекты
 
« Последнее редактирование: 18 Март, 2009, 11:28:16 от killich » Записан
phpdude    ↓ 
18 Март, 2009, 04:40:31 , спустя 21 минуту 36 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19713
Сила слова: 1.72

полезно
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
18 Март, 2009, 05:45:12 , спустя 1 час 4 минуты 41 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17222
Сила слова: 1.65

Жесть... много букав, думаю есть что-то полезное для искателей хаков, однако надо оформить лучше... иначе просто каша.
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
killich    ↓ 
18 Март, 2009, 11:23:38 , спустя 5 часов 38 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 20
Сообщений: 275
Сила слова: 7.27

полезно? епр!
 
да проф верстальщики мне памятник поставят при жизни >;0)
 
кстати - я стал очень здорово верстать. если буде халтурка то могу поучавствовать.
на пыхе почти не пишу, все на рельсах рубиновых теперь, но если проект будет на cake php могу рассмотреть предложение
 
С уважением к Пыхо братству!
Записан
adw0rd    ↓ 
18 Март, 2009, 11:52:12 , спустя 28 минут 34 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17222
Сила слова: 1.65

killich, покажи как верстаешь ;) Нужно макетов 100-150 сверстать... для соц. сети, а Тимур занят :(
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
AlexB    ↓ 
19 Март, 2009, 12:11:30 , спустя 19 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 88
Сообщений: 3281
Сила слова: 2.68

killich, очень полезно, спасибо. Ткну носом своего верстальщика ...
 
Я бы не сказал что каша. Все понятно! Но если бы поподробней описал и оформил в виде статьи, то вообще цены бы не было.
Записан

Timur    ↓ 
19 Март, 2009, 01:14:05 , спустя 1 час 2 минуты 35 секунд
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

Прикрепил тему.
Записан
adw0rd    ↓ 
19 Март, 2009, 09:05:19 , спустя 7 часов 51 минуту 14 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17222
Сила слова: 1.65

AlexB,  мой пост должен был появится сразу после ТС, однако я не нажал сабмит, поэтому даже позже дуда... Тем не менее,
« Последнее редактирование: Вчера в 11:28:16 pm от killich
Килл поправил пост свой, поэтому он уже не такой и кашевидный :)
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
killich    ↓ 
18 Ноябрь, 2010, 04:10:02 , спустя 609 дней 7 часов 4 минуты 43 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 20
Сообщений: 275
Сила слова: 7.27

>killich, покажи как верстаешь ;) Нужно макетов 100-150 сверстать... для соц. сети, а Тимур занят :(
Когда есть полный комплект макетов и время - верстаю довольно неплохо
 
Студия где я работаю щас свою социалку запускает.
Косяком множество каэшно, но мы никогда ничем подобным не занимались - это экспериментальная авантюра скорее >;0)
 
недельки две надо - когда первые юзвери прохакают систему как следует - мы чуть придем в себя после запуска - тогда можно и обсудить - щас времени ваапще нема.
А там можно и обсудить.
помогу с радостью, если смогу
 
PS:
 
adw0rd, парни  - в понедельник запуск первой беты будет, если найдете время и кому не в лом - прохакайте нас
Будем очень признательны
 
« Последнее редактирование: 18 Ноябрь, 2010, 04:10:02 от killich » Записан
phpdude    ↓ 
18 Ноябрь, 2010, 04:24:13 , спустя 14 минут 11 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

/images/deadline/soon.jpg
 
сделали бы уж на яваскрипте) а то не веб2нольно
« Последнее редактирование: 18 Ноябрь, 2010, 04:24:13 от phpdude » Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
aivee    ↓ 
21 Март, 2009, 02:53:13 , спустя
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 28
Сообщений: 1659
Сила слова: 1.69

да точн
Записан

21st century slave
CTAPbIu_MABP    ↓ 
21 Март, 2009, 04:20:23 , спустя 1 час 27 минут 10 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

ну давайте по порядку
первое это немного измененный css framework 'elements'
http://elements.projectdesigns.org/download.html
 

второе старинный баян
http://www.twinhelix.com/css/iepngfix/
 
подключаеться так
Text
img {
    behavior: url('iepngfix.htc');
}

третье тоже баян
http://blog.erlang.com.ru/files/help/csshover3.htc
 

а хаков ваще полный интернет
Записан

java.lang.OutOfMemoryError
adw0rd    ↓ 
04 Февраль, 2010, 01:39:16 , спустя 319 дней 21 час 18 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: Джедаи

Карма: не нужна
Сообщений: 17222
Сила слова: 1.65

Блин, не могу я этот iepngfix заюзать... у меня явно руки кривые...
помогите, если можете http://kinsburg.ru/
Записан

FreeBSD, Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch
Кинсбург * Либург * Футбург * Мой блог
mario    ↓ 
04 Февраль, 2010, 03:03:07 , спустя 1 час 23 минуты 51 секунду
НЕ ХУЕТА! ХУЕТА!

бухарио
Группа: Джедаи

Карма: 62
Сообщений: 5971
Сила слова: 1.04


Блин, не могу я этот iepngfix заюзать... у меня явно руки кривые...
помогите, если можете http://kinsburg.ru/
а что именно? Просто у меня тоже были проблемы... :)
Вообще все пнгшки не отображаются? Или те который заданы для background?Или которые прописаны в img?
Записан

с ув. mario.
Контакты
soulgarden    ↓ 
04 Февраль, 2010, 03:12:46 , спустя 9 минут 39 секунд
НЕ ХУЕТА! ХУЕТА!


Карма: 5
Сообщений: 725
Сила слова: 0.69


 
да проф верстальщики мне памятник поставят при жизни >;0)
 

проф верстальщики это всё уже знают.
кстати, я не проф, но знаю
Записан
Страниц: [1] 2 3
Печать
 

Перейти в: