HTML 테이블에서 테두리를 완전히 제거하는 방법


141

내 목표는 "사진 프레임"과 유사한 HTML 페이지를 만드는 것입니다. 즉, 4 장의 사진으로 둘러싸인 빈 페이지를 만들고 싶습니다.

이것은 내 코드입니다.

<table>
    <tr>
        <td class="bTop" colspan="3">
        </td>
    </tr>
    <tr>
        <td class="bLeft">
        </td>
        <td class="middle">
        </td>
        <td class="bRight">
        </td>
    </tr>
    <tr>
        <td class="bBottom" colspan="3">
        </td>
    </tr>                                                    
</table>

CSS 클래스는 다음과 같습니다.

.bTop
{
    width: 960px;
    height: 111px;
    background-image: url('../Images/BackTop.jpg');
}
.bLeft
{
    width: 212px;
    height: 280px;
    background-image: url('../Images/BackLeft.jpg');    

}

.middle
{
    width: 536px;
    height: 280px;
}

.bRight
{
    width: 212px;
    height: 280px;
    background-image: url('../Images/BackRight.jpg');    
}

.bBottom
{        
    width: 960px;
    height: 111px;
    background-image: url('../Images/BackBottom.jpg');       
}

내 문제는 테이블의 셀 사이에 얇은 흰색 선이 표시된다는 것입니다. 사진의 테두리가 연속적이지 않다는 것을 의미합니다. 이 공백을 어떻게 피할 수 있습니까?

답변:


179
<table cellspacing="0" cellpadding="0">

그리고 CSS에서 :

table {border: none;}

편집 : iGEL이 지적 했듯이이 솔루션은 공식적으로 사용되지 않으며 (아직 작동하지만) 처음부터 시작하는 경우 jnpcl의 border-collapse 솔루션을 사용해야합니다.

나는 실제로 지금 까지이 변경을 싫어합니다 (자주 사용하는 테이블에서는 작동하지 않습니다). 일부 작업을 좀 더 복잡하게 만듭니다. 예를 들어 같은 위치에 두 개의 서로 다른 테두리를 포함하려는 경우 (시각적), 한 행은 TOP이고 다른 행은 BOTTOM입니다. 그것들은 무너질 것입니다 (= 그들 중 하나만 보여 질 것입니다). 그런 다음 테두리의 "우선 순위"가 어떻게 계산되고 어떤 테두리 스타일이 "더 강한"(더블 대 솔리드 등)인지 연구해야합니다.

나는 이것을 좋아했다 :

<table cellspacing="0" cellpadding="0">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>

----------

.first {border-bottom:1px solid #EEE;}
.second {border-top:1px solid #CCC;}

이제 테두리가 축소되면 항상 하나의 테두리가 제거되어 작동하지 않습니다. 나는 다른 방법으로해야합니다 (c의 해결책이 더 있습니다). 한 가지 가능성은 box-shadow와 함께 CSS3를 사용하는 것입니다.

<table class="tab">
  <tr>
    <td class="first">first row</td>
  </tr>
  <tr>
    <td class="second">second row</td>
  </tr>
</table>​​​

<style>
.tab {border-collapse:collapse;}
.tab .first {border-bottom:1px solid #EEE;}
.tab .second {border-top:1px solid #CCC;box-shadow: inset 0 1px 0 #CCC;}​
</style>

하나의 테두리만으로 "groove | ridge | inset | outset"테두리 스타일과 같은 것을 사용할 수도 있습니다. 그러나 두 가지 색상을 모두 제어 할 수 없기 때문에 이것이 최적이 아닙니다.

어쩌면 국경을 무너 뜨릴 수있는 간단하고 멋진 해결책이있을 수 있지만 아직 보지 못했고 정직하게 많은 시간을 보지 못했습니다. 어쩌면 여기 누군가가 나를 보여줄 수있을 것입니다.


7
cellspacing 및 cellpadding은 1999 년부터 더 이상 사용되지 않습니다. developer.mozilla.org/en-US/docs/HTML/Element/table을 참조하십시오 . @jnpcl 솔루션을 사용해야합니다.
iGEL

iGEL이 맞습니다. 제 답변을 편집했습니다. 솔직히 말해서, 그것은 오래 동안 더 이상 사용되지 않으며 여전히 아무런 문제없이 사용하고 있습니다 :)
Damb


19

나를 위해 테이블과 모든 셀에서 테두리를 완전히 제거하기 위해 이와 같은 작업을 수행해야했습니다. 이것은 HTML을 전혀 수정하지 않아도되어 내 경우에 도움이되었습니다.

table, tr, td {
    border: none;
}

3
여기까지 모든 제안을 시도하고 마침내 국경없는 테이블을 만들기 border: none위해 td설득력있는 jekyll에 적용 :<td markdown="span" style="padding: 0.5vw; border: none; max-width:100%; max-height:10%; background: transparent;">
Avio

16

부트 스트랩 환경에서는 최상위 답변이 도움이되지 않았지만 다음을 적용하면 모든 경계가 제거되었습니다.

.noBorder {
    border:none !important;
}

다음과 같이 적용됩니다 :

<td class="noBorder">

1
이 제안은 Wordpress에서 저에게 효과적이었습니다. 국경을 지키는 데 어려움을 겪고있었습니다.
robbpriestley

7

부트 스트랩 환경에서 내 솔루션은 다음과 같습니다.

    <table style="border-collapse: collapse; border: none;">
        <tr style="border: none;">
            <td style="border: none;">
            </td>
        </tr>
    </table>    

4

이것이 나를 위해 문제를 해결 한 것입니다.

HTML tr 태그에서 다음을 추가하십시오.

style="border-collapse: collapse; border: none;"

테이블 행에 표시된 모든 테두리가 제거되었습니다.

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