2012-04-04 6 views
2

Meine CSS folgenden:CSS Style Element, wenn es nicht enthält enthält eine andere spezielle Art von Elemente

#mainbody a[href ^='http']  { 
     background:transparent url('/images/icons/external.svg') no-repeat top right; 
     padding-right: 12px; 
} 

Dies stellt ein „externes“ Symbol neben den Links, die mit „http“ (allen internen Seiten Links starten sind relativ). Funktioniert perfekt, außer wenn ich ein Bild verlinke, erhält es auch dieses Symbol.

Zum Beispiel: <a href='http://example.com'><img src='whatever.jpg'/></a> würde auch das "externe" Symbol neben dem Bild bekommen. Ich kann damit leben, wenn es nötig ist, aber ich möchte es beseitigen.

Dies muss in CSS implementiert werden (kein JS); darf keine speziellen IDs, Klassen, Styling im HTML für das Bild oder Anker um das Bild benötigen. Ist das möglich?

Antwort

2

Es ist Groß-und Kleinschreibung. Verwenden Sie einfach alle überdeckten HTTP: für Bildlinks.

+0

Nun, das ist sicherlich einfach; erfüllt nicht die Anforderungen, da der HTML-Code geändert werden muss. Dies könnte jedoch der einfachste Weg sein, um das gewünschte Ergebnis zu erzielen. Kudos. –

2

Sie können entweder: -

  • nur relative Links für Bilder verwenden
  • Link zu einer nackten Domäne für Bilder (z http://domain.com) und den externen Link Filter www beheben. anstatt http.

Kein CSS erforderlich - Sie müssen grundsätzlich einen weniger häufig verwendeten Filter verwenden.

+0

Das Problem, über das ich laufe, sind Software/Company Buttons, diese würden immer auf eine externe Seite verlinken ... obwohl ich vielleicht einen Redirector einrichten könnte. Ich versuche auch das "www" für alle außer [Wall of Fail] (http://no-www.org/roster.php) Domains zu vermeiden. Der Filter ist auch absichtlich kurz, um https-Links zu fangen, obwohl ich einen separaten Link dafür einrichten könnte. Essen für obwohl; Vielen Dank! –

+0

Es ist sehr schwierig. Es ist auch möglich, Bilder von einer Unterdomäne zu verknüpfen und einen darauf basierenden Gegenfilter einzurichten, um das Bild zu entfernen. – toomanyairmiles

+0

Das Symbol befindet sich jedoch auf dem Bild, es befindet sich auf dem Anker (der nur das Bild enthält). Das Ändern der Bildverknüpfung hätte keine Auswirkung. –

Verwandte Themen