Css und iframe

Hallo zusammen.
Ich schäme mich ja fast, diese Frage zu stellen.

Wie kann ich es erreichen, dass eine css Datei auf einen iframe wirkt?

So sieht meine derzeitige css Verlinkung aus:

Wie erkennbar ist, liegt die css Datei im vorhergehenden Verzeichnis, also im Root.


Die index.php besteht aus zwei Frames. Der linke Frame hat den Namen „navigation“. Der rechte Frame hat den Namen „rechts“.

Ich habe zwei Dateien:
Dateinamen 1 lautet „die_musik_betreffend.php“
Dateinamen 2 Lautet „die_musik_betreffend_iframe.php“.

Die beiden Dateien liegen in einem Verzeichnis.

So sieht der komplette Inhalt der Datei „die_musik_betreffend.php“ aus

include("…/common.php");
include("…/sessions.php");
securitycheck();
$session=new sessions();
$sessionid=$session->check_session();
$session->update_sessions($sessionid);
$row_users_name=mysql_fetch_object(mysql_query(„SELECT * FROM „. $table_users .“ WHERE sessions=’“. $sessionid ."’"));
check_cookie(md5($row_users_name->username),md5($row_users_name->passwort));
?>

Aktualisierungen


Das seltsame ist, dass die Hintergrundfarbe des iframes stimmt. Nur die Schriftarbe ist nicht korrekt.

Das ist der body Inhalt der Css Datei:

body
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
text-decoration: none;
background-color:#355611;
}

Mein Bekannter, der momentan leider in Urlaub ist erklärte mir vor langer Zeit, dass der Begriff „body“ in diesem Fall in der Datei selbst nur durch das Wort „body“ in der Css gefunden wird. In der datei selbst steht er natürlich in Klammern also

Alle anderen Css Begriffe werden durch den class-Befehl aus der Css gefunden. In diesem Fall ist vor jedem Begriff in der Css ein Punkt.

Css Beispiel:
.warnnormal

Datei-Inhalt:

In jeder Datei klappt das wunderbar, nur nicht in den iframes.

Gruß
Manfred

Vielen Dank für eure Hilfe.

Moin!

Wie kann ich es erreichen, dass eine css Datei auf einen
iframe wirkt?

Auf den iFrame oder die Seite darin? Das ist wahrscheinlich der Knackpunkt, um den es sich bei Deinem Problem dreht.
Vermutlich kommst Du mit dieser Frage schon selbst auf die Lösung.

Wie erkennbar ist, liegt die css Datei im vorhergehenden
Verzeichnis, also im Root.

Dass das das root ist, sieht man nicht.

Die index.php besteht aus zwei Frames. Der linke Frame hat den
Namen „navigation“. Der rechte Frame hat den Namen „rechts“.

Aua, noch mehr Frames. Warum tust Du Dir das eigentlich an? Hat man Dich gezwungen? Dir mit Folter gedroht? Du benutzt offensichtlich schon PHP, also welchen Grund könntest Du haben, trotzdem Frames zu benutzen, trotz der vielen Nachteile und der nicht vorhandenen Vorteile?

Damit ist Dein Problem dann auch hausgemacht.

include("…/common.php");
include("…/sessions.php");

Du kannst sogar schon includen! Ich verstehe nun gar nicht mehr, warum es überhaupt Frames sein müssen.

Der restliche PHP-Code ist für Deine Frage irrelevant.

Und der HTML-Code ist grottig. Eine Tabelle ohne tabellarsische Daten und das ganze dann noch zusätzlich in einem verpackt. Das ist völlig sinnfrei. FAQ:1161 lesen, die dort verlinkte Einführung lesen und HTML verstehen.

Mein Bekannter, der momentan leider in Urlaub ist erklärte mir
vor langer Zeit, dass der Begriff „body“ in diesem Fall in der
Datei selbst nur durch das Wort „body“ in der Css gefunden
wird. In der datei selbst steht er natürlich in Klammern also

Hä?

Alle anderen Css Begriffe werden durch den class-Befehl aus
der Css gefunden. In diesem Fall ist vor jedem Begriff in der
Css ein Punkt.

Befehle? In CSS? Nein, Befehle gibts nur in Programmiersprachen. Weder HTML noch CSS sind welche.

In jeder Datei klappt das wunderbar, nur nicht in den iframes.

Du musst immer bedenken, dass es Frame wie eine neue, eigenständige Seite ist. Wenn Du den Frame selber formatieren willst, dann muss das dazugehörige Stylesheet in der Datei eingebunden werden, in der der Frame liegt. Damit kannst Du aber nur den Frame selber beeinflussen, nicht den Inhalt.
Der Inhalt des Frames ist eine eigene Seite. Willst Du diesen Inhalt beeinflussen, muss das dazugehörige Stylesheet in der Datei eingebaut werden, die in diesen Frame hineingeladen wird.

Willst Du Styles in die_musik_betreffend_iframe.php verändern, muss das in dem Stylesheet passieren, das in die_musik_betreffend_iframe.php geladen wird.

P.S.: width und height sowie frameborder haben im HTML-Code nichts zu suchen. HTML ist nur für die Semantik, alles was Optik ist, gehört ins Stylesheet. Und „name“ brauchst Du nur für Formulare, ansonsten benutzt man „id“ und „rechts“ ist schlecht gewählt, weil das Layoutinformationen sind, die - wie gesagt - nichts in HTML zu suchen haben.

Ich hoffe, ich konnte Dir helfen und Du nimmst die Zusatzinfos über HTML, Semantik und Trennung von Inhalt und Layout dankbar auf. Gerne kann ich die Thematik auch ausweiten.

Liebe Grüße,
-Efchen

Hallo Neckar,

so wie ich sehe, hast Du keine Schriftfarbe definiert.
wäre im z.B. für „rot“:

color:red;

In den body-selector eingefügt, wird es wohl dann auch wirken.

Und lass Dir nichts erzählen, welche iframe-attribute angeblich nicht in den tag gehören!!

http://www.w3schools.com/tags/tag_iframe.asp

h♥rzlichen Gruß
Nitya

Und lass Dir nichts erzählen, welche iframe-attribute
angeblich nicht in den tag gehören!!

Stimmt. Was width/height angeht, war ich zu voreilig. Die beiden Attribute kann und soll man da natürlich angeben, genauso wie im Image-Tag, so dass beim Aufbau der Seite bereits der für diese Elemente notwendige Platz reserviert wird.

frameborder gibts aber sicherlich nur noch in Transitional-Varianten von HTML, immerhin ist das Optik und nicht Semantik, und Transitional ist ja nur für den Übergang…

Aber man verwendet ja von Grundauf keine Frames, von daher hat sich mein Kommentar eigentlich eh erübrigt ;-D

Nachtrag:

http://www.w3schools.com/tags/tag_iframe.asp

Eine Site, die , oder in ihrer Liste hat, ohne zu erklären, warum man diese Tags nicht benutzt, kann ich nicht ernst nehmen.
Oh, und da wird gesagt, dass man nicht benutzen sollte, weil man bessere Effekte in CSS hinbekommt. Okay, da ist alles gesagt.

Aber man verwendet ja von Grundauf keine Frames

heißt: von grundauf darauf verzichten

  • externe Inhalte anzuzeigen
  • Teilbereiche nachzuladen
    (oder hierfür Ajax & JS verwenden zu müssen)

sich mein Kommentar eigentlich eh erübrigt ;-D

stimme Dir zu :smile:

h♥rzlichen Gruß
Nitya

erklären, warum man diese Tags nicht benutzt, kann ich nicht
ernst nehmen.

warum sollte man den b-tag nicht für die Definition eines fetten Texbereiches verwenden?
Das dieser hervorgehoben wird, hat ja wohl einen Sinn!

Nicht ernst zu nehmen sind die, die dafür z.B. einen nichtssagenden span-tag verwenden

h♥rzlichen Gruß
Nitya

Aber man verwendet ja von Grundauf keine Frames

heißt: von grundauf darauf verzichten

  • externe Inhalte anzuzeigen

Das geht auch ohne Frames und ohne JavaScript. Zumindest, wenn es eine Schnittstelle zu den fremden Inhalten gibt.
Und fremde Seiten im eigenen Frameset anzuzeigen kann ja nunmal auch rechtliche Probleme aufwerfen, sowas macht man am besten gar nicht erst.

  • Teilbereiche nachzuladen
    (oder hierfür Ajax & JS verwenden zu müssen)

Ja, aber ob Du nun Frames verwendest oder Ajax, das ist beides gleichermaßen problembehaftet. Und wenn man nicht gerade spezifische Web-Applikationen für bestimmte Einsätze schreibt, sollte man selbst zu Ajax immer eine JavaScript-freie Alternative anbieten, sonst geht ja sowieso alles über die Wupper.

sich mein Kommentar eigentlich eh erübrigt ;-D

stimme Dir zu :smile:

Und ich hab mich beim ersten Überfliegen Deiner Antwort so darauf gefreut, dass Du mir mal zu fachlichen Dingen zustimmst :smile:

Schönes Wochenende!
-Efchen

warum sollte man den b-tag nicht für die Definition eines
fetten Texbereiches verwenden?

Weil HTML nicht dafür gedacht ist, irgendetwas visuell hervorzuheben!
HTML ist nur für das „Unsichtbare“ da, nur für die Semantik, die logische Bedeutung des Inhalts! Und für **ist keine semantische Bedeutung definiert.

Wenn Du nur etwas fett haben willst, musst Du das mit einem machen. Aber in den wenigsten Fällen willst Du etwas fett haben, ohne dass Du damit eine semantische Bedeutung verbindest. In aller Regel bedeutet etwas fett geschriebenes für das Auge, dass es sich hier um etwas Wichtiges handelt. Dazu gibt es zwei Tags in HTML, (wichtig) und (sehr wichtig).
Nur mit diesen beiden Tags zeichnest Du den Textabschnitt wirklich als „wichtig“ aus. Mit gibst Du ihm keine besondere Bedeutung.

Das dieser hervorgehoben wird, hat ja wohl einen Sinn!

Eben. Aber dann musst Du das mit den Tags machen, die den von Dir gewünschten Sinn vermitteln. ist das jedenfalls nicht.

Nicht ernst zu nehmen sind die, die dafür z.B. einen
nichtssagenden span-tag verwenden

Wenn sie keine spezielle Bedeutung vermitteln wollen, ist das die richtige Lösung.

Das ist das A und O von HTML, das was viele noch nicht richtig verstanden haben: HTML hat nichts mit dem späteren Aussehen zu tun!
Will man etwas wichtig, aber nicht sehr wichtig haben, muss man verwenden, nicht . Wählt man aber , weil das in den meisten Browsern fett dargestellt wird, dann hat man die Grundlagen nicht verstanden.**

1 Like

Auf die Idee etwas ohne Sinn fett auszuzeichnen, kommst auch nur Du!!

Im Print- und Layoutbereich ist der Begriff und Sinn von BOLD ausgeprägter, als das von Dir favorisierte strong.
Demzufolge ist es sehr sinnvoll, entsprechende Textbereiche, auch so auszuzeichnen.
Ich schließe mich daher dem W3C an und verzichte auf strong.

Wie dann im Endeffekt die Darstellung erfolgt, ob durch die default-Werte des Browser oder über CSS ist eine ganz andere Sache.

Und ich hab mich beim ersten Überfliegen Deiner Antwort so
darauf gefreut, dass Du mir mal zu fachlichen Dingen zustimmst

-)

also … stimme jetzt mal darin zu, dass man vor der Verwendung von frames überlegen sollte, ob sich nicht eine andere Möglichkeit anbietet.

Es gibt aber aber auch Vorausetzungen, da wäre ein frame die einzige Möglichkeit.

h♥rzlichen Gruß
Nitya

Hallo Nitya und Efchen.
Zuerst einmal an euch beiden der Dank, dass Ihr mir geantwortet habt.

Leider aber musste ich feststellen, dass mir nicht geholfen wurde. Im Gegenteil, diese Anfrage meinerseits ist hier zu etwas ausgeartet, was ich nicht ahnen konnte. Sehr schade eigentlich.

Zu dir Efchen:
Ich muss mich wohl nicht vor dir rechtfertigen, wieso, weshalb usw. ich dies und das nicht erkläre. Jeder, der nur ein klitzekleines bisschen etwas von html versteht, weiß für was „“ ect. steht. Das manche Definitionen heutzutage durch ersetzt werden, das ist mir mittlerweile auch bekannt. Aber diese Seiten, die ich momentan bearbeite sind schon so alt und da brauche ich keine hintergrundtechnischen Neuerungen einzubauen, die in der Optik des Auges keine Auswirkung erzielen.

Übrigens, zu der Kategorie klitzekleines bisschen gehöre auch ich. Ich bin kein html Experte, der alles kann und weiß. Und wenn du mein Anliegen aufgrund deines Nichtverständnisses nicht ernst nehmen kannst, warum antwortest du dann überhaupt?

Ich habe mir erlaubt eine Frage zu stellen, weil mein Techniker derzeit nicht da ist und ich auf mich alleine gestellt bin.

Zu dir Nitya:
Vielen Dank für deine Unterstützung in Bezug auf die iframe Definitionen. Efchen schießt wohl gerne mal los, bevor … Aber lassen wir das.

Ich habe viel gegoogelt, aber eine Erklärung, warum eine externe Css auf einen iframe keine Wirkung erzielt, das habe ich bisher leider nicht gefunden. Das kann doch eigentlich nicht sein? *grübel. Aber ok, wie schon erwähnt, bin ich nicht der Fachmann für html, geschweige denn für php. Ein bisschen was von html verstehe ich, aber wie gesagt, nur ein bisschen was.

Meine Webseite um die es hier geht, die besteht schon etwa 10 Jahren und wird technisch gesehen, in der Hauptsächlichkeit, von meinem Bekannten betreut. Ab und an „pfusche“ ich ihm auch mal in seine Arbeit, dann freut er sich wieder :smile:)

Er selbst ist auch kein Freund von iframes, aber mir gefällt es nicht, wenn ich in der Höhe einer Seite rechts einen Scrollbalken habe und sich durch das runterscrollen die ganze Seite nach oben verschiebt. Also auch die Navigation links. So etwas mag ich persönlich nicht. Gut, ich könnte auch „Display Block“ verwenden, aber das alles umzubauen, dazu fehlt mir definitiv die Zeit. Und mein Bekannter, der sich nur dann um meine Seiten kümmert, wenn es wirklich sein muss, den möchte ich nicht noch belästigen, wenn es nicht unbedingt sein muss.

Meine Webseite muss optisch nicht soooo perfekt sein, dass jedes „i“ Tüpfelchen punktgenau stimmt. Darauf legen meine Besucher keinen Wert. Ich habe mir auch mal den Spaß erlaubt, die Fehler, die meine Seiten aufweißt durch eine htaccess mittels “php_flag display_errors on“ anzeigen zu lassen. Da wurde mir schon ein bisschen schlecht dabei :smile: Aber solange diese Fehler weder im IE noch im Firefox keine negativen optischen Auswirkungen haben interessiert mich das auch nicht unbedingt und meine Besucher schon gar nicht – weil – sie sehen es ja eh nicht.

Liebe Grüße
Manfred

Hallo Manfred,

ob im iframe ebenfalls eine css-Datei und welche geladen wird ??
Du hast ja nur den script der Hauptseite gepostet!!
Und entscheidender ist … welches HTML von PHP ausgegeben wird.

Es gibt nur 2 Gründe:

  1. es wird keine css-datei geladen:
    mit Browser die Hauptseite laden
    Quelltext des iFrames anschauen,
    ist dort auch der link-tag für die Styles vorhanden?!?
    Ist es die richtige? Kann ja auch sein, dass der Verweis auf eine andere zeigt.
    Auf keinen Fall „erbt“ der Inhalt des iFrames irgendwelche Styles der Hauptseite!!

  2. in der css-datei ist die Schriftfarbe nicht definiert:
    guck dir den Inhalt der css-Datei an.
    Ist dort die Schriftfarbe definiert?

Tja … wenn Du das so nicht selbst testen/überprüfen kannst, kann Dir hier nicht geholfen werden.

h♥rzlichen Gruß
Nitya

Hi,

Im Print- und Layoutbereich ist der Begriff und Sinn von BOLD
ausgeprägter, als das von Dir favorisierte strong.

Print-Medien haben ja auch lediglich optische Möglichkeiten - HTML dagegen semantische Auszeichnung. Wenn Du strong ablehnst, dann wahrscheinlich auch h1, h2, p, … oder?

Ich schließe mich daher dem W3C an und verzichte auf strong.

Seit wann und wo bitte lehnt das W3C strong ab? Es hat doch gerade solche Elemente zur semantischen Textauszeichnung definiert.

Gruß
Ingo

Hallo,

HTML dagegen semantische Auszeichnung. Wenn Du strong
ablehnst, dann wahrscheinlich auch h1, h2, p, … oder?

Nicht nur die …
der Inhalt von body fängt bei mir mit an …
… und hört mit
auf :smile:)

Was soll so eine blöde Frage?
Ich habe geschrieben, dass ich den b-tag vor dem strong-tag bevorzuge und den b-tag verwende, bevor ich dafür einen span-tag nehme.
Habe ich geschrieben, dass mit dem b-tag irgendeine Semantische Bedeutung verbunden ist?
Dieser tag ist eindeutig dem fontstyle zugeordnet.
Warum darf man ihn hierfür nicht verwenden und muss diese visuelle Hervorhebung undedingt mit css umsetzen?

Seit wann und wo bitte lehnt das W3C strong ab? Es hat doch
gerade solche Elemente zur semantischen Textauszeichnung
definiert.

das habe ich nur wiederholt:
/t/css-und-iframe/6367486/5

Wenn Du auch der Ansicht bist, dass der b-tag generell nur von Ahnungslosen verwendet wird - dann lassen wir weitere Schreiberei.

h♥rzlichen Gruß
Nitya

Hallo Nitya!

ich mische mich - dreist wie ich bin - jetzt mal kurz ein (bitte nicht die Ohren strubbelig ziehen)

Ich habe geschrieben, dass ich den b-tag vor dem strong-tag
bevorzuge und den b-tag verwende, bevor ich dafür einen
span-tag nehme.
Habe ich geschrieben, dass mit dem b-tag irgendeine
Semantische Bedeutung verbunden ist?
Dieser tag ist eindeutig dem fontstyle zugeordnet.
Warum darf man ihn hierfür nicht verwenden und muss diese
visuelle Hervorhebung undedingt mit css umsetzen?

Es ist sicherlich richtig: müssen muss man gar nichts, aber der strong-Tag soll erledigt einen Tucken mehr als der **-Tag: Zwar stellen beiden den jeweiligen Text fett dar, ABER der strong-Tag sorgt zusätzlich dafür, dass Menschen, die auf Screenreader angewiesen sind, gesagt bekommen, dass diese Stelle wichtig ist (die Betonung ist eine andere). Und Barrierearmut bei Webseiten sollte meiner bescheidenen Meinung nach berücksichtigt werden
Und als weiteren Nebeneffekt ist auch bei der Suchmaschinenoptimierung ein Tag, der sich positiv auf die Crawler auswirkt.

Lieben Gruß
Michael Vogl**

1 Like

Hallo Michael,

ich weiß schon, wann ich strong und wann ich b verwende.
Aber generelles b-tag-„Verbot“ kann ich einfach nicht so stehen lassen und dummes Gerede über W3C schon gar nicht.

Und es ist doch auch gerade für screenreader sinnvoll, wenn ich einen kleinen Teil aus einem Text nicht mit strong auszeichne, weil das lediglich eine visuelle Auszeichnung sein soll.
Z.B. wenn ich zusätzlich das Wort „fett“ noch fett auszeichne, es aber in der Bedeutung nicht für eine Auszeichnung mit wichtiger Hervorhebung reicht.

Und wenn mir jemand erklären kann, warum ich dann einen fett-gestylten-span-container statt b-tag verwenden soll, ist mir das auch recht.
Aber dann bitte auch konkret & sinnvoll und nicht mit diesem generellen Gerede … und etwas anderes dazu habe ich bis jetzt nicht gelesen!! (und werde es wahrscheinlich auch nicht :smile:)

Das Definieren eines fetten Text-Bereiches ist nun mal Bestandteil in 4.01. und bleibt es auch in HTML5.

h♥rzlichen Gruß
Nitya

Hi,

Ich habe geschrieben, dass ich den b-tag vor dem strong-tag
bevorzuge und den b-tag verwende, bevor ich dafür einen
span-tag nehme.

Du hattest geschrieben:

Ich schließe mich daher dem W3C an und verzichte auf strong.

und darauf (genereller Verzicht und W3C) bezog sich meine Antwort.

Warum darf man ihn hierfür nicht verwenden und muss diese
visuelle Hervorhebung undedingt mit css umsetzen?

Natürlich darf man ihn verwenden - tue ich gelegentlich auch. Aber die Fälle, in denen etwas nicht wichtiges optisch hervorgehoben werden soll, sind doch recht selten und da stellt sich immer die Frage, warum überhaupt hervorheben, wenn doch unwichtig… Um etwas lediglich zu betonen, ist vorgesehen, was man ggf. auch bold optisch formatieren kann.

Seit wann und wo bitte lehnt das W3C strong ab? Es hat doch
gerade solche Elemente zur semantischen Textauszeichnung
definiert.

das habe ich nur wiederholt:
/t/css-und-iframe/6367486/5

Das bezieht sich auf: „The , , , , , , , and tags are all phrase tags. They are not deprecated, but it is possible to achieve richer effect with CSS.“

  • (natürlich!) nicht vom W3C, sondern von w3schools.com.
    Generell haben die Autoren zwar damit recht, dass man mit CCC „reichere“ Formatierungen erzielen kann, als die für diese Elemente im Browser-CSS vordefinierte, aber „They are not deprecated“ kann nur zu der Schlussfolgerung führen, dass die Autoren diese semantischen Auszeichnungen ablehnen und die Seite daher auch für mich „deprecated“ ist.

Gruß
Ingo

Hallo,

Upss … ist mir erst jetzt aufgefallen, dass W3schools nichts mit W3C zu tun hat. (so eine Art Norwegisches SelftHtml)

Aber was soll das Geflame über diese Seite?
Dort ist auch zu lesen:
Font-style tags are defined in HTML4, but it is strongly recommended to use CSS styling instead.

Und vor dem Satz mit „not deprecated“ steht:
The , , , , , , , and tags are all phrase tags!
Und Phrase-Elemente sind nun mal für die Strukturierung von Text zuständig.
Daher verstehe ich das mehr als Hinweis darauf, strong nicht zu verwenden, wenn es „nur“ ums Styling geht.

Im W3C Working Draft HTML5 wird der b-tag unter 4.6 Text-level semantics aufgeführt.
Dass dürfte zukünftig solche Diskussionen vermeiden helfen :smile:)
Und solche Forderung nach Erklärungen, warum man z.B. den b-tag nicht benutzt, erübrigen.

h♥rzlichen Gruß
Nitya

Auf die Idee etwas ohne Sinn fett auszuzeichnen, kommst auch
nur Du!!

Nein, eigentlich nicht. Ich hab nur gesagt, was theoretisch möglich ist.

Im Print- und Layoutbereich ist der Begriff und Sinn von BOLD
ausgeprägter, als das von Dir favorisierte strong.

Wir sind aber im Webdesign und nicht im Printdesign. Das sind zwei verschiedene Dinge. Außerdem reden wir gerade über HTML, das hat mit Design gar nichts zu tun.

Demzufolge ist es sehr sinnvoll, entsprechende Textbereiche,
auch so auszuzeichnen.

Nein.

Ich schließe mich daher dem W3C an und verzichte auf strong.

Welches W3C meinst Du? DAS W3C verzichtet nicht darauf, sondern bezeichnet das Tag als das Tag um sehr wichtige Textpassagen auszuzeichnen. Die Site, die Du da immer verlinkst, ist nicht vom W3C.

Wie dann im Endeffekt die Darstellung erfolgt, ob durch die
default-Werte des Browser oder über CSS ist eine ganz andere
Sache.

Eben.