2008-10-01 4 views
18

요소를 사용하여 <table/> 열을 포맷하려고합니다. background-color, width 등을 설정할 수 있지만 font-weight은 설정할 수 없습니다. 왜 작동하지 않습니까? col 태그는 colgroup 태그 안에 있어야테이블 열 서식

<table> 
    <col style="font-weight:bold; background-color:#CCC;"> 
    <col> 
    <tr> 
     <td>1</td> 
     <td>2</td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td>4</td> 
    </tr> 
</table> 

답변

35

지금까지 내가 아는 한, 당신은 단지 <col> 요소에서 다음 사용하여 CSS 포맷 할 수 있습니다 :

  • 배경 색
  • 국경
  • 가시성

을 이 page에 대한 자세한 정보가 있습니다.

허브가 맞습니다. <td>의 스타일을 직접 지정하는 것이 좋습니다. 내가하는 일은 다음과 같다.

<style type="text/css"> 
    #mytable tr > td:first-child { color: red;} /* first column */ 
    #mytable tr > td:first-child + td { color: green;} /* second column */ 
    #mytable tr > td:first-child + td + td { color: blue;} /* third column */ 
    </style> 
    </head> 
    <body> 
    <table id="mytable"> 
    <tr> 
     <td>text 1</td> 
     <td>text 2</td> 
     <td>text 3</td> 
    </tr> 
    <tr> 
     <td>text 4</td> 
     <td>text 5</td> 
     <td>text 6</td> 
    </tr> 
    </table> 

그러나 이것은 IE에서는 작동하지 않는다.

+0

그건 당신이 문제를 조금 과장하는 것 같아요. 왜 "적색", "녹색"및 "파란색"클래스를 만들지 않습니까? 그렇게하면 어디에서나 사용할 수 있으며 고급 CSS 선택기보다 훨씬 직관적입니다. –

+3

그래, 맞아 CSS 선택자가 못생긴다. 그러나 나는 개인적으로 많은 테이블 셀에 클래스 속성을 추가하는 것보다 못생긴 CSS 셀렉터를 선호한다. 의 세포. – Bill

+2

아아, 콜럼 스에 대해서는 의미 론적으로 중단됩니다. 이것이 col과 colgroup 요소의 전체 요점입니다. 왜 그 색을 사용하여 색상을 설정할 수 없습니까? –

-1

,이 문제와 함께 할 수있는 뭔가가있을 수 있습니다.

+1

Andy가 말했듯이 원본이 첨부되어 있는지 확인하고 싶습니다 (아직 댓글을 달 수 없습니다). col은 colgroup에있을 필요가 없습니다. W3C Reference Mikezx6r

0

CSS 클래스를 통해 스타일을 적용 해 보았습니까?

다음은 일을 나타납니다

<style type="text/css"> 
    .xx { 
    background: yellow; 
    color: red; 
    font-weight: bold; 
    padding: 0 30px; 
    text-align: right; 
} 

<table border="1"> 
    <col width="150" /> 
    <col width="50" class="xx" /> 
    <col width="80" /> 
<thead> 
    <tr> 
    <th>1</th> 
    <th>2</th> 
    <th>3</th> 
    <th>4</th> 
    </tr> 
</thead> 
<tbody> 
    <tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
    </tr> 
</tbody> 
</table> 

Reference for the col element

+0

클래스와 동일한 결과가 나타납니다. – Andy

+0

IE (Quirks Mode)는 색상이 작동하는 것을 허용합니다. http://www.quirksmode.org/css/columns.html을 참조하십시오. 그러나 이것은 유감스럽게도 해결책이 아닙니다. –

6

가장 좋은 방법은 <td> 태그에 직접 스타일을 적용하는 것입니다. <col> 태그는 사용한 적이 없지만 대부분의 브라우저에서는 <table><td>/<th> 수준의 서식을 적용 할 수 있지만 중간 수준은 적용하지 않습니다. 예를 들어 당신이있는 경우

<table> 
    <tr class="Highlight"> 
     <td>One</td> 
     <td>Two</td> 
    </tr> 
    <tr> 
     <td>A</td> 
     <td>B</td> 
    </tr> 
</table> 

다음이 CSS는

tr.Highlight { background:yellow } 

뿐만 아니라이 것

tr.Highlight td { background:yellow } 

작동하지 않습니다 : 나는 위의 코드는 데모 목적과 당신을 위해 단지 가정 실제로 스타일을 인라인으로 적용하지 않습니다.

+0

예, 코드는 데모 용입니다. – Andy

+1

이 방법은 정상적으로 작동합니다. 나는 모든 첫 번째 열 td에 대해 class 속성을 넣는 것을 피하려고 노력했습니다. – Andy

1

첫 번째 열이 굵게 표시되고 다른 네 열은 일반 텍스트가되도록 표 스타일을 지정하려고 시도하면서이를 읽는 것이 좋습니다. col 태그를 사용하는 것은 이동하는 것처럼 보였습니다. 그러나 width 속성을 사용하여 열의 너비를 설정할 수는 있지만 font-weight : bold가 작동하지 않습니다. 해결책의 방향을 알려 주셔서 고맙습니다. 모든 TD 요소를 스타일링 td {font-weight: bold;} 다음 열 2-5를 선택하고 다시 정상 td + td {font-weight: normal;} 짜잔에 스타일을 인접 형제 선택기를 사용하여 ALLS 좋은 :)

당신은 그냥이 필요했을 수도
2

:

tr td:first-child label { 
    font-weight: bold; 
}