06. juli 2004 - 22:20Der er
92 kommentarer og 2 løsninger
side i css magen til dette design
Hej, jeg vil gerne lave en side magen til denne http://www.csszengarden.com/?cssfile=/106/106.css&page=0 , som I kan se, kan man downloade html, og css. Jeg har tænkt mig, at opbygge den helt for bunden, idet det bliver for forvirrende (for mig) bare at kopiere det hele! Men problemet er, at jeg ikke kan finde de vigtige informationer og billeder i koderne, dvs. baggrundfarve, og det store billede -hvad det hedder, hvordan jeg får det- og hvordan man ændrer overskriften på dette billede uden at skulle ind og ændre billede. Dvs. anmoder om hjælp til at opbygge denne side!
Ja, men jeg kan ikke finde dem. fx hvor står, og hvad er baggrundsfarven i htmlkode? Når jeg højreklikker på det store billede, kommer der ikke den velkendte mulighed at gemme BILLEDE, men baggrund, og herved gemmer jeg også overskriften! Hvis man kigger i html koden i linket jeg opgiver i spgm'et, så ses det, at overskriften er til at ændre?
er der noget jeg ikke kan få fat i... <style type="text/css" title="currentStyle"> @import "106/106.css"; </style> (uddrag fra html-kode) Desuden er siden opbygget i xml, men det behøver man jo ikke, vel?
Her kan du bla. læse, at der står: #container { position: relative; width: 700px; background: #ADB583 url(header.jpg) no-repeat top left; hvor header.jpg er det store billede du ser.
Billedet er altså lagt ind som et baggrundsbillede, hvilket man bliver nødt til, da det er hele filosofien bag csszengarden. Her har webdesignerne kun noget ganske almindelig html-kode uden nogen form for style eller billeder eller nogen ting - kun indhold. Herefter kan de via et stylesheet omdanne sidens udseende som de vil.
Du skal dog være opmærksom på at bruge noget af det de viser, da alle siderne kun er optimeret ud fra én bestemt side, og dvs. det ikke nødvendigvis virker som et reelt design (sidernes indhold skifter jo, og det er ikke altid de tager højde for det).
det skal så siges at det her design burde kunne laves så det virker i på andre slags sider, men jeg nævnte det bare, så du ikke senere bliver alt for overrasket ;-)
Jeg vidste ikke, at man kunne definere body i to css -stylesheets, men hvor fandt du linket - det burde jo stå sammen med det andet stylesheet, da siden er til at downloade? :)
Men tak skovenborg - nu er jeg kommet meget videre - hvad betyder, når afstand defineres med et minus-tagn - foran fx -350px? (Indtil videre kommer jeg vel længest ved at give små konkrete spgm.? =O)
her kommer lige et til spgm. ved ikke, om jeg forstod dig før, men disse fra html-koden : <div id="pageHeader"> <h1><span>css Zen Garden</span></h1> <h2><span>The Beauty of <acronym title="Cascading Style Sheets">CSS</acronym> Design</span></h2> </div> <div id="quickSummary"> <p class="p1"><span>A demonstration of what can be accomplished visually through <acronym title="Cascading Style Sheets">CSS</acronym>-based design. Select any style sheet from the list to load it into this page.</span></p> <p class="p2"><span>Download the sample <a href="zengarden-sample.html" title="This page's source HTML code, not to be modified.">html file</a> and <a href="zengarden-sample.css" title="This page's sample CSS, the file you may modify.">css file</a></span></p> </div>
får mig til at tro, at denne tekst kan ændres, men kan den det? Sådan så det bliver min egen overskrift?
De fleste afstande kan defineres som et helt tal med en målestok på, og regnes bare fra udgangspunktet, så et negativt tal vail bare flytte det opad, hhv. til venstre !-)
Du skal bare huske at din css-kodning hører sammen med din html-kodning, så html-tingene skal have en sammenhæng til din css-kodning vha. enten tag-selectors (f.eks. acronym{}, .className eller #pageHeader !-)
et andet spgm.: er der en speciel måde jeg skal positionere divboksene på inden i den store (som er den aflange rektangulære, hvor det hele ligger? Jeg har tænkt mig at lave en div bok med brødteksten, som det kan ses fra linket i højre side, og så menu boksene i venstre side, men hvordan skal jeg positionere dem - hvad ville være bedst?
til dit sidste spørgsmål: Ja, du skal sørge for at den ydre boks (den store i det her tilfælde) også selv har en position forskellig fra static (som er den standard værdi den har). Den smarteste metode er at positionere boksen relativt: #storboksid {position:relative;} hvor storboksid er id'en på den boks du vil positionere dine andre små bokse indeni (fx pageHeader). Herefter vil en evt. boks indeni den store boks blive placeret i forhold til den store boks, fx: <div style="position:absolute;left:0px;top:0px;">Lille boks indeni den store</div> Denne boks vil ikke, som normalt, placere sig i øverste venstre hjørne af skærmen, men derimod i øverste venstre hjørne af den store boks (i dette tilfælde behøvede jeg egentlig ikke at definere left og top, som normalt kun er 0, men bare for syns skyld ;-)
Hvis du har forstået det princip og kan få det til at virke, så tror jeg det vil hjælpe en del.
og angående html-koden er det en lidt speciel sag. For jo, du kan godt ændre alt indholdet i din html-kode bare den, som roenving nævner, passer med css-koden. Og der er netop to stylesheets pga. hele tanken bag csszengarden:
En række designere for denne html-kode stukket i hånden og kan så style den som de vil. Dette bliver så til det stylesheet jeg viste dig i 07/07-2004 00:33:52. Det andet stylesheet (http://www.csszengarden.com/zengarden-sample.css) er derimod et stylesheet udelukkende til dokumentation - et standard stylesheet, som designerne kan gå ud fra når de vil lave deres design.
Men du kan godt ændre på denne sides html-kode, men du skal bare passe meget på, for html-koden har bevist mange elementer, som måske ikke synes at være nødvendige, men er til for at give designerne maksimal frihed.
Jeg er ikke "prof" - så I må have tålmodighed, men det du mener er kort sagt
stor divboks positioneret relativt med små bokse indeni positioneret absolut! Ik?
(uddrag fra mit nylavede css-stylesheet): Den store boks har jeg sat i midten (med roevings hjælp) med text-align, og margin -auto. #content er den store boks! jeg har godt nok ikke skrevet position relative, men den er da relativ, den bliver på midten (største divboks).
tjaa, man kan vel godt kalde det relativt - men du bliver alligevel nødt til at fortælle browseren det først. Den tænker ikke helt på samme måde som os ;-)
indsætte position:relative; - hvis du altså gerne vil positionere dine små bokse absolut indeni den store. #content { width: 710px; margin-left:auto; margin-right:auto; margin-top: 5px; border: 5px solid #FFF; position:relative;
Når først man har defineret skriftype i body i css, vil min browser helst ikke have det defineret i <p> også i css?
Nu har jeg lavet den størst div boks relativ og vil lave de små i denne absolut poitionering, og nu er problemet, at hele div boksen (som ikke gør det) skal blive mere aflang alt efter hvor meget de små div bokse fylder, altså kun udvides i længden NEDEFTER, skal jeg bruge float her (har aldrig prøvet det), eller?
For det er helt lovligt at have forskel i fonts på alle mulige elemeneter !-)
Absolut positionering vil gøre, at de intet har med den omkransende boks' størrelse, så hvis du vil have den til at udvide sig skal du sætte dem til position:relative, eller uden position !-)
-- og at få div'en til at udvide sig nedad er nemt nok, du sætter bare en bredde på, evt. en højde, du kan bruge som minimum, og så placerer du bokse ved siden af hinanden, ganske rigtigt med float:left; og så en afslutning af boks-strømmen på hver linje, f.eks. med en boks, som har clear:all; (eller clear:left/right !-)
Jeg har jo lige fået af vide, at jeg skulle positionere den store boks relativt - du hjalp mig endda, skovenborg understregede det bare ved at sige, at jeg skulle skrive position: relative;, og det har jeg gjort. Så sagde han, at alle bokse inden i skulle positioneres absolut sådan at de følger den store boks - se 7/7-2004 12:09:34
Hvis du skal have en stor boks inde i, og nogle små liggende over hinanden til venstre er det smartest at lave to store relativt positionerede bokse som floater til venstre og så inde i den venstre have de små bokse 'bare' efter hinanden uden nogen positionering !-)
Hvis deres bredde så matcher den omkringsiddende boks, vil den tilpasse sig !o]
Vent lige... hvis den store div boks hvor det hele skal ligge sættes til at blive positioneret absolute, så forbliver den ikke centreret ligesom du selv hjalp med at den skulle!
>>> Skovenborg, når jeg positionerer de mindre div bokse absolut indeni den store div boks, medfører det at den store div boks ikke længere udvides nedefter??? dvs. ikke længere indeholder dem - de små går ud over dens rammer - ligesom de var uafhænginge??? hvad skal jeg gøre? >Roeving, forstår ikke din seneste kommentar :)
Så nu positionerer jeg også de små bokse med relativ, som du siger, men nu vil de ikke lægge sig oven på billederne især i toppen, hvor de lige går lidt op på billedet. Hvad skal jeg her gøre? Containeren lægger sig mellem intro og outro, men ideen med netop css er jo at man kan lægge dem hvor man vil, og det er det jeg vil - DE SKAL BARE BLIVE INDENI DEN STORE DIV BOKS VED NAVN #Content?
du må undskylde hvis du blev forvirret over mine kommentarer før - men det også rigtig nok at absolut-positionerede elementer ikke påvirker den samlede bredde og højde. Jeg havde dog regnet med at de allerede var defineret og dermed ville det ikke give et problem. Da du nævnte nogle små bokse var jeg dog også overbevist om at det blot var nogle små bokse med nogenlunde fast højde og bredde - hvis du skal lave ting som spalter eller sådan noget er det bedre med fx float eller relativ-positionering.
Du kunne måske smide et link, så vi kan se hvor langt du er kommet og måske se hvad det er for nogle ideer du har til designet. Et billede siger jo mere en tusind ord og et link og noget ordentlig source-kode siger mere en tusind bøger - som man jo siger ;-)
Nu er jeg så småt ved at være færdig med basis udgaven til mine sider! i kan se her - fischerweb.frac.dk. Nu skal jeg så også lige være sikker på, om den nu også ser sådan ud hos dem som ikke kører IE -gør den det???
Som I kan se har jeg valgt at placere den store div boks med selve siden RELATIVT + den div boks (#content) med brødteksten, sidstnævnte sådan at den førstnævnte ville lave den ønskede udvidelse, når brødteksten fylder nedefter. :) Menuer og muligvis andre små bokse placere absolut - relativt virker ikke hensigtsmæssigt.
først og fremmest blev teksten centreret automatisk i IE, pga. text-align:center i body'en. Dette er noget IE gør, mens andre browsere som mozilla ikke gør det (i følge standarden burde text-align ellers blive nedarvet, så det kunne egentlig godt tyde på Microsoft for en gang skyld gør noget rigtigt ;-) Men nu hvor teksten bliver centreret i IE og ikke i Mozilla skaber det problemmer når du definerer indrykningen (left) i #container. For her vil indrykningen se langt større ud i IE end i Mozilla. For at komme dette problem til livs, sætter vi text-align:left ind i #content, så begge browsere nu viser teksten ens - og med en lidt højere indrykning på 240px burde den være perfekt.
I .menupunkt2 har jeg desuden fjernet height, da hele menu boksen kun blev 40px høj, og ikke udvidet af de ekstra menupunkter. Ved at fjerne height bliver den samlede højde derfor kun bestemt af de menupunkter, som ligger indeni.
Og nu til spørgsmålet om fornuftigheden i placeringen af boksene: Jo, som det ser ud nu ser det jo ganske fornuftigt ud, men husk på at absolut placerede bokse jo ikke udvider den store boks, da de ligger i et helt andet lag end resten af siden. Så du skal sørge for at højden på den store boks altid er tilpas stor, så menuboksene ikke bare flyver ud over siden. Man kunne bruge float, men det skaber dog samme problemmer i visse browsere. Men er du forsigtig burde det ikke skabe større problemmer.
Lige nu ligner det en clon af den ønskede side - hvilket jo egentlig oprindeligt også var ønsket, men mit mål er så at lave den mere personlig, mår først basis er i orden!
ja, har set siden i Firefox 0.9, Mozilla 1.5 og Netscape 7.1 og der er ingen problemmer. Ud over det ser siden umiddelbart også fin ud i Opera 7.5 og IE4+
Og lige (et hurtigt) andet spørgsmål: Hvorfor laver browseren mellemrum (relativt meget) mellem #container divboksen og #footer (=brødteksten og nederste billede) ?
NU er dette tredje spgm. Håber de alle tre bliver besvaret! Hvordan skal jeg styre de liks jeg vil lave i site navigations boksen i venstre side. Skal jeg lave endnu en div de kan skrives i inden...?
og angående det andet sidste spørgsmål, så kan du definere en negativ margin-bottom på din #container for at fjerne noget af mellemrummet. Kan ikke lige se hvad det er der laver mellemrummet, men nu ved du i hvert fald hvordan man kan fjerne noget af det: #container{ position: relative; width: 410px; top: -155px; left: 245px; margin: 0px; padding: 0px; text-align: left; background: transparent; margin-bottom:-100px;
> Skovenborg - ja jeg kan godt sætte den på body istedet - det vil jeg nu gøre - MEN DEN BURDE JO GØRE DET PÅ #content div boksen, der jo allerede sidder 5px fra top!!!!
Angående dine block elementer så er mine elementer jo allerde divs. I disse divs står nogle links - så hvordan placere jeg disse links, hvor jeg vil have dem i disse menu divs?
margin-bottom virker også fint i Mozilla når du sætter den i #content, men IE er åbenbart ikke så glad for den. Så du må jo nøjes med alternativet ;-)
Angående dine links, så kan du godt undgå at lave selve linksene om til block-elementer, men så kan du altså ikke udnytte padding på dem. Du kunne også bruge padding på dine omringliggende divs, men problemmet er, at de indgår for meget i selve designet, så hvis du ændrer for meget på dem, kan det godt skabe problemmer.
ellere kortere sagt = hvis du vil bruge padding, margin og den slags så duer det ikke på inline elementer, som links, medmindre du laver dem om til block-elementer.
Skal lige ud og lave lidt arbejde, så jeg svarer nok først tilbage senere i dag ;-)
Så må du forklare, hvad jeg skal gøre så jeg kan styre dem! jeg ved ikke lige, om det præcist er padding, jeg har brug får, men jeg skal bare kunne styre dem!
Mht. løsning af mellemrummet ml. container div boks og footer, så hjalp det MEN skabte samtidigt et andetproblem, nemlig en afstand på ca. en pixel ml. footer billedet og nederste border på Content (største div boks)???? Jeg vil lige uploade det så du kan se- men lige pt kan jeg ikke ...
Det med at positionere linksne gør jeg så sådan: <div class="menupunkt"> <div class="menulinks"><a href="http://www." title="" class="menutext">fischerweb</a> </div> </div> -og så definerer jeg .menulinks med padding-top og left! Det virker! Det var sådan du mente tror jeg!
Det er ved at blive lidt forvirrende - jeg ved det! Men målet er altså, at min menu er den samme som den I ser i linket i spgm.'et. Mine mellemrum er pt ikke ligeså store som I kan se?
Problem 1. For overskuelighedens skyld, starter jeg lige for en ende af: Som du kan se (nu) på nettet er der et lille mellemrum ml. footer billede og ydre ramme forårsaget af din løsning på problemet med mellemrum ml. brødtekst div boks og outro/ footer billede. Dog forsvinder førstnævnte, hvis værdien ændres til mindre en -100, men vil gerne kunne styre det - hvad skal der gøres?
Problem 2. Min menu skal se ud som den oprindelige (link), hvad gør jeg? Evt. kode eks! Pt. er menuboksene ikke lige så høje som på den oprindelige (se bort fra hvad jeg har lavet) Block er måske ikke en god ide, ide den laver en unaturlig afstand mellem linjerne ... eller - målet er dog at det skal være som den oprindelige!!! (som i spgm).
1) Du kan styre det ved samtidig at ændre på margin-bottom for outro - fx: #outro { height: 98px; background: #ADB583 url(http://www.fischerweb.frac.dk/footer.jpg) no-repeat bottom left; margin-bottom:-2px; }
jeg troede bare der er noget forkert - for det må da være nemt bare at definere sådan noget uden at skulle lavenødløsninger??? Kan du også hjælpe med problem 2 ?
Med en anden formulering så ser det ud til at billedet footer følger brødtekst div...!!! Så mon ikke man kunne sige til den at den skulle blive i sin outro boks?
det gør den også i andre browsere (har set det i Opera og Mozilla) og disse to viste sig også at være upåvirket af margin-bottom, så det burdte ikke være et problem.
Med hensyn til det andet problem, så kan jeg se du prøver at placere dem via: .menulinks { padding-top: 3px; padding-left: 10px; } hvilket jo også ser ud til at virke. Eller er det bare mig som er galt på den der? Så præcis hvad problemmet består i kan jeg ikke se, mht. placering.
(Lige en tænketank - vækker, hvis det der problem med mellemrum ml. brødtekst... hvis man definere -98 og derover rykker billedet med op -> 98 som jo netop er billedet og divens størrelse!!! Måske ringer der en klokke hos dig (Jeg prøver bare at forstå browseren!=)
Problem 2: Hvis du sammenligner min med den oprindelige er de ikke ens - mine mellemrum er ikke ligeså store? Min lave også en uregelmæssighed i venstre side en pixel for stor!!! Kan du give et bud på en bedre kopi af den originale?
til dit andet spørgsmål (igen) kan det nok løses ved at bruge den oprindelige padding, som csszengarden havde i deres udgave: .menulinks { padding: 5px 10px 5px 10px; }
det egentlig mærkeligt med det mellemrum, og at billedet begynder at ryge op når man når over en bund-margen på 98px (som du nævnte var billedets højde). Og jeg kan heller ikke altid blive klog på Internet Explorer (ja, for det med billedet som begynder at flyve sker ikke i andre browsere ;-) Så en egentlig logisk forklaring har jeg ikke.
Til gengæld kan jeg tilbyde en lidt mere enkel/bedre løsning. Prøv først at fjerne det margin-bottom halløj fra #container og #outro, og skriv: #outro { height:98px; position:relative; top:-100px; margin-bottom:-100px; background: #ADB583 url(http://www.fischerweb.frac.dk/footer.jpg) no-repeat bottom left; }
På den måde rykker man footeren 100px op og trækker bunden af den store boks med sig.
det eneste sted det skaber problemmer er i IE4, hvor der også er en hel del andre fejl. Men spørgsmålet er om du finder nogen meget bedre løsning en denne på problemmet. Det er svært at sige om det skaber problemmer før de egentlig opstår, og dermed kan jeg ikke lige forudse om der vil ske noget alvorligt med det.
Angående linksene så var den oprindelige padding som sagt anderledes end der var sat på din side fra før (mener jeg kom med forslaget for lang tid siden, hvor jeg ikke havde set hvad deres padding var. Så selvom mellemrummet var ligesom originalen, så manglede der lige den detalje. Det er selvfølgelig også lidt sværere præcis at sammenligne de to, da html'en jo heller ikke er opbygget ens.
vi gir da ikke op nu - vi mangler kun 37 kommentarer for at slå rekorden for flest indlæg i denne kategori. Lige nu ligger vi jo på en flot fjerdeplads :-)
:) hehe, ja men jeg skal jo heller ikke trække det i langdrag, men jeg har meget at lære hehe! (Du kan ikke læse nogle guldkorn ud af originalen om footeren ... vel?
-og lige et hurtigt spgm. jeg kan se at originalen anvender anden farve (grå) på text-decoration i menufeltet - hvordan gøres det? Og så er det vel også sengetid...hehe!
det vist den her du skal kigge efter: #linkList #lselect ul li a.c, #linkList ul li a.c { display: inline; font: 10px "Trebuchet MS", Verdana; color: #666; text-transform: none; } Det de har gjort er at lægge det lille link (den med den grå farve) ind i et ekstra link med klassenavnet c.
guldkorn og guldkorn - det er vel så meget sagt, men ved at se på deres css så kunne jeg se der faktisk ikke var gjort meget ved selve teksten, og det kun var footeren som var pillet ved. Men hvis man kigger i HTML-koden, kan man også se at deres footer ligger indeni et af de elementer, som også indeholder noget tekst.
Det kommer derfor også til deres fordel, da mellemrummet mellem teksten og footeren ikke bliver så stor, som på din side, hvor de to elementer er helt adskilt fra hinanden. På den måde kan de også undgå at rode alt for meget med margins og den slags, da det alt sammen vil som standard blive vist lige efter hinanden, som var det (næsten) almindelig tekst.
konklusion: Hvis du vil gøre det på nogenlunde samme måde som de gør det, skal du lave om på html-koden og ikke bare css'en. I dette tilfælde vil det betyde at du kan flytte footeren op i selve #container-div'en og derefter selvfølgelig lave en del ændringer i css-koden. Men umiddelbart betyder det ikke så meget - den løsning du indtil videre har er helt fin til at blive brugt ude i hverdagen :-)
Så nu er jeg tilbage fra ferie... og er en glad mand hehe for nu har jeg løst problemet med nederste footer, som I kan se, og i det hele taget har jeg ændret sidens konstruktion! Jeg bruger nu float. Det virker! Jeg siger tak for hjælpen både til Roeving og Skovenborg. Jeg værdsætter og er taknemmelig for jeres hjælp. :) Smid et svar Roeving!
Hej - lettest lige at spørge her: > Skovenborg eller Roeving: Nu er jeg færdig med min side : fischerweb.frac + .dk . Ville bare lige høre, om I skulle have en hurtig let løsning til et problem: I MOzilla, Netscape, Opera, vises brødteksten (#container) liggende hen over menuen. Hvordan sikrer jeg, at den vises lige som i IE - korrekt?
Jeg giver gerne et passende antal point (hvor meget ønsker I)?
Mvh. Webrex
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.