Логика простая. Нужен родительский блок для всей конструкции, у которого будет position:relative; overflow:hidden; width:100%;
В вашем первом примере нужно только добавить к #corper{ position: relative; width: 100%; } — скролл исчезнет.
Успокойтесь Вы, не в карме счастье. У меня тут был акк с сотней оной и что? Сейчас хочу получить плашку тролля адекватными комментариями, этакий челлендж.
О, это легко! Просто заходите в топики, где линуксоиды рассказывают о том, как им сухо и комфортно и давайте ссылки на эксплоиты для ядра, что регулярно вылазят. А потом добивайте их статьями на тему, что в исходниках некоторые ошибки не найти, ибо виноват компилятор, который по разному обрабатывает один и тот же код, но по-разному написанный.
И будет у вас карма улетать в самое дно как у меня — со скоростью света. Главное фактов приводить по-больше и красноглазикам тогда голову просто напрочь сносит.
Вот смотрите, сейчас опять у меня карма упадёт и текст прозрачным станет.
Так не интересно. Надо, чтобы за комменты было много плюсов, но у кого-то одного случалась очень сильная попоболь, провоцирующая насрать в кармочку. Года два назад таким методом набрать -100 было бы невозможно ввиду того факта, что не нашлось бы и 50 неадекватов. Сейчас их тут сотни.
Я имел ввиду когда ещё есть фон повторяющийся из небольшой картинки например. Тут факт в том что получается экономия, у нас две небольшие картинки на «уши» и одна на повторяющийся фон.
А в случае с одной большой она по сути получиться больше по размеру (в килобайтах).
Тогда, если следовать такой логике, «уши» совсем не нужны, достаточно иметь внешний слой-обёртку (в данном случае #corp). Нужную картинку повесить ему на бэкграунд. Одна полупрозрачная картинка будет весить меньше, чем две полупрозрачных.
Не всегда счастье только в килобайтах, есть еще
1. Количество запросов.
2. Размер заголовков запросов.
Заголовки, допустим, можно померять, а вот со скорость установки нового соединения как повезет… Мое имхо: лучше +2-5 КБ, чем лишний запрос.
Лирическое отступление:
Сейчас на работе разрабытываем очередную версию модуля для CMS, руки несколько связаны: никаких CDN, никакой свободы с настройкой дополнительных субдоменов. Когда я увидел около 90 запросов к статическим ресурсам, в каждом из которых отправляется около 2 КБ печенья, я рыдал. Это количество удалось снизить до 30, но все-равно, присутствует некая неудовлетворенность…
Я всего лишь начинающий, и, возможно, сейчас фигню скажу, но не легче замостить по фону одну повторяющуюся картинку, а основной контент выровнять по центру? Просто то что вы предлагается выглядит как костыли.
Нельзя, если к примеру есть падающая тень на этот замощёный фон, причём тень только от хеадера, а от контента нёт. Получается, что изображения с тенями нужно прилепить только к хеадеру и ещё хеадер по величине должен совпадать с контентом.
Это не очень хорошо когда справа и слева видно по пол-уха. Как бы намекает: «Хреновый у тебя нетбук. Что, развернул на весь экран, а ухи полностью все равно не видно?»
Лучше их скрывать насовсем или убирать вниз/центр, как тут: goo.gl/86W7
Как и пишут здесь люди, самым беспроблемным вариантом это помещение «ушей» фоновыми изображениями во вложенные блоки, сколько нужно, а уж в внутри этой «матрешки» поместить #content.
В принципе и предложеный вариант жизнеспособен, если побороть все особенности «одинакового» позиционирования в браузерах, но только в случае, если ушам нужно быть интерактивными. (Не представляю такого изврата, но по закону подлости завтра же подвернется)
Непонятно, зачем. Проще использовать обертки и центрированный контент. А если «уши» со смыслом (баннеры) — то яваскриптом проверяем, лезут ли они в экран, и если лезут — то позиционируем абсолютно и показываем. Для баннерных систем, запрещающих прятать баннеры — показываем снизу, если по бокам не влезают.
Мда, супер конечно, я-то надеялся! Блок фиксированной ширины любой дурак отцентрирует, а вот попробуйте тоже сделать при условии того, что основной блок должен быть резиной, скажем, от 960px до 1300px. Вот это задача интересная (и насколько мне известно не имеющая решения).
Довольно странное решение несуществующей проблемы. Дело в том, что нужно идти от задачи и все случаи когда что-то должно быть за контентом нельзя косить под одну гребенку. В большинстве случаев подойдет и max-width и margin:0 auto для body и некий бэкграунд для html.
Да, поздравляю, вы открыли для себя overflow:hidden, и отрицательные значения свойств, но чего вы добились — непонятно.
А вот проблем в вашей верстке — масса. Начать с того, что когда окно браузера меньше 980px у нас нет горизонтальной прокрутки и совершенно непонятно, как мне смотреть этот сайт со своей нокии, у которой разрешение 640x480. И почему верстка не резиновая это тоже большой вопрос.
Обычно, такие уши представляют собой простой фон и причин, делать его как-либо иначе, кроме как, фоном у body или у какого-нибудь родительского контейнера я не вижу.
з.ы. lfet-head и rgiht-haed забыли =)
1. Прекрасно прячется.
2. Javascript конечно можно использовать. Флаг в руки, используйте.
3. Он нужен для того что бы обрезать абсолютно позиционированные блоки («уши»), которые выходят за рамки экрана. Кстати по той же причине и остаётся полоса прокрутки у оперы, потому что опера думает что страница, шире, хотя на самом деле нет, потому что обрезана #corper'ом.
Скачайте пример, уберите #corper и посмотрите сами.
Оно так и должно работать. Я не писал что ушидолжны пропасть, они аккуратно уходят за экран. Если подвигать размером окна браузера это будет заметно, причём они убираются так, что контент остаётся по середине.
И, внимание, для всех. Возможно я не правильно подобрал значения максимальной ширины и по этому на некоторых разрешениях выглядит некрасиво, но я показываю технологию, которою можно взять на вооружение если правильно применить, не не готовый к продаже продукт.
Сегодня полдня ломал голову, как бы мне пустить широкие поля вокруг всего контента (исключая шапку и подвал — там всё просто), но чтобы они были видны только при разрешении больше 1024 по горизонтали. Этакий padding, но без горизонтальной прокрутки и без абсолютного позиционирования.
Вечером зашел на Хабр — уже почти обрадовался, что вот оно решение. А нет, не то.
С контентной частью делать через фоновый рисунок как-то не спортивно.
Нет никакой экономии, только лишняя картинка и лишний запрос и куча лишних блоков и кода. Рисуйте большую фоновую картинку с «ушами» и дыркой в центре с ширину контента (дырка — это один цвет для лучшей компрессии) и все, готово. Ширину «дырки» нужно сделать на пару пикселей меньше ширины контента, чтоб из-за погрешности в округлении не было заметно скача в 1px при ресайзе окна браузера.
Если на фоне лежит текстура — то просто надо ее нарисовать в фотошопе из центра макета (по дефолту паттерн множится из 0,0) и совместить потом с картинкой с ушами. Не нужно все ТАК усложнять как в вашем примере.
И ссылки нерабочие. Наверное, всё-таки выложить код (а не говорить, что все знают, где кнопка View Source) было бы правильно.
Сегодня, всего через 1,5 года, ценность статьи нулевая. Автору незачот.
Вёрстка c «Ушами»