Как стать автором
Обновить

Комментарии 40

Как по мне, то это решение настолько известное, насколько и не очень практичное, из-за задания высоты блоку и прочих прелестей фиксированных размеров.
Посмотрите, что происходит если набить много контента jsfiddle.net/29YpB/2/.
А если поставить для таба overflow, то контент естественным образом обрежется.
Я совсем не верстальщик, но с точки зрения программиста эти «92px», «184px», "-36px" выглядят говнокодом.
Соглашусь с предыдущим оратором. Меня всегда отталкивала верстка, так как куда бы я ни глянул, всюду присутствует подобные строчки и значения. Я даже и программером то не совсем являюсь, но считаю подобные вещи просто ужасными. Это все равно что писать, ну, не знаю, программу считающую корни уравнения и аргументы этого уравнения заранее предопределять в коде же программы. После чего каждый раз, когда надо будет посчитать это же уравнение от других аргументов, переписывать всю программу с нуля. Как-то так это видится мне.
Немного перефразирую, это все равно что искать те значения для написанной программы, при которых она не будет вылетать. А потом представлять этот продукт заказчику, демонстрируя её на этих тщательно подобранных аргументах.
Вспомнилась сдача дабораторных работ по программированию на первом-втором курсах…
НЛО прилетело и опубликовало эту надпись здесь
Если эта программа написана в каком-нибудь Delphi — то да. Во всех же нормальный тулкитах пользуются layout-ами.
Ну и в Delphi никто не мешает использовать layout'ы. Тут проблема, скорее, в прямоте рук, а не в используемом инструменте.
А теперь подскажите аналог работающий во всех современных, и не очень, браузерах?
Уот эти ребята
Правда мне сейчас начнут говорить что это не css вовсе, ведь тут есть и переменные, и функции.
А для особо страждущих — все отступы и пикселя можно задать в одном месте.
Все равно в старые браузеры поддержку CSS3 column-* это не добавит.
А основной проблемы абсолютных значений это не решает.

Просто за вас ширину просчитает lesscss.
Это мое мнение, и оно не объективно.
В GTK+ правильно сверстанной форме будут максимум отступы.
Как бы да, но эти значения нужно подбирать под конкретный случай и конкретный шрифт.
В примере можно было написать и что-то вроде "-3em", «10em», но это лишь для красоты, суть не меняется.
Суть меняется — данные табы не подходят при заранее неизвестном размере контента. А каждый раз править код, чтобы «выглядело хорошо» — это, что называется, «дурака работа любит»
НЛО прилетело и опубликовало эту надпись здесь
А ещё бывают разные разрешения экрана, и при 125 РPI всё сломается нафиг.
В вёрстка главное, чтобы работало всё :)
У этого даже термин есть — «magic numbers» ;-)
Обычно на практике, в отличие от учебных примеров, требуется сделать выделение текущего таба (поменять его класс), или даже выполнить какие-то действия при переключении табов. Так что в редких случаях удается обойтись без JS.
Чуть ли не единственный пример в рунете, безусловно неплох и от известного блоггера.
Но этот пример сделан на позиционировании, а тот — float раскладкой.
Контент неактивных табов там скрывается из потока свойством display, тут — спрайтом.
Опять же jquery…

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

К слову, можно попробовать реализовать подобное с помощью :target (без скрипта), но не очень представляю как управлять display none/hidden, чтобы по дефолту отображался первый таб.
Там ограничений куда меньше, чем у вас. И каждый таб не приходится подбирать по размерам, а потом все следующие после него сдвигать. Вы избавились от 1 не совсем проблемы, а повесили на себя пучок других.

Как говорится — овчинка выделки не стоит
Мое решение не самое удобное, тут нечего спорить.
Но если вы поделитесь хотя бы одной ссылкой с альтернативным решением и без javascript, то мы с удовольствием его обсудим всем, так сказать, коллективом.
На мой взгляд отсутствие яваскрипта в вашем примере — это и есть «избавились от 1 не совсем проблемы».
Я не вижу никаких проблем в том, чтобы использовать для табов яваскрипт
да, :target для этих целей подходит сильно лучше, но есть нюанс: прыгает браузер( в смысле, скролл позиционируется к таргету, а это гадко(
Так можно сам :target объект разместить так, чтобы он был внахлёст к табам, и через margin-top или position: relative сделать так, чтобы визуально он отображался уже там, где надо.
Тогда браузер при клике по табу проскроллит страницу до таба, т.е. до туда, куда юзер только что сделал клик, что уже не так гадко, а как минимум логично, и может вовсе оказаться удобно.
Я именно о том и говорю, что вы описываете. Это гадко и некрасиво. Клацаешь в таб, ожидаешь что поменяется контент, а тут внезапно окно резким скачком проскроливается и таб оказывается вверху страницы.
Это разве что как graceful degradation на случай отстутствия js…
НЛО прилетело и опубликовало эту надпись здесь
Табы на AP и фиксированно прописанной ширине — это ад. Лучше уж несемантичные, но резиновые.
Без скриптов по-моему все равно ничего дельного с этим сделать нельзя.
По сути после «Совсем недавно начал осваивать» и «гугл не находит» можно не читать, ибо то, что вы изложили совсем неудобно использовать. А ищется по строке "css target tab" совсем легко (1, 2...). Js != зло и местами его нужно использовать ;).
Адекватная критика была бы уместнее анонимного минуса, ибо свою позицию нужно отстаивать открыто ;).
1. читайте заглавие топика до полного понимания
2. продемонстрируйте свои поисковые навыки после понимания заголовка
Дык, пара строк кода начального уровня, которые и использовать-то толком нельзя. Какой в этом смысл? По первому же запросу в Google выдается куча вариантов, аналогичных вашему велосипеду, которые вы вроде бы как не могли найти… Да и семантику подобного решения я под вопрос поставил бы.
Какие они, нафиг, семантические, если смысл dl/dt/dd — это список определений, а не табы? Это издевательство над тем, что вы называете семантикой.
Согласен
Фиксированная высота для области контента, очень дурной тон.

Так же, как сказал tegger, defenition list, тут по семантике не подходит.
«обнаружил, что гугл не находит ни одного готового решения»
увы, это автор не находит. Поисковая строка «css tabs dd» дает достаточно всякого.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории