[英]How can I style :visited <a> elements that use React's onClick="" instead of href=""?
由於信息量很大,用戶可能會混淆他們關注了哪些鏈接,哪些鏈接沒有觸及; 因此,當懸停在用戶已經訪問過的鏈接上時,我想用不同的顏色進行標記。
默認情況下,我的鏈接顏色為黑色,如果您在鏈接上使用 hover,它會亮起藍色。 我希望用戶訪問的鏈接以不同的顏色突出顯示。
以下是我如何編寫路線的示例
export default function DeviceCell({ device }) {
const router = useNavigate()
return (
<TableRow>
<TableCell>
<a className="page-links" onClick={() => router(device.id)}>List of users</a>
</TableCell>
</TableRow>
);
}
還有我的.css 文件
.page-links {
color: #3A3A3F;
text-decoration: none;
border-bottom: 1px black solid;
border-bottom-width: 2px;
cursor: pointer;
}
.page-links:hover {
color: #485FED;
border-bottom: 1px #485FED solid;
border-bottom-width: 2px;
}
a:hover 必須在 CSS 定義中的 a:link 和 a:visited 之后才能生效。
.page-links{
text-decoration: none;
border-bottom: 1px black solid;
border-bottom-width: 2px;
color: #3A3A3F;
cursor: pointer;
}
.page-links:visited {
color: red;
}
.page-links:hover{
color: #485FED;
border-bottom: 1px #485FED solid;
border-bottom-width: 2px;
}
你的問題可以通過再關聯一個 function 來解決,當用戶點擊鏈接時,它會改變鏈接的顏色
onclick = existing-function; changeColor() => {
document.this.style.color = "color";}
使用分號分隔兩個函數。
根據您所說的問題,有兩種情況“單擊鏈接並返回頁面后,當您通過鏈接時 hover 仍然亮藍色”
是否要將單擊的鏈接保留在單個 session 中?
您希望訪問過的鏈接在多個會話中持續存在嗎?
希望這可以幫助
如果我們想使用:visited CSS 偽選擇器,基本上我們必須創建瀏覽器歷史記錄,因為visited 偽選擇器依賴於它。 無需使用 HTML 錨元素創建真正導航的方法是History API 。 為了解決這個問題,我們必須在鏈接中添加符號 href 以推送歷史狀態並防止默認的 HTML 鏈接導航事件行為。
export default function DeviceCell({ device }) {
const router = useNavigate()
const handleClick = (e) => {
// Prevent default HTML Anchor Event
e.preventDefault();
window.history.pushState({ data: device.id }, `Data: ${device.id}`, e.target.href);
}
return (
<TableRow>
<TableCell>
<a href={`/user/${device.id}`} className="page-links" onClick={() => router(device.id)}>List of users</a>
</TableCell>
</TableRow>
)}
CSS:
a.page-links:hover:visited {
background-color: #dc2626;
color: white;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.