我需要從CSS上的@media print的不同元素中移除類,并將這些類添加到@media屏幕上。
有辦法從CSS文件中移除類嗎?
類似于:
@media print{
.element{/*Remove class*/}
}
@media screen{
.element{/*Add class*/}
}
我需要在打印時從這些元素中刪除由jQuery函數添加的ui-tabs-hide(它以一種奇怪的方式隱藏元素,因為它不是display:block或display:none)類,并在打印完成后將其放回。
不。CSS不能修改DOM,只能修改它的表示。
CSS不能從HTML文檔中提取元素,但是你可以嘗試這樣做:
@media print{
element.relevantclass
{
display: none;
}
這將告訴印刷媒體不要顯示此元素。
您可以使用jQuery來做到這一點。
$(<element>).removeClass() // or removeClass(<the class to be removed>)
$(<element>).addClass(<new class>)
如果您想在頁面加載時這樣做,您可以將它包含在文檔就緒功能中(如下所示)
$( document ).ready(function() {
$(<element>).removeClass()
$(<element>).addClass(<new class>)
});
這對OP沒有幫助,但對其他人可能有用。如何使用CSS & quot。
正如Quentin所提到的,雖然不可能使用CSS從DOM中刪除實際的類,但在某些情況下,使用revert或unset(可能與all結合使用)可以刪除該類應用的樣式。
下面是一個示例,它將錨點樣式設置為觸摸設備上的按鈕,但如果鼠標可用,則移除該樣式:
.button-anchor {
/* example of a class that modifies many properties */
display: inline-flex;
justify-content: center;
align-items: center;
column-gap: 0.5em;
background-color: steelblue;
color: white;
border: none;
border-radius: 4px;
padding: 8px 16px;
cursor: pointer;
text-decoration: none;
text-align: center;
}
@media (pointer: fine) {
.button-anchor {
all: revert;
}
}
<a class="button-anchor" href="">click me</a>