iframe auto height

Status
Niet open voor verdere reacties.

Guzzler

Gebruiker
Lid geworden
9 apr 2007
Berichten
204
Hallo,

Is het mogelijk om een autoheight aan een iframe te geven? Hiermee bedoel ik dat de hoogte van het iframe per beeldscherm de maximale hoogte neemt, als de tekst te lang is voor een beeldscherm dan moet er een scroll in het iframe komen.

Mijn footer staat altijd onderaan geplaatst en wil ik het liefst ook altijd in beeld hebben.

In mijn css heb ik al geprobeerd de height op auto te zetten, maar dan word de hoogte niet aan het beeldscherm aangepast. Met height: 100%; werkt het ook niet dan wordt te hoogte in IE en FF erg klein, in Chrome gaat de footer naar beneden.

Als er vragen zijn hoor ik het graag, alvast bedankt.
 
<iframe src="URL" width="100" height="100%">

dat zou moeten werken,,

groetjes :thumb:
 
Hoi Guzzler,
Heb je al eens geprobeerd het iframe een vaste hoogte in pixels te geven, afgestemd op de pagina waarin het iframe wordt getoond als venstertje? Bijvoorbeeld:
Code:
[FONT="Courier New"][SIZE="2"]iframe {
   width: 600px;
   height: 450px;
   }[/SIZE][/FONT]
Of laat dat zich niet rijmen met hoe de pagina in elkaar zit? - Probleem kan hier zijn: de resolutie van de bezoeker. Als deze laag ingesteld staat, kan je dubbele schuifbalken rechts krijgen, en dat is vaak wat onhandig.
Heb je anders een link naar de pagina waar het op moet gebeuren? Anders blijft het een beetje droogzwemmen. ;)

Met vriendelijke groet,
CSShunter
 
als je het frame op een bepaalde hoogte plaatst en hier de height op 100% of auto insteld moet hij de hoogte vanaf het punt waar het frame geopend word gebruiken

ik heb even test pagina gemaakt,

http://q4u-hosting.nl/test.html

hier word het frame niet van helemaal boven tot helemaal onderaan geopend,
hier heb ik het even simpel opgelost met een paar <br> 's dit kan uiteraard ook met css
hiervoor kun je de volgende code gebruiken, (heb als voorbeeld even google gebruikt)

Code:
[B]<iframe src="http://www.google.nl" width="100" height="100%" style="position:absolute; top:300px;">[/B]

als resultaat krijg je dan:
http://q4u-hosting.nl/test2.html
 
Laatst bewerkt:
Sorry voor mijn late reactie, maar was erg druk afgelopen dagen
.
DoRcO heeft me al op weg geholpen, het iframe wordt aan de hoogte van de pagina aangepast. Het is nog niet helemaal wat ik bedoelde, daarom heb ik even de website op een testserver gezet.
Op deze link vind je de optie die DoRcO aangaf.

Wat ik dus graag gehad zou hebben, als het kan, is dat het iframe automatisch per beeldscherm, tussen het menu en de footer komt, en dat er geen witruimte onder het iframe is.

Hopelijk snappen jullie wat ik bedoel, anders hoor ik het graag.
 
Hoi Guzzler,
Alleen, wat ik in jouw opzet he-le-maal niet begrijp, is waarom je in 's hemelsnaam alle pagina's van de site zou willen vertonen in een iframe op 1 pagina.:shocked:
  • Je krijgt dan alle nadelen van een frame-site voor je kiezen: geen doorlinken naar pagina's van de site mogelijk, slecht/onmogelijk te vinden door zoekmachines, abominabele toegankelijkheid, enz. Zie bv. dit artikel.
In plaats van de "vaste onderdelen" (header en footer) als uitgangspunt te nemen, en daarbinnen telkens een nieuw venster (iframe) met de inhoud van een pagina te tonen, kan je beter precies het omgekeerde doen:
  • elke pagina een echte pagina laten zijn, en binnen die pagina telkens dezelfde header en footer op laten draven.
    Niet als iframes, maar rechtstreeks als html-code.
Die hoef je gelukkig niet steeds als identieke code in elke pagina te plakken (zou ook erg onhandig zijn als je bv. even een kleinigheid in het menu zou willen veranderen: moet je alle pagina's wijzigen!). Je kan één header-bestand en één footer-bestand maken, die je in elke pagina telkens met één regeltje php-code oproept (of met ssi-code, als de server geen php heeft). :)
Succes!
CSShunter
 
Laatst bewerkt:
Bedankt CSShunter, hier kan ik mee vooruit.

Waarom ik deze opzet heb gekozen is dat iemand anders de site gemakkelijker kan aanpassen. Dan hoeven ze niet tussen alle html code van de site te zoeken.
Ik kan me helemaal vinden in jouw aangegeven punten.

De server ondersteund (helaas) geen php, maar ik zal de handleidingen lezen en ik kijk wel hoe ver ik kom.

Bedankt voor de reacties!:thumb:
 
Hoi Guzzler,
De server ondersteund (helaas) geen php
Waarom ik deze opzet heb gekozen is dat iemand anders de site gemakkelijker kan aanpassen. Dan hoeven ze niet tussen alle html code van de site te zoeken.
Maar!
  • De pagina's die in het iframe zitten moeten toch net zo hard opgezocht worden in de mappenboom?
  • Pagina's in een iframe kunnen juist niet uit code-fragmenten bestaan. Een iframe is alleen maar een kijkgat in een pagina, waardoor naar een andere html-pagina gekeken kan worden (zie bv. handleidinghtml.nl). Pagina's die in een iframe zitten, moeten dan ook echte complete html-pagina's zijn: ze moeten allemaal een eigen <head>, <meta>'s, <body>, enz. hebben! - Je pagina http://thatswhoiam.atspace.com/test/home.html is dus niet in orde... :(
  • Met php of ssi kunnen juist wel code-fragmenten gemaakt worden die van alle ballast ontdaan zijn!
  • De server bij de provider maakt dan van alle onderdelen een complete echte pagina, die gedownload wordt naar de bezoeker. De browser merkt niets van alle samenstellende losse onderdelen (in de broncode kan je ze niet meer terugvinden).

Voorbeeld
Zie deze 5711.php en deze 5725.php. Er zijn op deze manier 17 verschillende pagina's met een plattegrond. Hun structuur is hetzelfde. De 17 pagina's bestaan alleen uit die delen die anders zijn, in dit geval alleen de zone-nummers. De hele rest wordt met php opgehaald.
Code van de pagina 5711.php is nu supersimpel:
HTML:
<?php       include("part-1.php");
?>5711<?php include("part-2.php");
?>5711<?php include("part-3.php");
?>5711<?php include("part-4.php");
?>5711<?php include("part-5.php");
?>5711<?php include("part-6.php");
?>5711<?php include("part-7.php");
?>5711<?php include("part-8.php");
?>5711<?php include("part-9.php");
?>
In part-1.php (zie broncode) zit het DOCtype t/m het html-punt waar in de titel het zonenummer moet komen. Als dat nummer via de instructie hierboven is ingevuld, gaat de code verder met part-2.php (zie broncode): eind van de <head>-codes, en begin van de <body>-codes tot waar weer een keer het zonenummer ingevuld moet worden, enz.
De andere 16 plattegrond-pagina's gaan analoog! Met een iets andere php-opzet dan hierboven zijn er ook nog 17 pagina's met zwart-wit kaartjes. Eén keer uitgedacht voor één pagina (en valid html en css gemaakt), en daarna makkelijk doorgevoerd voor de overige 33, en ook makkelijk aan te passen of uit te breiden. Omdat alles server-side gebeurt, is er ook geen enkel javascript te bespeuren, en kan dat nooit een belemmering vormen om de pagina's te zien. :)

Terug naar de toekomst
Op soortgelijke manier zou jij je site kunnen opbouwen zonder de nadelen van (i)frames: met shtml-pagina's voor de terugkomende html-toestanden en met codefragmenten voor de inhoud (d.w.z. de "kale" delen waar iemand anders makkelijk aanpassingen in kan maken).

Daar valt iets heel moois van te maken, denk ik! :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Bedankt voor je uitleg! en verwijzingen naar andere sites.:thumb:

Ik kom er helaas niet uit, als ik de regel <!--#include file="banner.html" --> in mijn index.shtml heb gezet, dan wordt het bestand (banner.html) niet opgehaald, zowel lokaal als op de server niet. Betekend dit dat de server geen SSI ondersteund? Zie deze link.

Voor de banner heb ik al een stuk of wat extensies geprobeerd, maar het wil niet lukken.
.html .htm .txt heb ik al geprobeerd. De uiteindelijke website word overigens bij KPN gehost.
 
Hé, merkwaardig dat ie het niet doet. Dat het lokaal niet werkt, kan kloppen (want het heten server-side-includes, en die werken dus alleen maar op een server).
Maar via de server zou ie het gewoon moeten doen. Hoewel?
  • de banner kan ik vinden,
  • maar de index.shtml is er niet (of staat in een verkeerde map op de server), en
  • ik krijg de gewone index.html te zien. De verwijzing naar de banner daarin is wel goed.
Dus: even de index.html hernoemen tot index.shtml en draaien maar! :)

Succes!
CSShunter
 
@csshunter: volgens mij is je tekst over ssi niet helemaal volledig. Dit werkt alleen maar als het in te voegen bestand in dezelfde directory of een subdirectory van het shtml-bestand staat.
Als het in 'n andere directory staat moet je gebruiken:

HTML:
<!--#include virtual="../../andere-dir/nog-andere-dir/dat-was-ver-weg.txt" -->

Tussen de aanhalingstekens zet je het pad naar het in te voegen bestand en de naam van dat bestand.
Waarom ze dat zo bedacht hebben is me 'n compleet raadsel, want het is nogal verwarrend.
In dit geval zal het trouwens wel werken, omdat het om index.shtml gaat, dus het in te voegen bestand zal wel in 'n subdir staan.

Edit: en alvast de beste wensen!
 
Inderdaad het was geen .shtml, maar als ik het goed begrijp moet ik nu ook een redirect maken van 'index.html' naar 'index.shtml' of niet? Want als ik nu naar de site ga, dan kom ik uit bij 'home.html'. De testserver ondersteund dit helaas niet.

Ik ga nu de rest van de site ook in orde maken, hopelijk lukt dit een beetje.
Echt super bedankt voor je hulp!:thumb:
 
@Goeroeboeroe:
Je hebt helemaal gelijk! Het was alweer een paar jaartjes geleden dat ik wel eens wat met ssi deed. ;)
En waarom ze dat rare verschil tussen file en virtual maakten, snapte ik toen ook niet (moest het elke keer opzoeken om te kijken welke ik ook alweer moest hebben).

@Edit:
Iedereen hetzelfde!

@Guzzler:
als ik het goed begrijp moet ik nu ook een redirect maken van 'index.html' naar 'index.shtml' of niet? Want als ik nu naar de site ga, dan kom ik uit bij 'home.html'.
Die snap ik niet - als ik op dit moment naar http://thatswhoiam.atspace.com/test1/ ga, zie ik een soort file-not-found-pagina van atspace. Ook index.html, index.shtml en home.html zijn er niet. Heb je alles er af gegooid, of zijn ze bij atspace een beetje at space?
In elk geval: als je geen index.html, geen index.htm, geen default.html, geen default.htm, geen home.html en geen home.htm in een directory hebt staan, zou de index.shtml in die directory gewoon opgepakt moeten worden, dacht ik; dan hoeft je niet te redirecten.

Gegroet!
CSShunter
 
De site heb ik zelf inderdaad verwijderd.
Het kwam dus doordat mijn iframe nog een bestand ophaalde, home.html. Hierdoor kwam ik dus niet op de index.shtml uit.

Ik ga er morgen weer mee verder.
 
Vraag opgelost

Heel erg bedankt voor de hulp!:thumb:

Het werkt perfect met SSI, alleen niet helemaal zoals ik had gewild, maar dit ziet er ook goed uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan