Antworten auf deine Fragen:
Neues Thema erstellen

Script in YAML "einsetzten" und Header-Problem

NiAlMa

Nicht mehr ganz neu hier

Hallo,

habe es nun endlich geschafft und meine Seite einigermaßen auf Yaml umgesetzt. Leider habe ich hier noch 2 kleine Probleme bei denen ich hoffe, dass mir die Community hier helfen kann.

Zum einen möchte ich oben im Header ein Logo drin haben, aber ich bekomme den CSS-Teil nicht hin damit sich das Bild nicht rechts wiederholt und eine feste Höhe sollte auch sein.

Das weitere Problem ist, dass ich im linken DIV gerne das Foldout von Javarea.de drin haben möchte, weiss aber nicht was ich in welche Datei schreiben muss...

Könnte mir da evtl. jemand behilflich sein?

Hier mal der Teil aus der basemod.css

Code:
/**
 * "Yet Another Multicolumn Layout" - (X)HTML/CSS framework
 * (en) stylesheet for screen layout
 * (de) Stylesheet für das Bildschirm-Layout
 *
 * @creator       YAML Builder V1.2.1 ([URL="http://builder.yaml.de"]YAML Builder | A tool for visual development of YAML based CSS layouts[/URL])
 * @file          basemod.css
 * @-yaml-minver  3.3
 */
@media screen, projection
{
  /** 
   * (en) Forcing vertical scrollbars in IE8, Firefox, Webkit & Opera 
   * (de) Erzwingen vertikaler Scrollbalken in IE8, Firefox, Webkit & Opera 
   *
   * @workaround
   * @affected IE8, FF, Webkit, Opera
   * @css-for all
   * @valid CSS3
   */
  body { overflow-y: scroll; }
  /*-------------------------------------------------------------------------*/
  /* (en) Marginal areas & page background */
  /* (de) Randbereiche & Seitenhintergrund */
  body { background: #000504 none; padding: 10px 0; }
  /* Layout Alignment | Layout-Ausrichtung */
  .page_margins { margin: 0 auto; }
  /* Layout Properties | Layout-Eigenschaften */
  .page_margins { width: auto;  min-width: 740px; max-width: 90em; background: #fff; }
  .page { padding: 10px 15px 10px 10px; }
  #header { position:relative; padding: 45px 2em 1em 20px; color: #000; background: #fff; }
  #topnav { position:absolute; top:10px; right:10px; text-align:right; color: #aaa; background: transparent; }
  #nav { overflow:hidden; }
  #main { margin: 10px 0; background: #fff; }
  #footer { padding: 10px 20px; color:#666; background: #f9f9f9; border-top: 5px #efefef solid; }
  /* (en) navigation: horizontal adjustment | (de) horizontale Ausrichtung  */
  #nav ul { margin-left: 20px; }
  /*-------------------------------------------------------------------------*/
  /**
   * (en) Formatting content container
   * (de) Formatierung der Inhalts-Container

Und hier das Naviscript welches in col1 stehen soll

Code:
<body onload="init()">
<table border="0" cellpadding="4" cellspacing="3" width="100%">
<tr>
<td align="left" width="20%">
<style>
DIV.clTop    {position:absolute; width:170}
DIV.clSub    {position:absolute; left:15; width:170;}
#divCont    {position:relative; left:100; height:100; width:170;}
A.clMain    {font-family:Arial, Verdana, Helvetica, Helv; font-size:14px; text-decoration:none; font-weight:bold; color:black;}
A.clSubb    {font-family:Arial, Verdana, Helvetica, Helv; font-size:14px; text-decoration:none; color:black;}
#divMain    {position:absolute;}
</style>
 
<script language="JavaScript">
<!--
var stayFolded=false
var exImg=new Image(); exImg.src='dsmh.gif'
var unImg=new Image(); unImg.src='usm.gif'
var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
var browser=((n || ie) && parseInt(navigator.appVersion)>=4)
 
function makeMenu(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
    this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
       this.ref=(n) ? eval(nest+'document.'+obj+'.document'):eval('document');
    this.height=n?this.ref.height:eval(obj+'.offsetHeight')
    this.x=(n)? this.css.left:this.css.pixelLeft;this.y=(n)? this.css.top:this.css.pixelTop;
    this.hideIt=b_hideIt;    this.showIt=b_showIt; this.vis=b_vis; this.moveIt=b_moveIt
    return this
}
function b_showIt(){this.css.visibility="visible"}
function b_hideIt(){this.css.visibility="hidden"}
function b_vis(){if(this.css.visibility=="hidden" || this.css.visibility=="hide") return true;}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}
 
function init(){
    oTop=new Array()
    oTop[0]=new makeMenu('divTop1','divCont')
    oTop[1]=new makeMenu('divTop2','divCont')
    oTop[2]=new makeMenu('divTop3','divCont')
    oTop[3]=new makeMenu('divTop4','divCont')
    oTop[4]=new makeMenu('divTop5','divCont')
    oTop[5]=new makeMenu('divTop6','divCont')
    oSub=new Array()
    oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
    oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
    oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')
    oSub[3]=new makeMenu('divSub4','divCont.document.divTop4')
    oSub[4]=new makeMenu('divSub5','divCont.document.divTop5')
    oSub[5]=new makeMenu('divSub6','divCont.document.divTop6')
    for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
    for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
}
function menu(num){
    if(browser){
        if(!stayFolded){
            for(i=0;i<oSub.length;i++){
                if(i!=num){
                    oSub[i].hideIt()
                    oTop[i].ref["imgA"+i].src=unImg.src
                }
            }
            for(i=1;i<oTop.length;i++){
                oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
            }
        }
        if(oSub[num].vis()){
            oSub[num].showIt()
            oTop[num].ref["imgA"+num].src=exImg.src
        }else{
            oSub[num].hideIt()
            oTop[num].ref["imgA"+num].src=unImg.src
        }
        for(i=1;i<oTop.length;i++){
            if(!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)
            else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
        }
    }
}
// -->
</script>
 
 
<div id="divCont">
<div id="divTop1" class="clTop"><a href="#" target="_self" onclick="menu(0); return false" class="clMain">
<img src="usm.gif" name="imgA0" alt="" border="0"> Auswahl 1</a><br>
        <div id="divSub1" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 1a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 1b</a><br>
        </div>
        </div>
<div id="divTop2" class="clTop"><a href="#" target="_self" onclick="menu(1); return false" class="clMain">
<img src="usm.gif" name="imgA1" alt="" border="0"> Auswahl 2</a><br>
        <div id="divSub2" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 2a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 2b</a><br>
        </div>
        </div>
<div id="divTop3" class="clTop"><a href="#" target="_self" onclick="menu(2); return false" class="clMain">
<img src="usm.gif" name="imgA2" alt="" border="0"> Auswahl 3</a><br>
        <div id="divSub3" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 3a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 3b</a><br>
        </div>
        </div>
<div id="divTop4" class="clTop"><a href="" onclick="menu(3); return false" class="clMain">
<img src="usm.gif" name="imgA3" alt="" border="0"> Auswahl 4</a><br>
        <div id="divSub4" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 4a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 4b</a><br>
        </div>
        </div>
<div id="divTop5" class="clTop"><a href="" onclick="menu(4); return false" class="clMain">
<img src="usm.gif" name="imgA4" alt="" border="0"> Auswahl 5</a><br>
        <div id="divSub5" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 5a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 5b</a><br>
        </div>
        </div>
<div id="divTop6" class="clTop"><a href="" onclick="menu(5); return false" class="clMain">
<img src="usm.gif" name="imgA5" alt="" border="0"> Auswahl 6</a><br>
        <div id="divSub6" class="clSub">
        <a href="#" target="_self" class="clSubb">Punkt 6a</a><br>
        <a href="#" target="_self" class="clSubb">Punkt 6b</a><br>
        </div>
        </div>
        </div>
</td>
</tr>
</table>

Für Unterstützung bzw Lösungen bin ich sehr dankbar! Gerne kann ich alles auch per FTP bereitstellen....einfach eine private Nachricht senden.

Danke im Voraus
 

sokie

Mod | Web

AW: Script in YAML "einsetzten" und Header-Problem

wenn dein Header eine feste grösse haben soll, musst du dafür sorgen, dass dein Layout eine feste breite hat, und der headerbereich eine feste höhe. wenn du so die dimensionen des headerbereichs festlegst, und dein Hintergrundbild im header eben diese grösse hat, wird es sich nicht wiederholen.

da Script im body, und noch dazu die Tabelle dort mit eingelagerten style-bereich verstösst praktisch gegen das, was du mit yaml erreichen willst. Du solltest auf eins von beidem verzichten (also entweder auf das Script oder auf yaml). Moderne Lösungen auf Basis eines Frameworks wie zB jQuery erslauben umfangreiche Manipulationen, ohne fragwürdigen Code in den Body schreiben zu müssen.

wichtiger als diese Überlegungen ist allerdings, dass man weiss was man tut, deshalb kann die vernünftige Empfehlung eigentlich dahin gehen, sich mit den Grundlagen der Techniken html und css vertraut zu machen bevor man so ehrgeizige Projekte mit yaml und Javascript umsetzt.
 

NiAlMa

Nicht mehr ganz neu hier

AW: Script in YAML "einsetzten" und Header-Problem

Link gbt es noch keinen, aber hier mal der html-Quelltext

HTML:
<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Your Page Title</title>
<!-- add your meta tags here -->
<link href="css/my_layout.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 7]>
<link href="css/patches/patch_my_layout.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>
<body>
  <div class="page_margins">
    <div id="border-top">
      <div id="edge-tl"></div>
      <div id="edge-tr"></div>
    </div>
    <div class="page">
      <div id="header">
        <div id="topnav">
          <a class="skip" title="skip link" href="#navigation">Skip to the navigation</a><span class="hideme">.</span>
          <a class="skip" title="skip link" href="#content">Skip to the content</a><span class="hideme">.</span><a href="#">Login</a> | <a href="#">Contact</a> | <a href="#">Imprint</a>
        </div>
      </div>
      <div id="nav">
        <a id="navigation" name="navigation"></a>
        <div class="hlist">
          <!-- main navigation: horizontal list -->
          <ul>
            <li class="active"><strong>Button 1</strong></li>
            <li><a href="#">Button 2</a></li>
            <li><a href="#">Button 3</a></li>
            <li><a href="#">Button 4</a></li>
            <li><a href="#">Button 5</a></li>
          </ul>
        </div>
      </div>
      <div id="main">
        <div id="col1">
          <div id="col1_content" class="clearfix">
            <!-- add your content here -->
          </div>
        </div>
        <div id="col3">
          <div id="col3_content" class="clearfix">
            <!-- add your content here -->
            <div class="subcolumns">
              <div class="c50l">
                <div class="subcl">
                  <!-- Insert your subtemplate content here -->
                  <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</p>
                </div>
              </div>
              <div class="c50r">
                <div class="subcr">
                  <!-- Insert your subtemplate content here -->
                  <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</p>
                </div>
              </div>
            </div>
            <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</p>
          </div>
          <div id="ie_clearing">&nbsp; * </div>
        </div>
      </div>
      <div id="footer">Layout based on <a href="http://www.yaml.de/">YAML</a>
      </div>
    </div>
    <div id="border-bottom">
      <div id="edge-bl"></div>
      <div id="edge-br"></div>
    </div>
  </div>
</body>
</html>

@sokie
Ein jquire-Script mit vertikalem Foldoutmenue wie das oben angegebene habe ich leider noch keines gefunden!

Der Header soll eigentlich nur eine bestimmte Höhe bekommen, denn das Layout ist ja flexibel. Das Logo muss auch nicht zwingend als Hintergrund rein!

HTML und CSS sind grundsätzlich weniger das Problem - Das Problem stellt sich gerade bei mir bei YAML dar...bin YAML-Neuling und wollte einfach die neue HP der Familie in YAML machen....

Was das Script betrifft so dachte ich mir ich setze es auf YAML um - bin mir aber halt nicht sicher was wo in welche Datei bei YAML reingeschrieben werden muss!
Table ist ja nicht zwingend notwendig, da das Ganze ja in col1 "geladen" werden soll
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW: Script in YAML "einsetzten" und Header-Problem

in dem bereich im col1, musst du das <!-- add your content here --> durch deine navigationsliste(n) ersetzen. (mit ist nicht ganz klar, wie das script funktioniert, weil es in meinem Browser gar nicht zu funktionieren scheint. Ausserdem ist beim script auch vermerkt, dass es in den Browsern IE4-IE6 und Netscape 4x funktioniert, was die schon eine gewisse 'Museumsreife' dokumentiert).
falls du für das menü weiteres CSS benötigst, hast du verschiedene Optionen; ich würde die Regeln dafür im my_layout.css unten anfügen.
 

NiAlMa

Nicht mehr ganz neu hier

AW: Script in YAML "einsetzten" und Header-Problem

bin gerne bereit eine Alternative zu nutzen, aber habe wie gesagt bislang keine gefunden
 

sokie

Mod | Web

AW: Script in YAML "einsetzten" und Header-Problem

Wenn dein Script doch ohnehin nicht in modernen Browsern zuverlässig funktioniert, brauchst du keine "alternative" sondern eine funktionierende Lösung.
die könnte evtl so aussehen:
die letzte Zeile
Code:
$("#navi_links li:has(ul):eq(0)").show();
sorgt dafür, dass der block "Auswahl 1" ausgeklappt wird; lässt man die weg, werden alle navigationslisten versteckt.

HTML:
<div id="col1">
<ul id="navi_links">
  <li><h3>Auswahl 1</h3></li>
  <li>
    <ul>
      <li><a href="#">link1</a></li>
      <li><a href="#">link2</a></li>
      <li><a href="#">link3</a></li>
      <li><a href="#">link4</a></li>
    </ul>
  </li>
  <li><h3>Auswahl 2</h3></li>
  <li>
    <ul>
      <li><a href="#">link1</a></li>
      <li><a href="#">link2</a></li>
      <li><a href="#">link3</a></li>
    </ul>
  </li>
  <li><h3>Auswahl 3</h3></li>
  <li>
    <ul>
      <li><a href="#">link1</a></li>
      <li><a href="#">link2</a></li>
      <li><a href="#">link3</a></li>
      <li><a href="#">link4</a></li>
      <li><a href="#">link5</a></li>
    </ul>
  </li>
</ul>
</div>
auf der ersten Ebene gibt es zwei sorten von listenelementen. Die eine enthält text, die andere eine weitere liste(ul). Diese wechseln sich ab.
über jQuery selektoren :has(ul) bzw :not(has(ul)) kann so jeweils die eeine oder andere angesprochen werden.
mit slideUp() wird eine liste aus- mit slideDown() eingeblendet.
für beides kann eine Zeit in milisekunden vergeben werden; zB slideDown(200) würde einen Bereich innerhalb von 0.2 sekunden animiert sichtbar werden lassen.
Code:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    $("#navi_links li:not(:has(ul))").css("cursor","pointer");
    $("#navi_links li:not(:has(ul))").click(function(){
        $("#navi_links li:has(ul)").slideUp();
        $(this).next().slideDown();
      });
    $("#navi_links li:has(ul)").hide();
    $("#navi_links li:has(ul):eq(0)").show();
  });
</script>

PS: Javascripts in menüs ist eine heikle Sache. Man muss bedenken, dass die Navigation nicht unmöglich werden darf, wenn der Besucher Javascript deaktiviert hat. Bei der vorgeschlagenen Lösung sind alle Menüpunkte zu sehen, und benutzbar, wenn Javascript deaktiviert ist. Man muss also sehen, dass man im Layout für diesen Fall auch den Platz für die voll ausgeklappte Navigation zur Verfügung hat.
 
Zuletzt bearbeitet:

NiAlMa

Nicht mehr ganz neu hier

AW: Script in YAML "einsetzten" und Header-Problem

danke, werde es testen / versuchen einzubauen!

Ich benutze auch gerne eine andere Lösung ohne Java wenn es eine gibt!

Wo finde ich denn solche Scripte mit jQuery denn als horizontales Manu ist das sicherlich auch schön!

Eine Frage habe ich noch - das Script ist ja verlinkt, kann das irgendwo heruntergeladen werden, denn externe Verlinkungen möchte ich vermeinden und man könnte es dann mittels @import einbinden

Habe das jquery.min.js gefunden und heruntergeladen! Kann ich nun dort

Code:
 $(document).ready(function() {
    $("#navi_links li:not(:has(ul))").css("cursor","pointer");
    $("#navi_links li:not(:has(ul))").click(function(){
        $("#navi_links li:has(ul)").slideUp();
        $(this).next().slideDown();
      });
    $("#navi_links li:has(ul)").hide();
    $("#navi

oben einfügen und das Ganze dann einfach mit @import in die Seite einfügen?
 
Zuletzt bearbeitet:

sokie

Mod | Web

AW: Script in YAML "einsetzten" und Header-Problem

das ein und aus-sliden der menüpunkte wirst du ohne javascript nicht browserübergreifend hinbekommen.

um keinen weiteren Code in deiner Seite bekommen, kannst du das alles mit <script> und src laden.
dazu fügst du das Script unterhalb! des originalen jQuery codes ein, und lädst das dann per
Code:
<script type="text/javascript" src="deinScript.js"></script>
in deine Seite.
 

NiAlMa

Nicht mehr ganz neu hier

AW: Script in YAML "einsetzten" und Header-Problem

Das funktioniert wunderbar, allerdings ist immer ein Menuepunkt offen beim Aufruf der Seite! Was muss ich ändern, damit nur die Hauptpunkte beim ersten Aufruf der Seite sichtbar sind?

Grüße

Problem / Frage wurde schon gelöst - einfach $("#navi_links li:has(ul):eq(0)").show(); löschen
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.613
Beiträge
1.538.346
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben