2016-06-08 17 views
8

Ho bisogno di rimuovere le stringhe che non hanno un tag html.Come rimuovere una stringa che non ha un tag html con i CSS

Ad esempio:

<div class="A"> 
 
    <a href="#" class="link">keep this</a> and i want to remove this 
 
</div>

Posso fare questo utilizzando solo i CSS?

+0

non si può, dal momento che il css non è usato per codificare molto, usa js o jQuery invece – Himanshu

+7

Finora ci sono 3 p persone che non sono d'accordo con questo commento. – durbnpoisn

+1

La soluzione CSS non rimuove rigorosamente il testo, ma lo nasconde. Ma è una soluzione innovativa. – Kyle

risposta

12

forse è possibile utilizzare font-size ::

.A { 
 
    font-size: 0; 
 
} 
 
.A a { 
 
    font-size: 20px; 
 
}
<div class="A"> 
 
    <a href="#" class="link">keep this</a> and i want to remove this 
 
</div>

+1

Stavo proprio per scrivere esattamente la stessa cosa. Non pensare che ci sia un altro modo. – Anton

+0

Haha ... La mia risposta è sorprendentemente simile, ma usando il colore. – durbnpoisn

+0

Sì @durbnpoisn stesso principio nascondi tutto ... mostra con i tag di destinazione :) – DaniP

5

impostare lo stile interno di classe "A" per essere vuoto per impostazione predefinita. Imposta una classe secondaria per gestire ".A a". Questo ti permetterà di avere due stili diversi. Uno per ancorati, uno per non.

.A { color: rgba(0, 0, 0, 0.5); } //Set this to transparent 
.A a { color: #000 } 

Qualcosa del genere.

+2

Non pensavo a quel modo - bello! –

9

Si potrebbe utilizzare visibility:

.A { 
 
    visibility: hidden; 
 
} 
 
.A a { 
 
    visibility: visible; 
 
}
<div class="A"> 
 
    <a href="#" class="link">keep this</a> and i want to remove this 
 
</div>

NOTA - naturalmente questo non rimuovere la stringa/elemento in questione dal DOM sé, semplicemente lo nasconde, ma ottiene lo stesso scopo .

+0

I Love Programming = D ottima soluzione – andre3wap

1

Non è possibile farlo con puro css. Se non è possibile modificare il markup, sarà necessario utilizzare JS per afferrare il contenuto che si desidera conservare e rimuovere il resto.

Se si dispone di un controllo sulla marcatura, è consigliabile prendere in considerazione l'utilizzo di marcature diverse. Potresti avere un elemento alternativo inizialmente nascosto.

<div class="A"> 
    <a href="#" class="link">keep this</a> and i want to remove this 
</div> 
<div class="A hidden"> 
    <a href="#" class="link">keep this</a> 
</div> 

si potrebbe anche racchiudere l'altro contenuto che si desidera rimuovere in un tag span e dargli una classe che è possibile fare riferimento in seguito.

<div class="A"> 
    <a href="#" class="link">keep this</a> <span class="bad-stuff">and i want to remove this</span> 
</div> 
2

È inoltre possibile utilizzare display: none con il :not() pseudo-selettore

.A :not(a) { 
    display: none; 
} 

EDIT: Questo non funziona

Né fa questo:

.A { 
    display:none 
} 

.A a { 
    display: inline!important; 
} 
+0

Forse puoi rifare il tuo selettore https://jsfiddle.net/Lrmgks6q/ – DaniP

Problemi correlati