Anfänger-Problem mit Formatierung

Drogist

Erfahrenes Mitglied
Hallo,

ich baue mir gerade eine CSS-Datei für eine HP zusammen. Alles klappt auch bis jetzt, nur an einer Stelle hapert es (bis jetzt) noch: "NachOben" ist der Übeltäter.

Also, der Text/Link soll rechtsbündig und in brauner Farbe sein.

Wenn ich folgende Zeile eingebe:
Code:
<p class="NachOben"><a href="#Top">nach oben …</a></p>
dann wird mir der Link in der Farbe blau angezeigt. Ohne href klappt es prima.

Mache ich es so:
Code:
<p align="right"><a href="#Top" class="NachOben">&nbsp;nach oben …&nbsp;</a></p>
dann t es, aber das kann es doch nicht sein, oder?
Denn:
Code:
<p><a href="#Top" class="NachOben">&nbsp;nach oben …&nbsp;</a></p>
So habe ich zwar einen Braunton aber die Ausrichtung ist links. :(

Und so:
Code:
<p class="NachOben"><a href="#Top">nach oben …</a></p>
is nix mit braun, blau ist angesagt, offensichtlich wegen des Links. :mad:

Ergo: Ich mache irgendwo einen Fehler, aber wo und warum? Ich freue mich auf eute Antwort(en)!


Hier meine komplette CSS-Datei. Komplett, weil bestimmt irgendwo ein Regisseur sitzt, und alles anders macht, als ich es will ;-)


Code:
@charset "utf-8";

* {
	font-family: Verdana, Arial, Helvetica, Geneva, sans-serif;
	background-color: #FFFFFF;
	background: transparent;
	padding-top: 0px;
	padding-right: 0px;
	padding-bottom: 0;
	padding-left: 0;
	margin: 0;
	list-style-position: inside;
	list-style-type: square;
}


body {
	font: 99%;
	list-style-type: square;
	background-color: #3366FF;
	width: 780px;
	background-image: url(../images/Platine-Hintergrund-4.gif);
	background-repeat: repeat;
	margin-right: auto;
	margin-left: auto;
}
#container {
	padding: 0px;
	margin-left: 15px;
	margin-top: 0px;
}


#header {
	margin-top: 15px;
	padding: 0px;
	background-color: #FFFFFF;
	margin-left: 0px;
}

.logo {
	margin-top:25px;
	margin-bottom: 10px;
	margin-left: 0px;
}

.topmenu {
	background-color: #00CCFF;
	padding: 0px;
	margin: 0px;
}


#inhalt {
	padding-left: 10px;
	background-color: #EEEEEE;
	border-top-width: 5px;
	border-top-color: #0066FF;
	border-top-style: solid;
	margin: 0px;
	padding-right: 10px;
}
.paragraf {
	font-size: 1.12em;
	font-style: italic;
	font-weight: bold;
	text-decoration: underline;
	padding-top: 3px;
}


p {
	font-size: 1em;
	padding-top: 0.5em;
}

h1 {
	font-size: 1.5em;
	padding-bottom: 0.45em;
	padding-top: 0.7em;
}
h4 {
	font-size: 1.12em;
	padding-bottom: 0.45em;
	padding-top: 0.6em;
}

ul {
	list-style-type:square;
	list-style-position: inside;
	margin-left: 30px;
	text-indent:-15px;
}
	
a {
	color:#3333CC;
	text-decoration:none;
}

a:hover {
	text-decoration:underline;
}

a img {
	border: 0 none;
}

.PCHN {
	color: #CC3300;
	font-weight: bold;
}
.NachOben {
	font-size: 85%;
	font-weight: bold;
	color: #663300;
	text-decoration: none;
	text-align: right;
	padding-right: 10px;
}

.NeonLine {
	background-color:#FFFF66;
	font-weight:bold;
	color:#3366FF;
	text-align:center;
	padding-top:0.25em;
	padding-bottom:0.25em;
	margin-top: 0.2em;
	margin-bottom: 0.3em;
}
und noch eine recht kleine HTML-Datei, wo dieses Problem auftritt:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>			Noch kein Titel
		</title>
		<link href="styles/pchn.css" rel="stylesheet" type="text/css" media= "screen, projection" />
	</head>
	<body>
		<div id="container">
			<div id="header">
				<div id="logo">
					<a name="Top" id="Top"></a>
					<img src="bild.jpg" alt="Bild" width="524" height="54" class="logo" />
				</div>
				<!-- logo -->				
				<div id="topmenu">
					<p class="topmenu" >						Hier kommt das Menü hin
					</p>
				</div>
				<!-- topmenu -->
			</div>
			<!-- header -->
			<div id="inhalt">
				<h1>
					<a name="Ueberschrift1" id="Ueberschrift1"></a>
					Überschrift 1</h1>
				<p>					Hier kommt ein beliebiger Text hin, der
				</p>
				<p span class="NeonLine">					besonders hervorgehoben wird
					</span>
				</p>
				<p>
					und es folgt weiterer Text.				
				</p>
				<p>
					Die nächste Zeile ist der Übeltäter!
				</p>
				<p class="NachOben">
					<a href="#Top">nach oben …</a>
				</p>
				<a href="#Top" class="NachOben">?&nbsp;nach oben …</a>
				</span>				
				<p>
					Beliebiger weiterer Text ...
				</p>				
			</div>
			<!-- inhalt -->			fussbereich
		</div>
		<!-- container -->
	</body>
</html>

... ist ja doch so einiges an Text geworden. Aber ich denke, dass der eigentliche Fehler nicht in dem Block sitzt, oder doch?

... und für Hinweise auf Fragliches, nicht so sauberes, ... bin ich dankbar, weil ich mich erst in die Materie einarbeite und manches einfach abschrebe, ohne die großen Zusammenhänge zu kennen ... Für mich ist auf Dauer gesehen wichtig, dass ich begreife, was ich da mache :p Und schlechter Stil sollte erst gar nicht einreißen, es ist unheimlich schwer, den wieder los zu werden :) .


Internette Grüße
Drogist
 
Hi,

Du müsstest Links innerhalb des p-Tags formatieren, ungefähr so (ungetestet):

CSS:
p.NachOben a:link {
	font-size: 85%;
	font-weight: bold;
	color: #663300;
	text-decoration: none;
}
p.NachOben {
	text-align: right;
	padding-right: 10px;
}

LG
 
Hallo,

herzlichen Dank für die raschen und kompetenten Antworten! Es läuft genau so, wie ich es wollte. Ich sehe, ich muss noch eine Menge lernen ... ;)

LG
Drogist
 
Hallo,

ihr habt mir Mut gemacht, das Problem weiter zu behandeln :) Ich zeige hier einfach einmal mit HTML auf, was ich erreichen möchte:
HTML:
<p>Beliebiger Text</p>
<table border="0" align="right">
    <tr>
        <td width="370" height="25" bgcolor="#DDDDDD"><div align="right">  nach oben …&nbsp;</div></td>
    </tr>
</table>
<p>Weiterer Inhalt</p>
Kleine Hinweise dazu:
  • Der ursprüngliche Text soll genau so formatiert bleiben, wie oben aufgezeigt und dank eurer Hilfe prima!
  • Neu ist der "Balken", der 370 Pixel breit ist
  • ... und etwas eingerückt soll es auch sein (hier durch das &nbsp; am Ende des Textes dargestellt.

Was ich schon versucht habe:
HTML:
p.NachOben a:link, a:visited, a:hover { 
	background-color:#DDDDDD;
	border-left:250px;
	border-right:5px;
	font-weight:bold;
	font-size: 0.7em;
	text-decoration:none;
	text-align:right;
}
Auch dieser (letzte) Versuch von vielen bringt es nicht ... :(

Ich bin sicher, ihr könnt mir auch hier helfen.

Best regards
Drogist
 
Hi,

dem CSS-Selektor zufolge, muß das Markup folgendermaßen lauten, damit es eine Übereinstimmung gibt, und die CSS-Regel auf das Element angewendet werden kann:

Code:
<p>Beliebiger Text</p>
<table border="0" align="right">
    <tr>
        <td width="370" height="25" bgcolor="#DDDDDD"><div align="right"><p class="NachOben"><a href="#">nach oben …&nbsp;</a></p></div></td>
    </tr>
</table>
<p>Weiterer Inhalt</p>


Ich bin aber eigentlich nach deiner vorletzten Antwort davon ausgegangen, dass dieser Punkt von deiner Seite geklärt wäre, und wundere mich jetzt doch ein wenig, weshalb du die Frage hier erneut in den Raum wirfst, aber diesmal im HTML-Code der Link, der mit dieser CSS-Regel formatiert werden soll, nicht mehr enthalten ist :suspekt:

Achja, hier fehlt übrigens den letzten beiden Pseudoklassen für Verweise ihr Elternelement mit der Klasse p.NachOben:

Code:
p.NachOben a:link, p.NachOben a:visited, p.NachOben a:hover { 
	background-color:#DDDDDD;
	border-left:250px;
	border-right:5px;
	font-weight:bold;
	font-size: 0.7em;
	text-decoration:none;
	text-align:right;
}


mfg Maik
 
Hallo Maik,

Ich bin aber eigentlich nach deiner vorletzten Antwort davon ausgegangen, dass dieser Punkt von deiner Seite geklärt wäre, und wundere mich jetzt doch ein wenig, weshalb du die Frage hier erneut in den Raum wirfst, aber diesmal im HTML-Code der Link, der mit dieser CSS-Regel formatiert werden soll, nicht mehr enthalten ist
ich bin dir da doch glatt eine Erklärung schuldig.
Also, bislang fand ich das ja auch ganz gut so, wie es sich darstellte. Heute bin ich mal wieder an die Arbeit gegangen und habe mir gedacht, dass es doch besser aussehen würde, wenn da ein "Balken" erscheint.

HTML-Code will ich gar nicht zum Formatieren verwenden, schon gar keine Tabellen für nicht-tabellarische Daten. Ich hatte das hier in HTML dargestellt, weil ich so den gewünschten Effekt besser darlegen kann. Ein Bild sagt ja oft mehr als 1000 Worte!

Ich hatte bislang <hr> als optischen Trenner für verschiedene <h1>-"Blöcke" (logische Blöcke) verwendet, irgendwie gefielen die mir nicht mehr. Vielleicht kannst du mir eine andere, bessere Möglichkeit zur optischen Trennung empfehlen. Im Hinterkopf schwebt mir so etwas wie ein, zwei Tonwerte auseinanderliegende Hintergrundfarben vor, aber da habe ich mich noch nicht um die Realisierung gekümmert.

Achja, hier fehlt übrigens den letzten beiden Pseudoklassen für Verweise ihr Elternelement mit der Klasse p.NachOben:
Oh, danke, das ist mir auch neu. Ich hatte gedacht ... und: verdacht :) Und wieder eine Fehlerquelle weniger!

OK, dann will ich mal sehen, wie ich das hinkriege. Natürlich (möglichst) nur in CSS, Ehrensache! Nur heute, ich glaube, das wird nichts mehr. Bald fängt eine neue, lange Arbeitswoche an. Danach (nextes WE) gehe ich dann dabei, spätestens die Feiertage.

Nochmals mein Dank, ich versuche, mich an anderer Stelle(in anderen Bereichen des Forums) zu revanchieren!
 
Anstelle des <hr>-Tags könntest du die Blöcke mit einem oberen / unteren Rahmen formatieren ;)

Heading Style Gallery demonstriert ein paar Beispiele zur Formatierung von Überschriftenelementen.

mfg Maik
 
Zurück