2016-01-07 2 views
3

У меня есть таблица, в которой есть другой стол внутри. Мне нужно стилизовать основную таблицу, но оставить внутреннюю, как есть. Я попробовал вам селектор> CSS, но при этом стиль основной внутренней таблицы наследует все, что имеет основное.Выбрать только Прямой Ребенок из таблицы

HTML

<table id="main-table"> 
    <tbody> 
     <tr> 
      <td colspan="2">header</td> 
     </tr> 
     <tr> 
      <td> 
       <table id="inner-table"> 
        <tbody> 
         <tr> 
          <td >data</td> 
         </tr> 
        </tbody> 
       </table> 
      </td> 
     </tr> 
    </tbody> 
</table> 

CSS

#main-table > tbody tr td{ 
    position: relative; 
    width: 300px; 
    height: 50px; 
    font-size: 15px; 
    background: #E6F4FF; 
    color: #035B9C; 
    padding: 10px; 
    box-sizing: border-box; 
    height: 60px; 
    border: 1px solid #E6F4FF; 
} 
+0

Не могли бы вы уточнить, используя> для всех? :) –

+2

Duh, я допустил ошибку в реализации после дачи правильного комментария: P Версия, представленная в ответе dippas, есть то, что я имел в виду под '>' для всех :) – Harry

ответ

4

Попробуйте это, используя прямые дочерние > для каждого из них.

#main-table > tbody > tr > td { 
 
    position: relative; 
 
    width: 300px; 
 
    height: 50px; 
 
    font-size: 15px; 
 
    background: #E6F4FF; 
 
    color: #035B9C; 
 
    padding: 10px; 
 
    box-sizing: border-box; 
 
    height: 60px; 
 
    border: 1px solid #E6F4FF; 
 
} 
 

 
/* demo purposes */ 
 
td { 
 
    color: red; 
 
}
<table id="main-table"> 
 
    <tbody> 
 
    <tr> 
 
     <td colspan="2">header</td> 
 
    </tr> 
 
    <tr> 
 
     <td> 
 
     <table id="inner-table"> 
 
      <tbody> 
 
      <tr> 
 
       <td>data</td> 
 
      </tr> 
 
      </tbody> 
 
     </table> 
 
     </td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+1

Да, это именно то, что мне нужно! Благодаря! :) –

+0

теперь также внутренняя таблица наследует от основной таблицы na? –

+1

@AnoopLL: Я считаю, что вопрос заключался не в прекращении * наследования *. Речь шла о том, чтобы правило не применялось к внутренней таблице 'td'. С исходным кодом дочерняя таблица 'td' также получила бы' padding', 'border' и т. Д. (Просто верните селектор в оригинал и посмотрите, как увеличивается высота второго' tr'). С измененным, это не произойдет. – Harry

0

коррекция:

#main-table > tbody > tr > td{ 
    position: relative; 
    width: 300px; 
    height: 50px; 
    font-size: 15px; 
    background: #E6F4FF; 
    color: #035B9C; 
    padding: 10px; 
    box-sizing: border-box; 
    height: 60px; 
    border: 1px solid #E6F4FF; 
} 
+0

Работал с добавлением еще одного после tr :) Спасибо! –

+1

Этого недостаточно, он по-прежнему будет выбирать элементы '', которые являются частью внутренней таблицы, которая является частью '' внешней таблицы. –

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