Avatar billede hyggehesten Nybegynder
25. september 2005 - 16:55 Der er 7 kommentarer og
2 løsninger

Hvordan afslutter man en css henvisning?

Jeg har en php side som jeg laver en css side til - men problemet er at jeg har en menu som skal have en link størrelse og når jeg bruger include bliver hele sidens link samme størrelse som menuen.

Kan man afslutte css henvisningen: <link rel="stylesheet" type="text/css" href="style/menu.css"> så jeg kan have en anden link størrelse til resten af dokumentet ?
Avatar billede skovenborg Nybegynder
25. september 2005 - 17:03 #1
Du kan jo udnytte nedarvning, som er en af de store styrker ved CSS.

Fx, hvis din menu ligger inde i en div med id'en #menu kunne du i dit stylesheet skrive:

A {
    font-size:14px;
}
#menu A {
    font-size:20px;
}

På den måde vil alle links have størrelsen 14px undtagen de links der ligger inde i elementet med id'en "menu", som får størrelsen 20px. Det er i hvert fald en rimelig enkel måde at løse det på.
Avatar billede skovenborg Nybegynder
25. september 2005 - 17:04 #2
hov, nedarvning var måske det forkerte ord. Nå, hva' skidt ;-)
Avatar billede hyggehesten Nybegynder
25. september 2005 - 17:15 #3
Id med menu *?

Min menu fil ser sådan her ud:
<html>
<head><link rel="stylesheet" type="text/css" href="style/menu.css"></head>
<body>
<?
$foresp = mysql_query ("SELECT * FROM bruger WHERE brugernavn='".$bruger->hent_brugernavn()."'") or die(mysql_error());
$r = mysql_fetch_array($foresp);
if($bruger->logget_ind() == true){
echo "<a href=\"profil.php?id=" .$r['id']."\"><span class=\"menu\">Profil</span></a> | <a href=\"skriv.php?id=" .$r['id']."\"><span class=\"menu\">Gæstebog</span></a> | <a href=\"ret/profil.php\"><span class=\"menu\">Ret profil</span></a> | <a href=\"brugere.php\"><span class=\"menu\">Se brugere</span></a> | <a href=\"logud.php\"><span class=\"menu\">Log ud</span></a>";
}else{
echo "<a href=\"logind.php\"><span class=\"menu\">Log ind</span></a> | <a href=\"opret.php\"><span class=\"menu\">Opret bruger</span></a> | <a href=\"brugere.php\"><span class=\"menu\">Se brugere</span></a>";
}

?>
</link>
</body>
</html>
Avatar billede bjoarn Nybegynder
25. september 2005 - 17:28 #4
CSS defineret i <style>-tag eller i externe filer vil altid gælde for hele det dokument som kommer som output. Det kan ikke afgrænses til dele af et dokument.
Tilgengæld kan du jo i css definerer mange forskellige selectors, så du undgår at dine attributes ændre andet end lige præcis det element du ønsker.
Fx. kan du omkring alle menu-link'sne lave en <div id="menu"></div> og så glemme alt om ekstra spans og classes. I css-filen kan du så nøjes med at skrive #menu a{} og så vil du kunne style menu-links uden at påvirke de resterende links.
Avatar billede skovenborg Nybegynder
25. september 2005 - 17:31 #5
hmm, du kan da ikke inkludere sådan en side direkte ind i en anden. Så vil der jo pludselig være to html,head og body-elementer og det er jo noget rod. I stedet synes jeg bare din menu-fil skal se sådan ud:
<?
$foresp = mysql_query ("SELECT * FROM bruger WHERE brugernavn='".$bruger->hent_brugernavn()."'") or die(mysql_error());
$r = mysql_fetch_array($foresp);
if($bruger->logget_ind() == true){
echo "<a href=\"profil.php?id=" .$r['id']."\"><span class=\"menu\">Profil</span></a> | <a href=\"skriv.php?id=" .$r['id']."\"><span class=\"menu\">Gæstebog</span></a> | <a href=\"ret/profil.php\"><span class=\"menu\">Ret profil</span></a> | <a href=\"brugere.php\"><span class=\"menu\">Se brugere</span></a> | <a href=\"logud.php\"><span class=\"menu\">Log ud</span></a>";
}else{
echo "<a href=\"logind.php\"><span class=\"menu\">Log ind</span></a> | <a href=\"opret.php\"><span class=\"menu\">Opret bruger</span></a> | <a href=\"brugere.php\"><span class=\"menu\">Se brugere</span></a>";
}

?>

Og så skrive:
<link rel="stylesheet" type="text/css" href="style/menu.css">
i de dokumenter hvor menuen skal være inkluderet. Så kan du inkludere din menu-fil lige hvor det passer dig (altså i body-sektionen).

Det jeg så mente var, at du kunne inkludere den i fx en div (eller hvilket element der nu er mest hensigtsmæssigt i forhold til designet):
<div id="menu">
<?php include("menu.php"); /* inkluderer menu-filen */?>
</div>

I din menu.css kunne du så skrive som jeg først foreslog:
#menu a {...}
Avatar billede hyggehesten Nybegynder
25. september 2005 - 17:46 #6
Nice - det virker med #menu
Men smid svar begge så deler jeg points.
Avatar billede skovenborg Nybegynder
25. september 2005 - 17:52 #7
det var da godt :-)
Avatar billede bjoarn Nybegynder
25. september 2005 - 18:07 #8
jeg stadig lidt ny hvad angår pointgivning, for jeg vil da ikke tage æren for svaret som skovenborg kom med først.
Men hvis der er point i en uddybende forklaring, så er det fint med mig :-)
Avatar billede skovenborg Nybegynder
25. september 2005 - 18:12 #9
det er i hvert fald helt i orden med mig...vigtigere er point jo heller ikke (men fint du spørger :-)

Du skrev jo også et rigtigt, opfølgende svar, som uddybede det jeg startede basalt med at skrive.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester