2017-08-06 58 views
-3

我通過的Javascript轉化邊框與標題

onScroll={() => { 
    document.querySelector('thead').style.transform = 
    `translate(0,${this.scrollRef.scrollTop}px)`; 
}} 

鎖定表頭,但是當我滾動表頭邊框不會粘在頭。

滾動時如何讓邊框保留在標題上?

+0

@meagar,大多數'react'和'angular'問題在[so]的問題本身不包含[mcve]。與此不同的是,大多數甚至都不包含指向示例的鏈接。他們是否應該像話題一樣被封閉?我個人認爲這個問題有明確的問題陳述,因此可以回答,這對未來的訪問者來說可能會有類似的問題。 –

+0

@AndreiGheorghiu是的,他們應該。這裏的問題不能依賴於Github回購或任何其他非現場資源的鏈接。如果在沒有將用戶引導到您設置的測試站點的情況下無法提出問題,那麼問題就是堆棧溢出問題。 「可回答」不是我們關於主題的標準。 – meagar

+0

編輯刪除非現場引用的問題 – Avery235

回答

0

這將解決您的問題:

thead th { 
    position:relative; 
} 
thead th:before { 
    content: ''; 
    position: absolute; 
    height: calc(100% + 2px); 
    width: calc(100% + 2px); 
    border: 1px solid black; 
    top: -1px; 
    left: -1px; 
    pointer-events: none; 
} 

不,JavaScript是不是轉化邊界。問題是邊框實際上並不是<th>元素的一部分,因爲它們已摺疊。

在內部,瀏覽器檢查相鄰元素以確定組合邊框。這些邊界的位置沒有考慮到transform s應用於<th>元素,但它們的最初的在DOM中的位置。

最簡單的解決方案是使用:before僞元素來繪製邊框。


其他的解決辦法是在你的<table>,通過bootstrap.css應用覆蓋

border-collapse: collapse; 


但是這意味着你的表格邊框將不再被摺疊(合併),而且很可能你不需要這樣做。