2010-10-12 35 views
1

Je suis souvent confondu avec l'attribut href, l'étiquette de lien et la balise de base. Je ne sais pas comment lier correctement le fichier CSS afin qu'un fichier puisse être déplacé dans un sous-dossier et fonctionne encore (par exemple plus tard), donc je suis allé de l'avant et j'ai découvert comment fonctionne le href lorsque je spécifie un emplacement. Pour votre connaissance, je travaille avec mon localhost, donc j'ai le dossier principal htdocs et à l'intérieur, j'ai plusieurs dossiers, chacun pour un projet sur lequel je travaille. Il finit par ressembler à ceci:HTML - Présentation de href et des balises de lien et de base

localhost/index.php (which redirects to localhost/home/index.php) 
localhost/home/ 
localhost/zune/ 
localhost/school/ 
localhost/aeac/ 

Et généralement la mise en page d'un dossier sera quelque chose le long de ces lignes:

localhost/aeac/images/ 
localhost/aeac/stylesheets/ 
localhost/aeac/scripts/ 

en cours, disons que j'ai le fichier localhost/aeac/test/index.html et, je avoir 4 liens pour tester. J'ai découvert que

<a href="/"> will link to "localhost/" 
<a href="./"> will link to "localhost/aeac/test/" (the directory the file is in.) 
<a href="../"> will link to "localhost/aeac/" (the directory above the file.) 
<a href="about.html">will link to "localhost/aeac/test/about.html" (the directory the file is in.) 

Maintenant que je comprends href, je dois comprendre comment lier CSS correctement.

Imaginez le répertoire du site ressemble à ceci:

localhost/aeac/ 
localhost/aeac/images/ 
localhost/aeac/stylesheets/ 
localhost/aeac/scripts/ 

et à droite dans le dossier /aeac/ je index.html. Le fichier a une balise de lien qui ressemble à ceci:

<link rel="stylesheet" href="stylesheets/main.css" /> 

Alors qui fonctionne bien, principale est essentiellement la structure/thème du site et sera inclus dans chaque fichier. Le problème se produit lorsque je dois créer un sous-dossier. Maintenant, nous avons un localhost/aeac/users/*username*/index.html. Le site utilise toujours le fichier main.css, mais le lien ne fonctionne plus car il n'y a pas de dossier stylesheets à l'intérieur.

Voilà où je suis coincé, j'imagine que je devrais utiliser la balise de base pour résoudre mon problème, mais je suis encore confus sur la façon dont cela serait écrit. Aussi, je sais que je pourrais juste changer le lien de lien pour tous les dossiers dans le dossier d'utilisateurs, mais j'aimerais savoir comment faire de cette façon (si c'est même possible.)

Répondre

1

Je crois que vous voulez ceci:

<link rel="stylesheet" href="/aeac/stylesheets/main.css" /> 

Cela commence avec /, donc il va toujours traverser à partir de la racine, peu importe où votre page est située (par exemple /aeac/index.html ou au /aeac/users/foo/index.html). Maintenant, si vous avez le contrôle sur l'étiquette dans chaque copie de index.html (ce que vous faites probablement), vous pouvez également naviguer vers le haut avec .., à ../../stylesheets/main.css, mais naviguer depuis la racine est probablement plus simple.

2

avec ce que vous avez trouvé sur href, juste combiner ces connaissances sur la navigation avec votre approche finale:

donc, si vous avez ceci:
localhost/CCAE/
localhost/CCAE/images/
localhost/CCAE/stylesheets/
localhost/CCAE/scripts/
localhost/aeac/users/

et vous êtes localhost/CCAE/utilisateurs/index.html vous allez juste une place de répertoire (../ pour entrer dans CCAE), puis naviguez sur:

../stylesheets/style.css

Hope this helps

1

Vous pouvez avoir un chemin absolu à la feuille de style en utilisant/comme base

<link rel="stylesheet" href="/aeac/stylesheets/main.css" />

1

Vous pouvez utiliser: /stylesheet/main.css

ou ../../stylesheet/main.css

Peu importe ce que le dossier "utilisateur" est nommé, ../. . toujours aller 2 dossiers arrière:

/aeac/users/user1/index.html /aeac/users/user2/index.html

../../stylesheet seront toujours à/CCAE/stylesheet