Как переопределить CSS для ширины?

#html #css

#HTML #css

Вопрос:

Как мне переопределить ширину UL по умолчанию? Например:

 .tabPage .tabs ul {
    margin: 0;
    padding: 0;
    width:149px !important; 
    margin-top: 10px;
    list-style: none;
}
  

Итак, html будет выглядеть так:

 <div class="tabPage">
      <div class="tabs">
         <ul> <li> ... </li> <ul>
      </div>
</div>
  

Теперь я хочу изменить размер ширины на 50 пикселей для UL другой веб-страницы.

Я пробовал так:

   .TabWidthSmall { width:149px; }
  

Я поместил этот селектор в <ul> , и он не сработал.

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

1. Для справки, !important это зло. Именно по этой причине, среди прочих.

Ответ №1:

Зачем вам нужен !important ? Правила в CSS каскадируются вниз, использование !important останавливает этот процесс. Если вы установите ширину для своего родительского элемента ul и установите другую ширину для любых последующих дочерних элементов ul — при условии, что селекторы css верны — это будет подхвачено и будет применено к вашему элементу.

В качестве альтернативы, как упоминал @Javad_Amiry, вы также можете использовать !important для своих дочерних элементов ul , чтобы переопределить предыдущий !important , но я бы постарался не использовать так много !important , поскольку это признак плохого дизайна.

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

1. Согласен. Почему в .tabPage .tabs ul есть !important, там ваша проблема.

Ответ №2:

попробуйте:

 .tabPage .tabs ul.TabWidthSmall {
    width:50px  !important; /* put new width here */
}
  

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

1. Вы добавили class="TabWidthSmall" в свой ul , и он все еще не работал? Что вы видите, если проверяете ul с помощью Firebug или аналогичного инструмента? Он должен показать вам, какие стили применяются и каков источник для этих стилей.

2. Как вы можете видеть в jsfiddle.net/CrqYc это должно сработать! а если нет, то проблема в другом месте. Пожалуйста, добавьте больше строк вашего кода в Q, чтобы получить помощь.