CSS: Wie kann ich die Unterlinie des Texts wegbekommen?
Hallo. Irgendwie geht die text-decoration bei mir nicht weg. Bitte helft mir.
HTML:
<button class="cn"><a href="#">create</a></button>
CSS:
.cn {
text-decoration: none;
width: 160px;
height: 40px;
background: #23002f;
border: none;
margin-bottom: 10px;
margin-left: 20px;
font-size: 18px;
border-radius: 10px;
cursor: pointer;
transition: .4s ease;
margin-left: 350px;
margin-top: 5px;
}
2 Antworten
Validiere erst einmal dein HTML-Markup und behebe die angezeigten Fehler. Weder das <button> Element darf ein <a> Element enthalten, noch umgekehrt. Entweder es handelt sich um einen Button, oder es ist ein Link, der auf etwas verweist. Die text-decoration: underline stammt von deinem Anker-Tag, mit deiner Klasse referenzierst du jedoch das umschließende <button> Element. Folglich wird der Anker in deinem CSS nicht angesprochen und wie gewünscht formatiert.
Da eine Verschachtelung dieser Elemente ohnehin nicht erlaubt ist, solltest du dir darüber Gedanken machen, welches Element an dieser Stelle das richtige ist. Benötigst du einen Button (z.B. für eine Funktion) oder bloß einen Link als Verweis? Mein gut gemeinter Tipp an dich: Lese dir essenzielles HTML-Grundlagenwissen an und verwende zusätzlich den Validator des W3C. Mit dessen Hilfe kannst du ohne fremdes Zutun schnell (semantische) Fehler erkennen und beheben.
HTML:
<button class="cn">create</button>
CSS:
.cn {
width: 160px;
height: 40px;
margin: 5px 0 10px 20px;
border: none;
border-radius: 10px;
background: #23002f;
font-size: 18px;
cursor: pointer;
trasition: .4s ease;
}
Nachtrag:
Unswar möchte ich einen button haben mit einen link und wenn ich nur link nehme habe ich kein button
Technisch gesehen handelt es sich also um einen Link, der lediglich visuell als Button angezeigt wird. In dem Fall wäre das <a> Element die richtige Wahl. Das Aussehen des Ankers setzt du dann mithilfe von CSS um.
HTML:
<a href="#" class="btn-cn">create</a>
CSS:
.btn-cn {
width: 160px;
height: 40px;
padding-left: 1rem;
display: inline-block;
line-height: 2.5;
text-decoration: none;
color: #fff;
background-color: #23002f;
border-radius: 5px;
}
LG medmonk
![- (Computer, Technik, Internet)](https://images.gutefrage.net/media/fragen-antworten/bilder/450133675/0_big.png?v=1650082609000)
Die Linie ist nicht vom Button, sondern vom Link (<a>). Du musst die CSS-Eigenschaften schon dem richtigen Element zuweisen.
Du hast zwei Elemente: Ein <button> und darin ein <a>. Die CSS-Eigenschaften sind alle für den <button>, aber die Linie stammt nicht vom <button>, sondern vom <a>. Was ist daran schwer zu verstehen?
Ach ja, ich bin mir ziemlich sicher, dass es eine schlechte Idee ist, einen Link in einen Button zu stecken. Verwende entweder einen Button oder einen Link, nicht beides.
Hallo das klappt nicht... Unswar möchte ich einen button haben mit einen link und wenn ich nur link nehme habe ich kein button und andersrum deswegen wollte ich ja beides machen
Diese Kombination ist aber falsch. Innerhalb eines button-Elements sind Links nicht erlaubt und dasselbe gilt andersherum. Einen Button, der auf eine andere Seite verweist, kann man sich schnell mit einem Formular zusammenbauen:
<form action="your target URL ..." title="Go to ...">
<button>Go to ...</button>
</form>
Das ist kein guter Stil. Für Präsentierung ist CSS da, nicht HTML. Wenn der Link wie ein Button aussehen soll, ist das mit CSS einfach:
.buttonLink {
display: inline-block;
border: 1px solid gray;
padding: 0.5em 1em;
border-radius: 0.2em;
color: inherit;
background-color: #ddd;
text-decoration: none;
}
Oder so ähnlich.
Du solltest in css folgendes hinzufügen
a
{
text-decoration: none;
color: ...;
background-color: ...;
}
Weiß grad nicht was du meinst... Wie ist das den richtig? Ich mein alle css eigenschaften klappen außer text decoration