Probleme mit einem CSS Menü

Status
Nicht offen für weitere Antworten.
BSA hat gesagt.:
a:hover
{
color: #000000;
}

Ne, leider ned die Lösung.
Also color ändert bei mir nur die Schriftfarbe und die soll
weiß sein. Um den Hintergrund zu ändern nehme ich
backround-color black.

Das ist ja auch okay, aber das Schwarze erstreckt sich nur über die Schriftfläche, nicht aber über die ganze Tabelle. Eingangs hatte ich ein Beispiel gezeigt, wo es so realisiert wurde, wie ich es gerne hätte, aber ich habe keine Ahnung, wie ich das bei mir umsetzen soll.

Christian
 
Das beste und naheliegendste Beispiel (ohne einen Fremdlink zu setzen) ist doch wohl turorials.de oder nicht?
Ich guck gerade nochmal.....
 
Hi,

wenn Du es mit CSS lösen willst, solltest Du die Links in Blockelemente umwandeln.
Dies erfolgt über die Eigenschaft display: block. Deine CSS-Definition für a:link
sieht dann wie folgt aus:
Code:
A:link{ FONT-WEIGHT: bold;
        COLOR: #000000;
        TEXT-DECORATION: none;
        display: block;     /* Als Blockelement festlegen */
        height: 100%;       /* Gesamte Zellenhöhe verwenden */
        width: 100%;        /* Gesamte Zellenbreite verwenden */
        line-height: 35px;  /* Zeilenhöhe auf die Höhe der Tabellenzeile festlegen */
}
Über die Eigenschaft line-height erreichst Du die vertikale Zentrierung. Der
Wert, den Du hier angeben musst, entspricht der Höhe der Tabellenzeile.

Ciao
Quaese
 
@ BSA

Der Autor meiner gelinkten Seite hat auf tuturials ein Tutorial verfasst, aber dieses kann ich wie gesagt nicht bei mir einbauen.

Tutorials ==> CSS => Buttos mit CSS

@ Martys
Hmm, okay den Befehl kannte ich nicht, aber denselben Effekt bekommt man, wenn padding-left und pedding-right auf 50% gesetzt werden.
Das ganze füllt aber nur die Tabelle nach Links und nach Rechts aber nicht nach Oben und Unten.

Wenn du da noch eine Idee parat hast, wäre ich dir sehr dankbar.

Christian
 
Also so sieht mein CSS Abschnitt jetzt aus:

Code:
a:link {
  font-weight: bold;
  color:#000000;
  text-decoration:none;
  display:block;     /* Als Blockelement festlegen */
  height:100%;       /* Gesamte Zellenhöhe verwenden */
  width:100%;        /* Gesamte Zellenbreite verwenden */
  line-height:35px;  /* Zeilenhöhe auf die Höhe der Tabellenzeile festlegen */ }

a:visited {
  color:#000000;
  font:timesnewroman;
  text-decoration:none;
  font-weight:bold; }

a:hover {
  color:#ffffff;
  font:timesnewroman;
  font-weight:bold;
  text-decoration:none;
  background-color : #000000;
  display: block }

Das Ergebnis ist aber nicht so, wie du es geschrieben hast Quaese.
Ich lade die Datei mal hoch, dann könnt ihr den momentanen stand sehen:

css
html

Also ich seh es gerade im Netz. Es klappt! Ich denke das war die Lösung des Rätsels. Muss ich mir zwar nochmal genau anschauen, aber Opera setzt es richtig um. IE setzt es auch um. Komischer Weise nur bei dem Inet link, auf meinem Rechner setzt er es noch nicht um.

Es hat also ohne JS geklappt. Super! Vielen Dank, tolle Community.
 
Zuletzt bearbeitet von einem Moderator:
Okay, ich habe jetzt ein Beispiel zusammengebastelt, was du dann nur noch in deine Seite einbauen müsstest.
Ist aber ein Mix aus CSS und JS.

Also:

Code:
<html>
<head>
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<table border=1>
 <tr>
  <td style="cursor:hand" onMouseDown="location.href = '#'"
  onmouseover="this.style.backgroundColor='#FF0000'"
  onmouseout="this.style.backgroundColor='#FFFFFF'" >Hallo</td>
 </tr>
</table>
</body>
</html>
 
Hallo,
erste Wortmeldung - hoffe, ich kann weiterhelfen, und mache es richtig:

wenn Du den Code wie folgt ergänzt, dann kommst Du auch ohne die Farbe "rot" aus:
Code:
onmouseover="this.style.backgroundColor='#000000'; 
this.style.color='#FFFFFF'"
onmouseout="this.style.backgroundColor='#FFFFFF'; 
this.style.color='#000000'"

Marcus
 
Hallo chrislennep

Was Du da gemacht hast, kann nicht funktionieren! Grundsätzlich könntest Du nämlich meinen CSS-Code und die Anwendung nur aus meinem Tutorial kopieren und noch mit den entsprechenden Eigenschaften "füllen" und alles würde funktionieren so wie es das bereits bei vielen anderen tu t:)

Erstens: Wenn Du Dir mein Tutorial anschaust, siehst Du, dass ich nicht mit id's arbeite, sondern mit Klassen. Zweitens: Mittels der CSS-Klasse "menu" weise ich ich der Tabelle zu, dass jeder Link in einem Tabellenfeld ein Block-Level-Element ist und dann je nach Action (hover) resp. Zustand (visited) verschiedene Eigenschaften annimmt.

Dazu wird die Basis-Klasse

Code:
 table.menu a 
   {
    display: block ;
   hier stehen die CSS-Eigenschaften
   }

benötigt. Und hier steht natürlich - wie einige bereits richtig feststellten und im Tutorial auch erwähnt ist - die Anweisung display:block . Damit werden die Tabellenfeldern zu sogenannten Block-Elementen, d.h. das ganze Feld ändert sich dann mit den weiteren Anweisungen unten und nicht nur der direkte Hintergrund hinter dem Text..

Nun musst Du wie bei jeder anderen Link-Formatierung auch die Eigenschaften für a:link, a:visitited und a:hover vorgeben, denn sonst ändert sich ja beim Überfahren des Links mit der Maus nichts und ein bereits angeklickter Link wird eben auch nicht als "visited" dargestellt. Daher also zusätzlich das, was ich im Tutorial bereits gezeigt habe:

Code:
 table.menu a:link 
   {
   hier stehen die Eigenschaften
   }
 table.menu a:visited 
   {
   hier stehen die Eigenschaften
   }
 table.menu a:hover 
   {
   hier stehen die Eigenschaften
   }

Die Klasse "menu" weise ich wie im Tutorial dargestellt einfach im Tabellenkopf (<table class="menu">). Die Tabellenlinks verhalten sich nun so wie auf meiner Seite zu sehen ist - mit einer Ausnahme: Ein gerade aktueller Link wird nicht anders dargestellt.


Ich habe nun zusätzlich eine "Unter-Klasse" für die Links definiert:

Code:
 table.menu TD.down a:link 
   {
   hier stehen die Eigenschaften
   }
 table.menu TD.down a:visited 
   {
   hier stehen die Eigenschaften
   }
 table.menu TD.down a:hover 
   {
   hier stehen die Eigenschaften
   }

Diese Unterklasse weise ich nun nicht mehr der gesamten Menü-Tabelle zu, sondern nur dem Feld, das als "gedrückt" dargestellt werden muss, also mit <td class='down'>.

Die Menü-Tabelle sieht dann also so aus:

Code:
 <table class="menu">
   <tr> 
     <td class='down'> <!-- dieser "Button" wird als gedrückt dargestellt -->
       (hier steht der Link) 
     </td>
   </tr>
   <tr>
     <td> <!-- dieser "Button" wird als nicht gedrückt dargestellt -->
       (hier steht der Link) 
     </td>
   </tr>
 </table>

Wenn Du nun wilst, dass alles ganz bestimmt nicht funktioniert, musst Du einfach alles wieder nach Deinem Gusto ändern :) Soll es jedoch funktionieren, kannst Du das Ganze einfach kopieren, die Eigenschaften für die Links dort einfüllen, wo steht "hier stehen die Eigenschaften" und dann läuft's auch bei Dir. Die CSS-Klasse für die Tabelle kannst Du ja für einen ersten Test gleich belassen wie ich das im Tutorial angegeben habe (ausser dass Du sie bei Verwendung mit einer Tabelle entsprechend umbenennen muss).

Wenn Du's nicht glaubst, dass es so funktioniert, schau Dir den HTML-Code meiner Seite an, denn ich habe da wirklich nichts anderes gemacht als was ich im Tut und auch hier erklärt habe.

Gruss
René
 
Zuletzt bearbeitet:
Also noch eine Anmerkung, nachdem da einige auch Vorschläge angebracht haben: Meine Lösung benötigt nur CSS, während jedoch andere Vorschlage auf JavaScript aufbauen. Nun, jedem das Seine, ich selbst verwende möglichst kein JS, da dann bei ausgeschaltetem JS (und das tun immer mehr User) der ganze Effekt weg ist.

Wie gesagt, jedem das Seine und mir das Meine :)

Gruss
René
 
Status
Nicht offen für weitere Antworten.
Zurück