2017-01-03 4 views
-2

по некоторым причинам я имею что-то вроде этого в моем HTML кодеКак использовать один класс со многими элементами?

ID = 1

     <li class="anyclass" ></li> 
          <li class="firstclasname + id" ></li> 
          <li class="scondclasname + id" ></li> 
          <li class="thirdclasname + id ></li> 
          <li class="forthclasname + id" ></li> 
          <li class="fifthclasname + id" ></li> 
         </ul> 

ID = 2

<li class="anyclass" ></li> 
          <li class="firstclasname + id" ></li> 
          <li class="scondclasname + id" ></li> 
          <li class="thirdclasname + id ></li> 
          <li class="forthclasname + id" ></li> 
          <li class="fifthclasname + id" ></li> 
         </ul> 

я могу сделать только один файл CSS для этого кода содержит что-то например:

.every first calss name + what ever id { 

background-image: url('/image/facebook.png'); background-repeat: no-repeat; background-size: auto; background-position: -277px -446px; }

+0

.every первое имя Calss #what когда-либо ид { фоновое изображение: URL ('/ изображение/facebook.png'); background-repeat: no-repeat; background-size: auto; background-position: -277px -446px; } –

+0

, если каждый класс будет иметь одинаковые стили, почему бы не добавить общий класс «фон» ко всем li и добавить стили к этому классу. Это устранит избыточность! – pix1289

+0

Что означает 'firstclasname + id'? – connexo

ответ

0

В таких случаях, как это мне нравится использовать два селекторы - общий, соответствующих все пункты, а также конкретный отождествить один элемент.

Пример использование будет что-то вроде этого:

<ul class="contact-list"> 
    <li class="item item-1">Contact 1</li> 
    <li class="item item-2">Contact 2</li> 
    <li class="item item-3">Contact 3</li> 
</ul> 

В CSS вы можете настроить таргетинг самого списка, все элементы или один конкретный элемент.

Редактировать

Извиняюсь, я обезжиренное свой вопрос и пропустил часть о ид = 1 и ид = 2. Существует несколько различных вариантов в зависимости от количества идентификаторов и будет ли это известно.

Для краткого списка известных идентификаторов вы можете просто настроить таргетинг на отдельные элементы, как я уже упоминал. Если есть неизвестное количество идентификаторов (или сами идентификаторы неизвестны), вы можете использовать селектор nth-child.

Это полностью зависит от эффекта, который вы пытаетесь достичь, который не описан в вашем вопросе, но некоторые часто используемые (в контексте моего примера разметки выше) следующим образом:

  • .contact-list:nth-child(odd) относится к каждому нечетному элементу, т.е. 1, 3, 5
  • .contact-list:nth-child(even) применяется к каждому элементу даже, то есть 2-й, 4-ю, 6-я
  • .contact-list:nth-child(1) относится только к первому элементу
  • .contact-list:nth-child(4n+4) относится к электронному очень четвертый элемент

И так далее. Наиболее распространенные требования выполнялись тысячу раз раньше и могут быть найдены с быстрым поиском google по строкам «CSS каждый второй элемент».

+0

нет отношения с первым, вторым, третьим его просто случайным именем класса просто изменить его с помощью alex + id, jhon + id – user7369177

+0

@ user7369177 В этом случае все, что я могу предложить, это что вы делаете это как можно проще нацеленным через несколько классов CSS, т. е. каждый элемент в наборе должен иметь что-то вроде 'class =" вещь вещь-1 свойство-1 "," свойство-2 "и т. д., где« вещь-1 "относится к id = 1. В конечном итоге должен быть какой-то предсказуемый формат, иначе вы не можете надеяться настроить его. CSS невероятно гибкий, поэтому, возможно, если он не работает, вам нужно изменить свой подход. Если вы укажете свой желаемый _outcome_ в своем вопросе, вы получите более подходящий ответ. – thewildandy

0

Вам просто нужно попробовать nth-child свойства CSS3.

ul.yourClass li.firstclasname:nth-child(2){ 
    background:url('/image/facebook.png') -277px -446px no-repeat; 
    background-size:auto; 

}

+0

Извините, но он не имеет отношения к первому или второму его просто случайным именам классов, которые вы можете изменить с помощью alex + id, john + id – user7369177

0

Вы можете использовать начинается с [attr^=value] селекторов атрибутов.

li[class^="firstclasname"] { 
 
    background: blue; 
 
}
<ul> 
 
    <li class="anyclass"></li> 
 
    <li class="firstclasname1"></li> 
 
    <li class="scondclasname1"></li> 
 
    <li class="thirdclasname1"></li> 
 
    <li class="forthclasname1"></li> 
 
    <li class="fifthclasname1"></li> 
 
</ul> 
 
<ul> 
 
    <li class="anyclass"></li> 
 
    <li class="firstclasname2"></li> 
 
    <li class="scondclasname2"></li> 
 
    <li class="thirdclasname2"></li> 
 
    <li class="forthclasname2"></li> 
 
    <li class="fifthclasname2"></li> 
 

 
</ul>

+0

мы можем использовать это на странице css и без li – user7369177

+0

Вы можете попробовать только этот '[ класс = "firstclasname"] '. –

Смежные вопросы