2016-07-25 6 views
1

ich die Worte meines Link wollen nur zu zeigen, rot und unterstrichen sein, wenn es schwebte, und dies ist mein Code:Unterstrichen von <a> Link geht nicht einen Weg

a:hover div { 
 
    text-decoration: underline; 
 
} 
 
a div{ 
 
    color: red; 
 
    text-decoration: none; 
 
}
<a href=""> 
 
    <div>next page</div> 
 
</a>

Jetzt ist die Farbe des Textes rot, aber die Unterstreichung verschwindet nicht. Warum?

+0

Wie kann ein Inline-Element 'a' ein Blockelement enthalten' div' –

+1

@MarkPerera In HTML5 Sie ein Block-Element in einem Inline haben Element. –

+0

Lesen Sie einfach darüber. Funktioniert aber nur mit 'a' –

Antwort

1

Die unterstrichenen ist nicht in der Div auf einen Stil durch:

Aber für den Browser, die dieses Verhalten zu unterstützen, wird Ihre Lösung dieser unter Schnipsel sein. Dies ist der Standardstil für das a-Tag. Entfernen Sie die div Teil in Ihrem CSS-Selektor:

a:hover { 
 
    text-decoration: underline; 
 
} 
 
a { 
 
    color: red; 
 
    text-decoration: none; 
 
}
<a href=""> 
 
    <div>next page</div> 
 
</a>

1

Versuchen Sie dies, setzen Sie einfach text-decoration:none für a tag.

a{ 
    color: red; 
    text-decoration: none; 
} 

a:hover div { 
text-decoration: underline; 
} 

a:hover div { 
 
     text-decoration: underline; 
 
    } 
 
a{ 
 
     color: red; 
 
     text-decoration: none; 
 
    }
<a href=""> 
 
     <div>next page</div> 
 
</a>

1

Sie können keine Block-Level-Element (div) innerhalb eines Inline-Element (a) haben. Also der Browser, der es noch nicht unterstützt, könnte die div aus der a werfen. Verwenden Sie stattdessen eine span und geben Sie die display: block an, während a entweder in block oder inline-block.

a { 
 
    color: red; 
 
    text-decoration: none; 
 
} 
 
a:hover div { 
 
    text-decoration: underline; 
 
}
<a href=""> 
 
    <div>next page</div> 
 
</a>

+0

Kannst du mehr erklären, warum das funktionieren würde? – Gropai

+0

@Gropai Sie können kein Blocklevel-Element ("div") innerhalb eines Inline-Elements ("a") haben. Also der Browser, der es noch nicht unterstützt, könnte das 'div' aus dem' a' werfen. Verwenden Sie stattdessen einen 'span' und geben Sie den' display: block' an, während Sie 'a' entweder in' block' oder 'inline-block' haben. –

+0

@PraveenKumar das Web ist weitergegangen, du kannst so ziemlich alles, was du willst, in ein Anchor-Tag stecken;) – Pete

Verwandte Themen