2011-01-25 2 views
1

если я указать, како свойствах ул Css

.a ul{} 
.a ul li{} 

и

.b ul{} 
.b ul li{} 

ли свойства ul в .b быть полностью отделена от свойств ul из .a? или они будут распространены?

Я хочу, чтобы стили ul пребывания полностью отделена от стиля ul в .b без использования div id. Благодарю.

ответ

3

Пока вы убедитесь, в вашем HTML, что вы не имеете class="a" элементы внутри class="b" элементов или наоборот, ваш селектора будут применяться для разделения <ul>.

Они будут только общие для <ul> с в обоих .a и .b если:

  • Вы группа селекторы, как это:

    .a ul, .b ul {} 
    .a ul li, .b ul li {} 
    
  • Вы объявляете те же правила стиля для оба селектора

  • В вашем HTML, <ul> содержится в элементах o е оба класса (будь то class="a b" или .a внутри .b или .b внутри .a), например:

    <div class="a b"> 
        <ul><li>Item</li></ul> 
    </div> 
    
    <div class="b"> 
        <div class="a"> 
         <ul><li>Item</li></ul> 
        </div> 
    </div> 
    
    <div class="a"> 
        <div class="b"> 
         <ul><li>Item</li></ul> 
        </div> 
    </div> 
    

    Заметим, что это только в полной мере относится, если вторая пуля также верно; вы may не получите ожидаемые результаты из-за эффектов the cascade.

+0

Спасибо за такое замечательное объяснение. – Lucka

1

Если у родителя есть только один из двух классов, .a или .b, они будут разными. Но если у родителя есть оба класса, то он зависит от css hierarchy.

+0

Это также зависит, если что-то с одним классом вложено внутри другого. – Endophage

1

Любые uls внутри элемента с классом = "a" получат стили .a. Любой из классов class = "b" получит стиль b.

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

<div class="a"> 
<div class="b"> 
<ul> 
<li>...</li> etc 

Если определить класс = «б» на контейнере, как пояснил Boltclock, любые стили, определенные как .a.b уль будут наиболее специфичны и переопределить то же свойство, определенное в .a или .b. Если общие свойства существуют только в .a и .b, то в зависимости от того объявлена ​​позже в таблице стилей имеет преимущество

+1

не на 100% правильный, но близкий, более глубоко вложенный класс будет принимать предпочтение только для общих свойств. Если вы применяете несколько классов, они применяются в порядке, слева направо. – Endophage

+0

хорошая точка - уточнит –

+1

Для элементов с несколькими классами '.a.b ul' будет более конкретным, чем' .a ul' и '.b ul' отдельно; если у вас есть только два последних, то, что объявлено позже, в таблице стилей имеет приоритет. – BoltClock

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