2017-09-22 56 views
2

我有一個應用了border-collapse的表格。我想在表格中刪除一些td邊框,例如border-right。我使用下面的CSS來完成這項工作,但是這段代碼也刪除了我不想刪除的其他邊框的1px。事實上,它增加了1px solid white表中的頂部和底部邊框在去除border-right在那裏在html中刪除特定邊框的完美方法

.no-border-right { 
 
     border-right: solid 10px #FFF!important; 
 
    } 
 

 
    table { 
 
     border-collapse: collapse; 
 
     font-size: 16px; 
 
     padding: 6px; 
 
    } 
 
    table td { 
 
     border: 10px solid gray;  
 
    } 
 
    table th { 
 
     border: 10px solid gray;  
 
    }
<table align="center"> 
 
    <tr> 
 
     <th>sl</th> 
 
     <th>name</th> 
 
     <th>score</th> 
 
     <th>rank</th> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td>John</td> 
 
     <td>2</td> 
 
     <td>1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td class="no-border-right">James</td> 
 
     <td>1</td> 
 
     <td>2</td> 
 
    </tr> 
 
</table>

<table> 
    <tr> 
     <th></th> 
     <th></th> 
     <th></th> 
    </tr> 
    <tr> 
     <td></td> 
     <td class="no-border-right"></td> 
     <td></td> 
    </tr> 
</table> 

如何刪除而不影響其他的邊界?

Output table

從片段我預期的結果是下面:

Expected output

+2

需要看到的其餘代碼(HTML/CSS)或頁面的渲染副本。 – Pytth

+0

@Pytth,請參閱最新的問題。 – theJohn

回答

2

table { 
 
    border-collapse: collapse; 
 
    padding: 6px; 
 
} 
 
table td, table th { 
 
    border: 1px solid gray; 
 
} 
 
table td.no-border-right { 
 
    border-right: none!important; 
 
} 
 
table td.no-border-right + td { 
 
    border-left: none!important; 
 
}
<table align="center"> 
 
    <tr> 
 
     <th>sl</th> 
 
     <th>name</th> 
 
     <th>score</th> 
 
     <th>rank</th> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td>John</td> 
 
     <td>2</td> 
 
     <td>1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td class="no-border-right">James</td> 
 
     <td>1</td> 
 
     <td>2</td> 
 
    </tr> 
 
</table>

+0

我仍然可以看到白色的1px點。 – theJohn

+0

我編輯的代碼。請再試一次 –

+0

這將刪除表格中的所有邊框。我想要特定的邊框。請查看更新後的問題。 – theJohn

0

您需要使用border-right: none;應該爲你做,還如果您遇到困難,我會在那裏向您留下一段代碼片段。

.no-border-right { 
 
    border: 1px solid red; 
 
    display: inline-block; 
 
    /* from here up is not it's necessary just to help visually see it demonstration */ 
 
    
 
    border-right: none; /* Use this to remove right border */ 
 
}
<div class="no-border-right"> 
 
    <p>Hello Wolrd!</p> 
 
</div>

+0

請嘗試使用我的代碼段。我也更新了我的問題 – theJohn

+0

這不起作用。我正在處理html表格,而不是div – theJohn

+0

抱歉。 – Kingcools

0

做出正確的邊界顏色的alpha 0,象這樣:

border-right { 10px solid rgba(0,0,0,0); } 

.no-border-right { 
 
     border-right: 10px solid rgba(0,0,0,0); 
 
    } 
 

 
    table { 
 
     border-collapse: collapse; 
 
     font-size: 16px; 
 
     padding: 6px; 
 
    } 
 
    table td { 
 
     border: 10px solid gray;  
 
    } 
 
    table th { 
 
     border: 10px solid gray;  
 
    }
<table align="center"> 
 
    <tr> 
 
     <th>sl</th> 
 
     <th>name</th> 
 
     <th>score</th> 
 
     <th>rank</th> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td>John</td> 
 
     <td>2</td> 
 
     <td>1</td> 
 
    </tr> 
 
    <tr> 
 
     <td>1</td> 
 
     <td class="no-border-right">James</td> 
 
     <td>1</td> 
 
     <td>2</td> 
 
    </tr> 
 
</table>

+0

感謝您的回答,但正如您從代碼段的輸出中看到的那樣,白色仍然在James – theJohn

+0

的正上方不在我的屏幕上。你使用的是什麼瀏覽器?我在最新的Chrome上。 – sn3ll

+0

我使用的是最新的Firefox – theJohn