답변:
기초
CSS에서 " padding
셀 패딩"을 제어하기 위해 간단히 테이블 셀에서 사용할 수 있습니다 . 예를 들어 "셀 패딩"10px :
td {
padding: 10px;
}
"셀 간격"의 경우 border-spacing
CSS 속성을 테이블에 적용 할 수 있습니다 . 예를 들어 "셀 간격"10px :
table {
border-spacing: 10px;
border-collapse: separate;
}
이 숙박 시설은 구식 "간격"으로 할 수없는 별도의 수평 및 수직 간격을 허용합니다.
IE <= 7의 문제
이것은 거의 운이 좋지 않은 Internet Explorer 7을 통해 Internet Explorer를 제외하고 거의 모든 인기있는 브라우저에서 작동합니다. 이 브라우저는 여전히 border-collapse
인접한 테이블 셀의 경계를 병합하는 속성을 지원하기 때문에 "거의"라고 말합니다 . 셀 간격 을 제거하려는 경우 (즉, cellspacing="0"
) border-collapse:collapse
동일한 효과를 가져야합니다. 테이블 셀 사이에 공간이 없습니다. 이 지원은 cellspacing
테이블 요소 의 기존 HTML 속성을 무시하지 않기 때문에 버그가 있습니다 .
간단히 말해 Internet Explorer 5-7 이외의 브라우저의 경우 border-spacing
처리합니다. Internet Explorer의 경우 상황이 옳은 경우 (0 셀 간격을 원하고 테이블에 아직 정의되어 있지 않은 경우)을 사용할 수 있습니다 border-collapse:collapse
.
table {
border-spacing: 0;
border-collapse: collapse;
}
참고 : 테이블과 브라우저에 적용 할 수있는 CSS 속성에 대한 훌륭한 개요는이 환상적인 Quirksmode 페이지를 참조하십시오 .
브라우저의 기본 동작은 다음과 같습니다.
table {border-collapse: collapse;}
td {padding: 0px;}
셀의 내용과 셀 벽 사이의 간격을 설정합니다
table {border-collapse: collapse;}
td {padding: 6px;}
테이블 셀 사이의 공간을 제어합니다
table {border-spacing: 2px;}
td {padding: 0px;}
table {border-spacing: 2px;}
td {padding: 6px;}
table {border-spacing: 8px 2px;}
td {padding: 6px;}
참고 :
border-spacing
설정되어 있으면border-collapse
테이블의 속성이separate
입니다.
여기에서 이것을 달성하는 오래된 HTML 방법을 찾을 수 있습니다.
table
{
border-collapse: collapse; /* 'cellspacing' equivalent */
}
table td, table th
{
padding: 0; /* 'cellpadding' equivalent */
}
cellspacing=0
해당. 에 해당하는 cellspacing=1
것은 완전히 다릅니다. 허용 된 답변을 참조하십시오.
table td
및 table th
단지 수 td
와 th
각각? 어느 쪽이든 작동하지만 더 작은 선택기는 약간 더 빠른 매칭을 의미합니다.
table > tr > td
하고 table > tr > th
. 이것은 거의 tr
and 만큼 빠르며 th
중첩 테이블이 있으면 작동합니다. 그냥 내 2C
table
선택기가 필요합니까? IIRC, a <td>
는 내부가 아닌 한 유효하지 않습니다 <tr>
.
테이블 셀에 여백을 설정해도 실제로 아는 한 효과가 없습니다. 에 해당하는 실제 CSS cellspacing
는 border-spacing
-이지만 Internet Explorer에서는 작동하지 않습니다.
border-collapse: collapse
언급 한대로 셀 간격을 안정적으로 0으로 설정 하는 데 사용할 수 있지만 다른 값의 경우 브라우저 간 유일한 방법은 cellspacing
속성 을 계속 사용하는 것입니다.
border-collapse
테이블에 아직 cellspacing
정의 된 속성 이없는 경우 IE 5-7에서만 작동합니다 . 도움이되는 경우이 페이지의 다른 답변의 모든 올바른 부분을 병합하는 포괄적 인 답변을 작성했습니다.
이 핵은 Internet Explorer 6 이상, Chrome , Firefox 및 Opera에서 작동합니다 .
table {
border-collapse: separate;
border-spacing: 10px; /* cellspacing */
*border-collapse: expression('separate', cellSpacing = '10px');
}
table td, table th {
padding: 10px; /* cellpadding */
}
*
선언은 Internet Explorer 6 및 7이고, 다른 브라우저는 제대로을 무시합니다.
expression('separate', cellSpacing = '10px')
returns 'separate'
하지만 JavaScript에서 예상 한 것보다 많은 인수를 전달할 수 있으므로 모든 명령문이 평가되므로 두 명령문이 모두 실행됩니다.
셀 간격 값이 0이 아닌 사람들을 위해 다음 CSS가 효과적이지만 Firefox에서만 테스트 할 수 있습니다.
호환성에 대한 자세한 내용 은 다른 곳에 게시 된 Quirksmode 링크를 참조 하십시오. 이전 Internet Explorer 버전에서는 작동하지 않을 수 있습니다.
table {
border-collapse: separate;
border-spacing: 2px;
}
셀의 내용을 div로 감싸면 원하는 모든 것을 할 수 있지만 균일 한 효과를 얻으려면 열의 모든 셀을 감싸 야합니다. 예를 들어, 왼쪽 및 오른쪽 여백을 넓히려면 다음을 수행하십시오.
CSS는
div.cellwidener {
margin: 0px 15px 0px 15px;
}
td.tight {
padding: 0px;
}
<table border="0">
<tr>
<td class="tight">
<div class="cellwidener">My content</div>
</td>
</tr>
</table>
예, 번거 롭습니다. 예, Internet Explorer에서 작동합니다. 사실, Internet Explorer에서만 이것을 테스트했습니다. 이것이 우리가 직장에서 사용할 수있는 전부이기 때문입니다.
이 스타일을위한 테이블에 대한 전체 재설정 - 의 cellpadding , cellspacing 와 국경 .
내 reset.css 파일 에이 스타일이 있습니다.
table{
border:0; /* Replace border */
border-spacing: 0px; /* Replace cellspacing */
border-collapse: collapse; /* Patch for Internet Explorer 6 and Internet Explorer 7 */
}
table td{
padding: 0px; /* Replace cellpadding */
}
내가 W3C 분류에서 이해 <table>
하는 것은 데이터를 '전용'으로 표시하기위한 것입니다.
나는 그것이 훨씬 쉽게 만들 발견을 바탕으로 <div>
배경을 가진 모든 것을하고 데이터가 사용 위에 떠있는 테이블이 position: absolute;
와 background: transparent;
...
Chrome, Internet Explorer (6 이상) 및 Mozilla Firefox (2 이상)에서 작동합니다.
여백은 컨테이너 요소 등의 사이에 스페이서를 만드는 데 사용 (또는 어쨌든 의미)되어 <table>
, <div>
및 <form>
,하지 <tr>
, <td>
, <span>
또는 <input>
. 컨테이너 요소 이외의 용도로 사용하면 향후 브라우저 업데이트를 위해 웹 사이트를 조정하는 데 바쁠 수 있습니다.
CSS 패딩 속성을 사용하여 테이블 셀 안에 패딩을 쉽게 설정할 수 있습니다. 테이블의 cellpadding 속성과 동일한 효과를 생성하는 유효한 방법입니다.
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 10px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellpadding in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>
마찬가지로 CSS border-spacing 속성을 사용하여 cellspacing 특성과 같은 인접한 표 셀 테두리 사이의 간격을 적용 할 수 있습니다. 그러나 테두리 간격을 설정하려면 border-collapse 속성 muse의 값이 분리됩니다. 이것이 기본값입니다.
table {
border-collapse: separate;
border-spacing: 10px;
/* Apply cell spacing */
}
table,
th,
td {
border: 1px solid #666;
}
table th,
table td {
padding: 5px;
/* Apply cell padding */
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Set Cellspacing in CSS</title>
</head>
<body>
<table>
<thead>
<tr>
<th>Row</th>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Clark</td>
<td>Kent</td>
<td>clarkkent@mail.com</td>
</tr>
<tr>
<td>2</td>
<td>Peter</td>
<td>Parker</td>
<td>peterparker@mail.com</td>
</tr>
<tr>
<td>3</td>
<td>John</td>
<td>Rambo</td>
<td>johnrambo@mail.com</td>
</tr>
</tbody>
</table>
</body>
</html>
나는 !important
국경 붕괴 후처럼 사용했다.
border-collapse: collapse !important;
그리고 그것은 IE7에서 저에게 효과적입니다. cellspacing 속성을 재정의하는 것 같습니다.
!important
복잡한 상황에서 다른 CSS 설정 을 재정의하는 데 필요합니다 (그리고 대부분 잘못된 접근법).
!important
다른 대답 대신 주석으로 포함될 수있는을 추가합니다 .
HTML 테이블에서 cellpadding
and cellspacing
는 다음과 같이 설정할 수 있습니다.
대한 세포 패딩 :
간단한 td/th
셀을 호출하십시오 padding
.
예:
table {
border-collapse: collapse;
}
td {
border: 1px solid red;
padding: 10px;
}
대한 세포 간격
간단하게 불러 table
border-spacing
예:
/********* Cell-Spacing ********/
table {
border-spacing: 10px;
border-collapse: separate;
}
td {
border: 1px solid red;
}
CSS 소스 별 더 많은 표 스타일 링크 여기에서 CSS 별 더 많은 표 스타일 을 얻을 수 있습니다 .
CSS에서 border-spacing
and를 사용하여 이와 같이 간단하게 할 수 있습니다 padding
.
table {
border-collapse: collapse;
}
td, th {
padding: 1em;
border: 1px solid blue;
}
<table>
<tr>
<th>head_1</th>
<th>head_2</th>
<th>head_3</th>
<th>head_4</th>
</tr>
<tr>
<td>txt_1</td>
<td>txt_2</td>
<td>txt_3</td>
<td>txt_4</td>
</tr>
</table>
스타일을 테이블 자체에 직접 추가하는 것은 어떻습니까? 이것은 table
CSS에서 사용 하는 대신 페이지에 여러 테이블이있는 경우 BAD 접근 방식입니다.
<table style="border-collapse: separate;border-spacing: 2px;">
<tr>
<td style="padding: 4px 4px;">Some Text</td>
</tr>
</table>
td { padding: ... }
나 table { border-spacing: ... }
대신 테이블에 직접 적용하는. 그것들은 아무것도 추가하지 않습니다. 내가 말했듯이, 당신이 당신의 페이지에 여러 테이블을 가지고 있고 그들에게 영향을주고 싶지 않을 때, 당신은 이것을 원하지 않습니다! "스타일 시트 사용!"이라는 답의 전체 페이지가 필요하지 않습니다. 마지막으로 원하는 경우는 하나의 셀 또는 테이블에 대해서만 서식을 지정하기를 원하기 때문입니다. 그것은 그것을 적용 table
하거나 td
바람직하지 않을 때이며 완전히 새로운 클래스를 만드는 것은 지나친 것입니다.
table#someId
).
아래 코드를 확인하여 a를 index.html
만들고 실행하십시오.
<!DOCTYPE html>
<html>
<head>
<style>
table{
border-spacing:10px;
}
td{
padding:10px;
}
</style>
</head>
<body>
<table cellspacing="0" cellpadding="0">
<th>Col 1</th>
<th>Col 2</th>
<th>Col 3</th>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</table>
</body>
</html>
출력 :
width:auto
다음border-collapse
예상대로 작동하지 않을 수 있습니다.