• 26.08.2025, 09:41
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

bekiro

Senior Member

CSS Problem

Montag, 24. Oktober 2005, 22:28

Ich brauche mal eure hilfe.

Ich möchte für meine homepage eine CSS datei schreiben in der möglichst der "kopf" der homepage enthalten ist. Mit kopf meine ich eine einzige jpg-datei, auf der aber 4 bereiche per hotspot verlinkt sind. Das ganze möchte ich in der CSS unterbringen so das ich, wenn die Kopfdatei mal geändert wird, nur die CSS datei zu ändern habe. In der html datei hatte ich das so umgesetzt:

Quellcode

1
2
3
4
<img src="bild.jpg" width="770" height="250" usemap="#kopf">
<map name="kopf">
<area shape="rect" coords="316,195,391,213" href="index.htm" alt="Startseite">
</map>


Weiss jemand ob sich das per CSS realisieren lässt? Ich komm einfach nicht drauf. In SelfHTML habe ich nichts gefunden.  :-[


Gruss bekiro

hurra

God

Re: CSS

Montag, 24. Oktober 2005, 22:33

Hm, ich versteh nicht, was du willst, sorry. Selbst nach mehrmaligen Lesen. ???

Und mit css hat deine Idee auch wenig zu tun.

Du willst deine Homepage in zwei Bereiche teilen?

Kopf
--------
Inhalt
Inhalt
Inhalt



Wobei die Inhaltsseite varriert und der Kopf immer gleich bleibt?


Cu Hurra

Thomas_Haindl

God

Re: CSS

Montag, 24. Oktober 2005, 22:46

Zitat von »hurra«

... Wobei die Inhaltsseite varriert und der Kopf immer gleich bleibt?

Ein typischer Fall für SSI.
Falls der Server das nicht kann/will, gibt's auch einige HTML-Editoren, die mit Blöcken umgehen können.

mfg, Thomas

bekiro

Senior Member

Re: CSS Problem

Montag, 24. Oktober 2005, 23:12

hmm, ich hab mich falsch ausgedrückt, bzw. nicht genau. sorry.

ich versuchs mal ausführlicher. auf meiner homepage soll eine bilddatei angezeigt werden. die bildatei soll ganz oben auf der seite stehen. das ist sozusagen das logo und der navigationsbereich in einem. ich hab das ganze als EINE bildatei angelegt. ich kanns ja mal zeigen:

Bilddatei für den Kopfbereich meiner Homepage

die bereiche wo "startseite bildbearbeitung technik fotoalbum" stehen, sollen mit hotspots verlinkt werden. das ganze in html umzusetzten ist ja kein thema. den code hatte ich ja oben schon angezeigt. die bilddatei kommt also auf jeder seiter meiner homepage vor. wenn ich aber mal die bilddatei (zwecks grafischer änderungen) austauschen will, dann muss ich ja jede seite meiner homepage abändern. ich dachte mir jetzt, im html teil einfach nur anzugeben das dort ein bild folgt, aber die ganzen informationen wie die bilddatei heisst, wie groß sie ist und wo die hotspots genau positioniert sind usw. in der css datei festzuhalten. dann bräuchte ich nur die css datei zu ändern wenn ich mal das design der homepage komplett änder. ich will mir also arbeit ersparen.

meine frage ist nun, ob es eine möglichleit gibt in html einen "platzhalter" für ein bild anzugeben, aber die restlichen informationen zum bild (name, größe, hotspot-bereiche) in der css datei festzuhalten.

geht sowas ?

crushcoder

God

Re: CSS Problem

Montag, 24. Oktober 2005, 23:33

ich denke nicht das es wirklich in allen browsern funktioniert, falls überhaupt.

ich würde sowas machen:

Quellcode

1
2
3
4
<div id="head">
  <span class="link" id="link1"><a href="link1"></a></span>
  <span class="link" id="link2"><a href="link2"></a></span>
</div>

"#head" hat das bild als "background-image"
"#link1" usw hat dann position:relative, width, height, top, left innerhalb des bildes.
".link" hat color:transparent, background-color:transparent, cursor:hand

was genau, margin, paddings usw muss man ausprobieren.

klar das dann aber nur rechteckige bereiche funktionieren, keine kreise oder gar polygone.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Chewy

Moderator

Re: CSS Problem

Montag, 24. Oktober 2005, 23:43

hossa, wo kommst du denn wieder mal her ? :)

bekiro

Senior Member

Re: CSS Problem

Montag, 24. Oktober 2005, 23:48

@crushcoder: ist schon mal ein ansatz. werd ich mal mit experimentieren.

@chewy: ich war doch nie weg!






achso, du meinst garnicht mich ;D

Y0Gi

God

Re: CSS Problem

Montag, 24. Oktober 2005, 23:56

du kannst zwar das aussehen deines seitenkopfes in ein CSS-stylesheet auslagern, während du in jeder seite nur z.b. ein <div id="head"></div> belässt. die links mit ihren verweiszielen sind aber semantik und nicht style, d.h. lassen sich nicht per CSS definieren. wenn du den gesamten teil inklusive links auslagern willst, dann musst du das schon dynamisch zusammensetzen lassen (wie von tom genannt über SSI oder je nach belieben über PHP, Python, Perl, C, Bash oder was man sonst so per CGI angeklemmt bekommt).

eine einfache, wenngleich mit einigen nachteilen behaftete lösung wäre auch die verwendung eines frames für die navigation. so musst du diese nur ein mal schreiben und hast sie wartungsfreundlich zentral an einer stelle. zudem kommst du mit statischen dateien aus, so dass das ganze auch lokal aufgerufen im browser funktionieren würde.

bekiro

Senior Member

Re: CSS Problem

Dienstag, 25. Oktober 2005, 00:20

auf frames wollte ich eigentlich verzichten. wäre natürlich schön gewesen wenn es per css zu realisieren gewesen wäre. ich dachte das es funktionieren müsste. dann werd ich es mal mit php versuchen.

danke euch ;)

bekiro

Senior Member

Re: CSS Problem

Dienstag, 25. Oktober 2005, 01:01

ich hab das nun so gelösst, den kopfteil der seite habe in eine separate html datei geschrieben und den php code füge ich nun in jede seite ein.


der php code der in jeder seite nun vorkommt:

Quellcode

1
2
3
<?php
include("kopf.html");
?>



und das ist der html code der in der separaten datei steht:

Quellcode

1
2
3
4
5
6
7
<img src="bild/kopf.jpg" alt="" width="770" height="250" border="0" usemap="#kopf">
<map name="kopf">
<area shape="rect" coords="316,195,391,213" href="index.htm" alt="Startseite">
<area shape="rect" coords="393,195,504,213" href="bildbearbeitung.htm" alt="Bildbearbeitung">
<area shape="rect" coords="506,195,564,213" href="technik.htm" alt="Technik">
<area shape="rect" coords="566,195,644,213" href="fotoalbum.htm" alt="Fotoalbum">
</map>



Y0Gi

God

Re: CSS Problem

Dienstag, 25. Oktober 2005, 14:31

rrrrrrrrrrrichtiiiiiiiich :)

moede

Senior Member

Re: CSS Problem

Dienstag, 25. Oktober 2005, 17:12

So geht es ja... aber PFUIIIII ist es ja schon sehr.

Mach eine Liste

Quellcode

1
2
3
4
5
6
7
8
<div id="header">
      <ul id="navigation">
            <li id="navStartseite"><a href="#">Startseite</a></li>
            <li id="navBildbearbeitung"><a href="#">Bildbearbeitung</a></li>
            <li id="navTechnik"><a href="#">Technik</a></li>
            <li id="navFotoalbum"><a href="#">Fotoalbum</a></li>
      </ul>
</div>

Dann hätten wir mal den gesammten HTML Teil

Jetzt kommen wir zum css

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
* {
      margin: 0;
      padding: 0;
      font-size: 11px;
      font-family: Verdana, Helvetica, sans-serif;
      color: #000;
      background-repeat: no-repeat;
}

#header {
      width: 770px;
      height: 250px;
      background-image: url(./images/header_bg.png);
}

/* -----------------------------------------------
                              NAVIGATION
----------------------------------------------- */
ul#navigation {
      /* Die relative Positionierung mit dem z-index ist wichtig,
      damit die Navigation auf einer höheren Ebene als die Input
      Felder ist da es ansonsten zu einer Überlappung kommt. */
      position: relative;
      z-index: 1;
      margin-right: 30px;
      width: 740px;
      float: right;
}
      
ul#navigation, #navigation ul {
      list-style: none;
}

#navigation li {
      float: right;
}
      
#navigation li a {
      line-height: 20px;
      display: block;
      /* Verstecken des Textes mit text-indent */
      text-indent: -9999px;
}

Jetzt hätten wir mal einen sauberen Aufbau der Navigation mit einer Liste und die dazugehörige Formatierung.

Jetzt kommen wir zum wichtigsten Teil, die einzelnen Navigationspunkte. Ich habe dir hier exemplarisch mal den ersten Punkt formatiert. Der Rest ist ziemlich ähnlich.
Du schneidest den Text mit Hintergrund aus und nimmst ihn als Hintergrundbild für das a Element mit der übergeordeten id navStartsteite, so kannst du auf jeden Punkt einzeln zugreifen.
Beim Hover kannst du nun einfach noch den Hintergrund ändern und hast noch einen schönen Effekt.

Quellcode

1
2
3
4
5
6
7
8
#navStartseite a {
      width: BREITE DES BILDES;
      background-image: url(./STATSEITE.jpg);
}
      
#navStartseite a:hover {
      background-image: url(./STATSEITE_hover.jpg);
}


So ists wirklich sauber, Barrierefrei und ausserdem noch mit Hover, was willst du mehr :D

peace
moede

bekiro

Senior Member

Re: CSS Problem

Dienstag, 25. Oktober 2005, 19:26

hey - das ist doch schon fast das was ich wollte :D

ich werd das mal übernehmen und die kleinen änderungen anpassen. mal schauen wie es dann aussieht.

danke dir moede ;)

crushcoder

God

Re: CSS Problem

Dienstag, 25. Oktober 2005, 19:44

was willst du denn nun?

die bilder und positionen der links zentral verändern, dann ist moedes oder mein ansatz der richtige,
oder die eigentlichen links zentral anpassen, dann ist der include der richtige ansatz?

beides läßt sich natürlich auch kombinieren.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

moede

Senior Member

Re: CSS Problem

Dienstag, 25. Oktober 2005, 23:03

@crushcoder
Ich wäre für kombinieren, dann hast du 2in1, fast schon ein Überraschungsei ;D

@bekiro
Fast hät ichs vergessen, wegen dem float:right; ist die Reihenfolge der Links umgekehrt, also genau anders rum als es dann angezeigt wird

Quellcode

1
2
3
4
5
6
<ul id="navigation">
  <li id="navFotoalbum"><a href="#">Fotoalbum</a></li>
  <li id="navTechnik"><a href="#">Technik</a></li>
  <li id="navBildbearbeitung"><a href="#">Bildbearbeitung</a></li>
  <li id="navStartseite"><a href="#">Startseite</a></li>
</ul>

Y0Gi

God

Re: CSS Problem

Mittwoch, 26. Oktober 2005, 00:06

moede:
warum nicht das float auf die gesamte liste anwenden? und durch die verwendung von <dl> statt <ul> und <dt> statt <li> kann man sich sparen, die browserabhängige formatierung der unsortierten liste zu unterdrücken.
außerdem empfehle ich, alle vom stylesheet referenzierten bilder gemeinsam mit dem stylesheet in einen gemeinsamen ordner (z.b. 'style/') zu packen, dann kann man in den url()-werten im stylesheet den pfad weglassen und nur den dateinamen angeben.

moede

Senior Member

Re: CSS Problem

Mittwoch, 26. Oktober 2005, 11:58

Zitat von »Y0Gi«

warum nicht das float auf die gesamte liste anwenden?

Verstehe ich jetzt nich ganz, ist ja auf die gesamte Liste

Zitat von »Y0Gi«

und durch die verwendung von <dl> statt <ul> und <dt> statt <li> kann man sich sparen, die browserabhängige formatierung der unsortierten liste zu unterdrücken.

Ich finde jetzt gerade den Link nicht mehr, es wird aber immer wieder empfohlen <ul> statt <dl> zu verwenden, leider habe ich vergessen was genau der Grund ist.

Y0Gi

God

Re: CSS Problem

Mittwoch, 26. Oktober 2005, 14:34

einer der top-artikel zum thema list-styling ist wohl dieser: http://www.alistapart.com/articles/taminglists/

was das float angeht, das du bei '#navigation li' (also jedem listen-item und nicht einmal zur ausrichtung der gesamten liste) verwendest, da kann man auch ganz drauf verzichten und stattdessen 'display: inline;' verwenden (s. link) - das hat auch weniger unerwünschte nebeneffekte. ein weiterer artikel zu horizontalen listen ohne verwendung von float ist dieser: http://www.cssplay.co.uk/menus/centered2.html

was zu den vorzügen von definition lists gegenüber unordered lists von einem der css-götter, stu nicholls, persönlich: http://www.cssplay.co.uk/menus/definition.html