Как сделать вкладки с чистым HTML / CSS - PullRequest
2 голосов
/ 22 февраля 2011

Я пытаюсь делать вкладки с чистым HTML / CSS, и это хорошо работает во всех основных браузерах.За исключением IE, как 7, так и 8.

Если я не добавлю display: table к ul , содержимое не будет в новой строке в каждом браузере.Однако IE не отображает его в новой строке даже после того, как я добавлю это.Что я могу с этим поделать?Есть ли лучший способ сделать вкладки в чистом HTML / CSS?

<!DOCTYPE>
<html>
    <head>
        <style type="text/css">
          ul.tabs {
              display: table;
              list-style-type: none;
              margin: 0;
              padding: 0;
          }

          ul.tabs>li {
              float: left;
              padding: 10px;
              background-color: lightgray;
          }

          ul.tabs>li:hover {
              background-color: yellow;
          }

          ul.tabs>li.selected {
              background-color: orange;
          }

          div.content {
              border: 1px solid black;
          }
        </style>
    </head>
    <body>
        <ul class="tabs">
            <li class="selected">One</li>
            <li>Two</li>
            <li>Three</li>
        </ul>
        <div class="content">
            This should really appear on a new line.
        </div>
    </body>
</html>

Ответы [ 4 ]

1 голос
/ 22 февраля 2011

Из-за плавающих элементов <li> ваш элемент <ul> имеет нулевую высоту.

Попробуйте добавить ul { overflow: auto; } и div.content { clear: both; } к вашему CSS

0 голосов
/ 22 февраля 2011

это (jsfiddle) работает для вас?

Изменения сделаны:

  1. Удалено display: table; из ul.tabs
  2. Удалено float:left из ul.tabs li's
  3. Добавлено display:inline-block в ul.tabs li's
0 голосов
/ 22 февраля 2011

Я всегда просто "плаваю" li элементов:

ul.tabs{list-style: none;}
ul.tabs li{float:left;}
0 голосов
/ 22 февраля 2011

Я использовал этот подход, который хорошо работает.Он использует встроенный список: http://nontroppo.org/test/tab1.html

ОБНОВЛЕНИЕ: Выше устарел.Если бы я сейчас ответил на этот вопрос, я бы предложил использовать метод псевдокласса CSS target, описанный здесь: http://www.w3.org/Style/Examples/007/target. Существуют и другие методы, такие как использование (скрытых) переключателей в комбинации с отмеченным псевдоклассом, но с использованием target.кажется самым чистым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...