첫 번째 수준의 td 태그에만 스타일 적용


136

한 레벨의 td 태그에만 클래스 스타일을 적용하는 방법이 있습니까?

<style>.MyClass td {border: solid 1px red;}</style>

<table class="MyClass">
  <tr>
    <td>
      THIS SHOULD HAVE RED BORDERS
    </td>
    <td>
      THIS SHOULD HAVE RED BORDERS
      <table><tr><td>THIS SHOULD NOT HAVE ANY</td></tr></table>
    </td>
  </tr>
</table>

답변:


221

한 레벨의 td 태그에만 클래스 스타일을 적용하는 방법이 있습니까?

* :

.MyClass>tbody>tr>td { border: solid 1px red; }

그러나! ' >'직접 하위 선택기는 IE6에서 작동하지 않습니다. 해당 브라우저 (아마도)를 지원 해야하는 경우 내부 요소를 별도로 선택하고 스타일을 설정 해제하면됩니다.

.MyClass td { border: solid 1px red; }
.MyClass td td { border: none; }

* 첫 번째 예는 tbodyHTML에없는 요소 를 참조합니다 . 그것 해야 당신의 HTML에 있었지만, 브라우저는 단지 배후에 추가 ... 일반적으로 그것을 밖으로 떠나는 확인합니다.


1
IE6을 디버깅해야하는 세상을 기억하기 위해 떨었습니다. 이 게시물은 오한을 다시 가져 왔습니다 ..
webfish

35

CSS : first-child 의사 클래스를 사용하는 방법은 무엇입니까?

.MyClass td:first-child { border: solid 1px red; }

16
작동하지 않습니다. 이것은 td자식 트리에서 가장 .MyClass먼저 포함하는 요소 인 모든 자식을 선택 하므로 inner 스타일도 지정합니다 td.
Lazlo

1
이것은 얼마나 많은 공감대를 가지고 있습니까? :first-childOP가 찾고있는 효과는 없습니다.
plong0

8

이 스타일 :

table tr td { border: 1px solid red; }
td table tr td { border: none; }

나에게 준다 :

이 http://img12.imageshack.us/img12/4477/borders.png

그러나 클래스를 사용하는 것이 아마도 올바른 접근법 일 것입니다.


모든 단일 td 요소에서 클래스를 사용하는 것은 약간 중복 될 수 있습니다. 포함하는 테이블 요소에서 클래스를 사용하는 경우에도 두 번째 수준의 테이블을 제외해야합니다. 즉 첫 번째 예제가 정확합니다.
thomasrutter

6

MyClass 내부의 테이블 선택기를 만드십시오.

.MyClass td {border: solid 1px red;}
.MyClass table td {border: none}

일반적으로 모든 내부 테이블에 적용하려면을 수행 할 수도 있습니다 table table td.


3

나는 테이블의 첫 번째 열의 너비를 설정하고 싶었고 (FF7에서) 작동했습니다. 첫 번째 열의 너비는 50px입니다.

#MyTable>thead>tr>th:first-child { width:50px;}

내 마크 업이 있던 곳

<table id="MyTable">
 <thead>
  <tr>
   <th scope="col">Col1</th>
   <th scope="col">Col2</th>
  </tr>
 </thead>
 <tbody>
   ...
 </tbody>
</table>

3

나는 그것이 효과가있을 것이라고 생각한다.

.Myclass tr td:first-child{ }

 or 

.Myclass td:first-child { }

첫 번째 td행은 모든 행 중 첫 번째 행을 선택하고 두 번째 행은 첫 번째 td페이지 만 선택 합니까?
Joshua Pinter

@JoshuaPinter 당신은 기본적으로 첫 번째에 대해 정확합니다. 일반적으로, 부모가 무엇이든 관계없이 부모의 첫 번째 요소 인 요소를 td:first-child선택합니다 td. 첫 번째 tr td:first-child조건은 필수 하위 항목이 아닌 모든 레벨 td아래에 중첩되어야 한다는 조건을 추가합니다 tr. tr > td:first-childa td바로 아래의 첫 번째 요소 인 a 를 선택합니다 tr. 따라서 궁극적으로 :first-childOP의 질문에 대한 해결책과는 아무런 관련이 없으며이 답변은 잘못되었습니다.
plong0

2

시도해 볼 수있을 것 같아

table tr td { color: red; }
table tr td table tr td { color: black; }

또는

body table tr td { color: red; }

여기서 'body'는 테이블 부모의 선택기입니다.

그러나 수업은 여기에가는 올바른 방법 일 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.