XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   CSS (http://xhtmlforum.de/forumdisplay.php?f=73)
-   -   DIV-Container per Klasse ausblenden? (http://xhtmlforum.de/showthread.php?t=72220)

imebro 28.07.2015 21:04

DIV-Container per Klasse ausblenden?
 
Hallo,

ich würde gerne einen DIV-Container über eine Klasse ausblenden, wenn eine bestimmte Seite aufgerufen wird.

Im Moment habe ich es so versucht:

Code:

#container_mitte.disclaimer {display: none;}
Dann habe ich die Klasse "disclaimer" im HTML-Text eingetragen, so wie ich es mit anderen Klassen auch mache.

Leider funktioniert es nicht.

Könnt Ihr mir helfen?

Danke und Gruss,
imebro

HappyPOny 28.07.2015 21:51

Leerzeichen fehlt
 
Hallo,

zwischen #container_mitte und .disclaimer fehlt ein Leerzeichen. So ist korrekt:
Code:

<div id="container_mitte" class="disclaimer">
Inhalte
</div>

Eine von diesen drei Formatierungen
HTML-Code:

#container_mitte {
 display: none;
 }
 .disclaimer {
 display: none;
 }

 div.disclaimer {
 display: none;
 }

reicht, um div unsichtbar zu machen.

imebro 28.07.2015 22:08

Ok, danke...

Ich habe mich vielleicht falsch ausgedrückt.

In der index.php Datei muss der Container ganz normal auftauchen.
Dort steht er mit

Code:

<div id="container_mitte">
Wenn ich jetzt über den Link "Disclaimer" den Disclaimer aufrufe, der sich auf einer extra Seite befindet, dann soll dort der DIV-Container "container_mitte" nicht auftauchen. In allen anderen Seiten soll er weiterhin auftauchen.

Daher hatte ich gedacht, dass ich einfach eine Klasse erstelle, mit der ich diesen Container ausblenden kann, indem ich im Quelltext der Seite dann folgendes eintrage:

Code:

<a class="disclaimer" href="............
In der CSS-Datei steht dann nur der Code:

Code:

#container_mitte.disclaimer {display: none;}
Funktioniert aber leider so nicht.

LG
imebro

HappyPOny 28.07.2015 22:34

Zitat:

Zitat von imebro (Beitrag 545545)
Funktioniert aber leider so nicht.

habe deinen Lösungsansatz nicht wirklich verstanden. Die Klasse disclaimer, die den Bereich
Code:

<div id="container_mitte">
ausblenddn muss, einem Link
HTML-Code:

<a class="disclaimer" href="............
zuweisen, kann nicht funktionieren. Du kannst bspw. im
Code:

href="index.php?seite=disclaimer"
mit seite=disclaimer dem index.php mitteilen, das es disclaimer ist und als Reaktion darauf mit PHP class="disclaimer" einfügen
Code:

<div id="container_mitte" class="disclaimer">

imebro 28.07.2015 23:27

Schade... leider funktioniert das zwar... aber auf ALLEN Seiten.

Habe jetzt einfach nur in der "index.php" die Änderung durchgeführt:

Code:

<div id="container_mitte" class="disclaimer">
Also die Klasse einfach ins DIV eingefügt.

Im Quelltext hatte ich ja bereits die Klasse eingefügt und jetzt funktioniert es.
Allerdings wird der "container_mitte" jetzt auf ALLEN Seiten ausgeblendet und nicht nur auf der Disclaimer-Seite.

Verstehe das zwar überhaupt nicht, da ich ja nur im Quellcode der Disclaimer-Seite die Klasse eingefügt habe. Seltsam :roll:

Vielen Dank jedoch und schöne Grüße,
imebro

MrMurphy 29.07.2015 08:17

Hallo,

und wir können nicht verstehen, da du uns keine vernünftigen Infos gibst, sprich einen sinnvollen Quellcode.

Du schmeißt uns leider nur mit aus dem Zusammenhang gerissenen Quellcodeschnipseln tod. Das ist unhöflich und nicht zielführend, da wir dir nicht konkret helfen können.

Bei deinem Problem ist entscheidend wie die Container verschachtelt sind bzw. wie die id und class vergeben sind.

Die grundsätzliche Voraussetzung ist, das sich die id und / oder class im HTML-Quelltext der Seite mit dem Disclaimer von allen anderen Seiten unterscheiden. Trifft das überhaupt zu? Und wenn ja: Wie unterscheiden die sich?

Gruss

MrMurphy

imebro 29.07.2015 09:07

Liste der Anhänge anzeigen (Anzahl: 1)
OK und danke für den Hinweis.

Ich möchte natürlich nicht unhöflich sein... dachte aber, dass ich Euch mit dem kompletten Quellcode irritieren würde :roll:

Grundsätzlich wäre zu sagen, dass es sich um ein CMS handelt mit dem Namen "Websitebaker". Über das Backend legt man die einzelnen Unterseiten des Webs an. Ich habe nun eine neue Seite angelegt mit dem Namen "Disclaimer", die den Haftungsausschluss beinhaltet. Diese Seite wird über einen Link im footer aufgerufen.

Die Seite "Disclaimer" soll in einem Popup-Fenster geöffnet werden. Sie soll daher lediglich das Logo, aber nicht das Menü und auch nicht die große Grafik enthalten, die auf den Seiten direkt unter dem Header (mit Menü + Logo) erscheint.

Dazu habe ich im Backend der Seite "footer"... im Quellcode des Links, der die Seite "Disclaimer" aufruft, die Klasse "disclaimer" eingetragen. Ich habe das im folgenden Code rot dargestellt.

Hier mal der komplette Quellcode der Seite "footer":

Code:

<table cellpadding="1" cellspacing="1" height="90" style="width: 1280px;" width="941">
<tbody>
        <tr>
                <td><span style="font-size:18px;">&copy;&nbsp; Webseitenname&nbsp; |&nbsp;
               
                <a href="[wblink5]">Impressum</a></span>&nbsp; <span style="font-size:18px;">|&nbsp;

                <a class="disclaimer" href="[wblink10]" onclick="window.open(this.href,
 '',
 'resizable=yes,status=no,location=no,toolbar=no,menubar=no,fullscreen=no,scrollbars=yes,dependent=no,width=1025,left=300,height=800,top=50'); return false;">Disclaimer</a> </span></td>

                <td><span style="font-size:18px;">
                <img alt="" src="http://127.0.0.1:4001/media/logo.jpg" style="width: 80px; height: 72px; float: right; margin-left: 20px; margin-right: 20px; margin-top: 10px;" /></span></td>
        </tr>
</tbody>
</table>

In der Template-Datei "index.php" habe ich dann die Klasse im DIV-Container Mitte eingetragen, da dieser ja ausgeblendet werden soll. Den entspr. Bereich habe ich auch hier wieder rot markiert.

Hier der komplette HTML-Code der "index.php":
Code:

<!-- BEGINN - EINSATZ DER WECHSELNDEN HEADERGRAFIKEN -->
        <?php
          $headerbild_id="1";
         
        if (PARENT==0) {
          if (file_exists(WB_PATH.'/media/headerbilder/background_'.PAGE_ID.'.jpg')) {
          $headerbild_id=PAGE_ID;
          }
        } else {
          if (file_exists(WB_PATH.'/media/headerbilder/background_'.PARENT.'.jpg')) {
          $headerbild_id=PARENT;
          }
          if (file_exists(WB_PATH.'/media/headerbilder/background_'.PAGE_ID.'.jpg')) {
                $headerbild_id=PAGE_ID;
          }
        } 

        ?>
        <style type="text/css">
        #headergrafik {
                background-image:url(<?php echo WB_URL.'/media/headerbilder/background_'.$headerbild_id.'.jpg'; ?>);
                <!-- background-size: contain;  <!-- od. 100% - hierdurch werden die Headergrafiken autom. skaliert -->
        }
        </style>
        <!-- ENDE - EINSATZ DER WECHSELNDEN HEADERGRAFIKEN -->
       
</head>

<body>

<div id="body">  <!-- Standardvorgaben für body-Bereich (z.B. Schriftart u. -Größe) -->

<div id="wrapper">  <!-- umschließt alles außer dem Menü, damit das Menü oben fix stehen bleibt! -->


        <div id="container_mitte" class="disclaimer">
                <div id="container_header">
                  <div id="headergrafik"></div>
                </div>
        </div>

       
       
        <div id="container_inhalt">
                <div id="inhalt">
                        <?php page_content(1); ?>
                  </div>
          </div>       

         
         
        <div id="container_unten">
          <!-- <div id="social">Social</div> Block re. unten wird nicht genutzt!! -->
            <div id="footer">
            <?php page_footer(2); ?>  <!-- Sidebar-Block für individuellen Inhalt je Seite -->
                    [[SectionPicker?sid=3]]  <!-- Section-ID aus Backend, die für alle Seiten gelten soll -->
            </div>
        </div>         
         
          <!-- <div id="clear_both"></div> -->
         

</div>  <!-- Ende DIV Wrapper -->

        <div id="container_oben">
                  <div id="container_oben_innen">
                               
                                        <div id="logo">
                                        <a href="<?php echo WB_URL;?>"><img src="<?php echo WB_URL;?>/media/logo456.png" title="Zur Startseite von www.ingo-meurer.de" alt="natuerliches webdesign - Ingo Meurer" /></a>
                                        </div>  <!-- Ende DIV logo -->
                                       
                                        <div id="menu">
                                <?php
                                        show_menu2(0,SM2_ROOT+1,SM2_CURR+1,SM2_TRIM,'<li><span class="menu-default">[ac][menu_title]</a></span>','</li>','<ul>','</ul>');
                                        // CODE FOR WEBSITE BAKER FRONTEND LOGIN
                                        if (FRONTEND_LOGIN == 'enabled' && VISIBILITY != 'private' && $wb->get_session('USER_ID') == '') {
                                        $redirect_url = ((isset($_SESSION['HTTP_REFERER']) && $_SESSION['HTTP_REFERER'] != '') ? $_SESSION['HTTP_REFERER'] : WB_URL );
                                        $redirect_url = (isset($thisApp->redirect_url) ? $thisApp->redirect_url : $redirect_url );
                                        } ?>
                                        </div>  <!-- Ende DIV menu -->
                                       
                               
                  </div>  <!-- Ende DIV oben innen -->
        </div>  <!-- Ende DIV oben -->

       
       
</div> <!-- Ende DIV "body" -->
</body>

Im Anhang seht Ihr einen Screenshot mit dem kompletten Seitenaufbau sowie den genauen Bezeichnungen der einzelnen DIV-Container... bzw. wo genau sich welcher DIV-Container befindet.

So wie es jetzt im Quellcode bzw. in der "index.php" eingetragen ist, wird die Headergrafik (die große Grafik, die Ihr auf dem Screenshot seht) auf ALLEN Seiten ausgeblendet. Sie soll ja NUR ausgeblendet werden, wenn ich die Seite "Disclaimer" über den Link im footer aufrufe.

Würde mich freuen, wenn Ihr mir helfen könnt.

Vielen Dank & schöne Grüße,
imebro

HappyPOny 29.07.2015 10:20

Grundlagen sind wichtig
 
Ich möchte nicht unhöflich sein, aber wenn du jetzt ungeachtet meines Hinweis von gestern 21:34 class="disclaimer" hier verwendest
Zitat:

Zitat von imebro (Beitrag 545553)
<a class="disclaimer" href=

ist für mich ein Zeichen dafür, dass dir wichtige Grundlagen fehlen, wie CSS funktioniert, um deine Aufgabe zu bewältigen. Mit class="disclaimer" blendest du den Link <a > aus.

imebro 29.07.2015 10:33

Hallo und danke für die Antwort.

Sorry... ich habe das nur wieder im Code eingesetzt, damit Ihr seht, was ich bisher versucht hatte.

Ich hatte schon verstanden, dass es so nicht funktioniert :roll:

Wie würde es denn funktionieren? Hast Du einen Tipp für mich?

Danke und Gruss,
imebro

MrMurphy 29.07.2015 10:48

Hallo

Zitat:

Wie würde es denn funktionieren?
Das habe ich bereits geschrieben:

Zitat:

Die grundsätzliche Voraussetzung ist, das sich die id und / oder class im HTML-Quelltext der Seite mit dem Disclaimer von allen anderen Seiten unterscheiden.
Wenn alle Seiten die gleichen id und class haben können sie nicht separat gestaltet werden.

Du musst also zunächst einen Weg finden der Seite mit dem Disclaimer eine spezielle id oder class zu geben, zum Beispiel

Code:

<body id="disclaimer">
Alle anderen Seiten dürfen dann entweder keine id für den body haben oder die body-Elemente der anderen Seiten müssen andere id bekommen. Nur so kannst du per CSS die Disclaimer-Seite anders formatieren, also auch Container / Elemente ausblenden.

Ob und wie weit das mit dem Websitebaker möglich ist weiß ich nicht, das musst du ergründen.

Alternativ könntest du versuchen die CSS-Anweisungen im head-Bereich der Disclaimer-Seite (und nur der Disclaimer-Seite) unterzubringen. Aber das hängt auch davon ab ob der Websitebaker das zuläßt.

Nachtrag:

Ich habe grade noch etwas gegoogelt und folgende Seite gefunden, bei der es wohl um genau so ein Problem geht:

http://forum.websitebaker.org/index.php?topic=14212.0

Demnach müsstest du wohl in deine Vorlage (index.php ?) das body-Tag so umschreiben

Code:

<body id="p<?php echo $page_id; ?>">
Wenn das funktioniert sollte eigentlich jede Seite eine eindeutige body-id bekommen, die mit einem Buchstaben (wichtig) beginnt. Du musst dir also ein paar deiner Seiten aufrufen und im Quelltext schauen ob jede Seite eine andere id für den body hat. Dann kannst du mit der id des Disclaimers spezielle Einstellungen im CSS vergeben.

Gruss

MrMurphy


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:41 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023