Как по мне, то это решение настолько известное, насколько и не очень практичное, из-за задания высоты блоку и прочих прелестей фиксированных размеров.
Посмотрите, что происходит если набить много контента jsfiddle.net/29YpB/2/.
А если поставить для таба overflow, то контент естественным образом обрежется.
Соглашусь с предыдущим оратором. Меня всегда отталкивала верстка, так как куда бы я ни глянул, всюду присутствует подобные строчки и значения. Я даже и программером то не совсем являюсь, но считаю подобные вещи просто ужасными. Это все равно что писать, ну, не знаю, программу считающую корни уравнения и аргументы этого уравнения заранее предопределять в коде же программы. После чего каждый раз, когда надо будет посчитать это же уравнение от других аргументов, переписывать всю программу с нуля. Как-то так это видится мне.
Немного перефразирую, это все равно что искать те значения для написанной программы, при которых она не будет вылетать. А потом представлять этот продукт заказчику, демонстрируя её на этих тщательно подобранных аргументах.
Уот эти ребята
Правда мне сейчас начнут говорить что это не css вовсе, ведь тут есть и переменные, и функции.
А для особо страждущих — все отступы и пикселя можно задать в одном месте.
Как бы да, но эти значения нужно подбирать под конкретный случай и конкретный шрифт.
В примере можно было написать и что-то вроде "-3em", «10em», но это лишь для красоты, суть не меняется.
Суть меняется — данные табы не подходят при заранее неизвестном размере контента. А каждый раз править код, чтобы «выглядело хорошо» — это, что называется, «дурака работа любит»
Обычно на практике, в отличие от учебных примеров, требуется сделать выделение текущего таба (поменять его класс), или даже выполнить какие-то действия при переключении табов. Так что в редких случаях удается обойтись без JS.
Чуть ли не единственный пример в рунете, безусловно неплох и от известного блоггера.
Но этот пример сделан на позиционировании, а тот — float раскладкой.
Контент неактивных табов там скрывается из потока свойством display, тут — спрайтом.
Опять же jquery…
Если похожесть выражается лишь в использовании семантичной разметки, тогда конечно похож :)
К слову, можно попробовать реализовать подобное с помощью :target (без скрипта), но не очень представляю как управлять display none/hidden, чтобы по дефолту отображался первый таб.
Там ограничений куда меньше, чем у вас. И каждый таб не приходится подбирать по размерам, а потом все следующие после него сдвигать. Вы избавились от 1 не совсем проблемы, а повесили на себя пучок других.
Мое решение не самое удобное, тут нечего спорить.
Но если вы поделитесь хотя бы одной ссылкой с альтернативным решением и без javascript, то мы с удовольствием его обсудим всем, так сказать, коллективом.
На мой взгляд отсутствие яваскрипта в вашем примере — это и есть «избавились от 1 не совсем проблемы».
Я не вижу никаких проблем в том, чтобы использовать для табов яваскрипт
Так можно сам :target объект разместить так, чтобы он был внахлёст к табам, и через margin-top или position: relative сделать так, чтобы визуально он отображался уже там, где надо.
Тогда браузер при клике по табу проскроллит страницу до таба, т.е. до туда, куда юзер только что сделал клик, что уже не так гадко, а как минимум логично, и может вовсе оказаться удобно.
Я именно о том и говорю, что вы описываете. Это гадко и некрасиво. Клацаешь в таб, ожидаешь что поменяется контент, а тут внезапно окно резким скачком проскроливается и таб оказывается вверху страницы.
Это разве что как graceful degradation на случай отстутствия js…
По сути после «Совсем недавно начал осваивать» и «гугл не находит» можно не читать, ибо то, что вы изложили совсем неудобно использовать. А ищется по строке "css target tab" совсем легко (1, 2...). Js != зло и местами его нужно использовать ;).
Дык, пара строк кода начального уровня, которые и использовать-то толком нельзя. Какой в этом смысл? По первому же запросу в Google выдается куча вариантов, аналогичных вашему велосипеду, которые вы вроде бы как не могли найти… Да и семантику подобного решения я под вопрос поставил бы.
Семантические табы из dl/dt/dd без скриптов