Скрыть первый li в ul с помощью CSS

у меня есть навигационное меню, которое я хотел бы скрыть первый элемент в нем. например,

<ul>
   <li>Home</li>
   <li>About</li>
   <li>
      <ul>
         <li>Item 1</li>
         <li>Item 2</li>
         <li>Item 3</li>
      </ul>
   </li>
</ul>

затем я скрываю первый элемент, как это в CSS:

li:first-child{
   visibility: hidden;
}

но тогда происходит то, что все первые элементы li в навигации не выражаются, например "пункт 1" в меню навигации. Как бы я выбрал только элемент "home" li и скрыть его?

спасибо!

6 ответов


дайте вашему первому ul класс "yourclass", затем .yourclass > li:first-child { visibility: hidden; }

чтобы скрыть первого ребенка второго ul используйте .yourclass > li > ul > li:first-child


назначьте идентификатор первому ul, а затем примените стиль css только к этому идентификатору?

<ul id="someid">
   <li>Home</li>
   <li>About</li>
   <li>
      <ul>
         <li>Item 1</li>
         <li>Item 2</li>
         <li>Item 3</li>
      </ul>
   </li>
</ul>

#someid > li:first-child{
   visibility: hidden;
}

Также см. http://www.w3.org/TR/CSS2/selector.html


ul > li:first-child { (note you can do :last-child to target the last item)
display: none;
}

другой вариант, особенно если вам нужно нацелиться на других детей по другим причинам, это использовать: nth-child (). Внутри скобок вы ставите число http://www.w3schools.com/cssref/sel_nth-child.asp

использование nth-child для имитации того же, что и выше.

ul > li:nth-child(1) {
display: none;
}

обратите внимание, что nth-child не поддерживается IE без библиотеки jquery, такой как modernizr, чтобы помочь ему.


вам понадобится элемент или класс, который находится выше первого ul, затем укажите

CSS soluce: {Родительский селектор} > ul > li.

jQuery soluce: $ ("ul > li");


Я бы рассмотрел использование:

body> ul>:first-child {
    display: none;
}

вместо:

ul li:first-child{
    visibility: hidden;
}

<ul id="abc">
  <li>Home</li>
  <li>About</li>
  <li>
  <ul>
     <li>Item 1</li>
     <li>Item 2</li>
     <li>Item 3</li>
  </ul>
</li>
</ul>
  #abc > li:first-child{
   display: none;
   }