3

cssに問題があります。

ホームページでは正常に読み込まれますが、自分のサイトのリンクにアクセスすると、cssが正しく読み込まれません。したがって、基本的に以下のコードはindex.htmlで正常に機能しますが、以下に示すリンクに移動すると、クラップスになります。

すべてのリンクにまったく同じコードが含まれているため、機能しない理由がわかりません。

これが私のソースコードです:

<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <LINK href="styles.css" rel="stylesheet" type="text/css">
    </head>
    <body>
            <div id ="leftcol">
                <a href="content/practice.html"><div class ="left-column-item">Practice!</div></a>
                <a href="content/AboutUs.html"><div class ="left-column-item">About Us!</div></a>
                <a href="content/contactUs.html"><div class ="left-column-item">Contact Us!</div></a>
            </div>
        <div id="left-placeholder"></div>
        <div id ="left-pusher"></div>
        <div id ="content">Math Practice Site <br> hello</div>
    </body>
</html>

//the css file:

/* 
    Document   : styles
    Created on : Nov 2, 2012, 11:50:48 PM
    Author     : me
    Description:
        Purpose of the stylesheet follows.
*/

root { 
    display: block;
}
#leftcol a{text-decoration: none;}
#leftcol{   
    left: 10%;
    width: 200px;
    height: 100%;
    margin-top: 0px;
    position: absolute;
    opacity:0.6;
    color: white;
    font-size: 2em;
}
#left-placeholder{
    height: 100%;
    width: 10%;
    float: left;
}
#left-pusher{
    height: 100%;
    width: 200px;
    float: left;
}
.left-column-item{
    background: url('images/bgnav.jpg');
    height: 33.334%;
    background-size: 100%;
    opacity:0.6;
    color: white;
}
.left-column-item:hover{
    background: url('images/bgnav.jpg');
    height: 33.334%;
    background-size: 100%;
    opacity: 1;
}
#content{
    text-align: center;
    color: white;
    font-size: 5em;
    height: 100%;
    width: 70%;
    float:left;
}

body{
    background: url('images/background.jpg');
    background-size: 100%;
    margin: 0;
    min-height: 100%;
    width: 100%}
html, body
{
    height: 100%;
}

これが私の練習ページです:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <LINK href="../styles.css" rel="stylesheet" type="text/css">
        <script type ="text/javascript">

        </script>
    </head>
    <body>
            <div id ="leftcol">
                <a href="practice.html"><div class ="left-column-item">Practice!</div></a>
                <a href="aboutUs.html"><div class ="left-column-item">About Us!</div></a>
                <a href="contactUs.html"><div class ="left-column-item">Contact Us!</div></a>
            </div>
        <div id="left-placeholder"></div>
        <div id ="left-pusher"></div>
        <div id ="content">Practice!</div>
    </body>
</html>
4

5 に答える 5

1

cssファイルは絶対パスを使用していません。リンクがサイトのサブフォルダー内にある場合、cssパスは正しくありません。

したがって、cssファイルがサイトのルートにあると仮定して、HTMLを次のように変更します。

<LINK href="/styles.css" rel="stylesheet" type="text/css">

これで問題は解決するはずです。

編集 私はあなたがすべてがうまくいくとあなたが言うことを知っています、しかしあなたはあなたのCSSへの相対パスを使用しているので、あなたはcssファイルの2つのバージョンを持っている可能性があります-1つは正しい、もう1つはまったく同じではない、そしてそれは説明することができますcssファイルの「ロードエラー」の場合。適切なcssファイルの場所へのルートベースのパスを使用することで、この可能性を完全に排除できます。どちらかといえば、状況を制御するために少なくともそこから始めたいと思います。それでも問題が解決しない場合は、少なくともこれを可能性として排除したことを知ることができます。ここでのほとんどすべての回答が同じ問題を指していることを考えると、それが原因である可能性が最も高いと言えます。

また、あなたの練習ページは

<LINK href="../styles.css" rel="stylesheet" type="text/css">

したがって、練習ページが投稿の最初のページに対してサブフォルダーにない限り、2つのページは同じcssファイルを使用していません。

于 2012-11-03T15:05:34.647 に答える
0

cssがロードされない理由は、ブラウザがcontent/htmlがあるフォルダからcssを見つけることができないためです。

このようなサブフォルダにあるhtmlファイルで相対パスを使用できます

<LINK href="../styles.css" rel="stylesheet" type="text/css">

base hrefすべてのリンクが参照する場所を定義することもできます。これにより、他のリンクの動作が異なる可能性があるため、必要に応じて修正してください

<head>
<base href="http://www.myawesomesite.com/">
</head>
<LINK href="styles.css" rel="stylesheet" type="text/css">

ベースhrefが設定されている場合、ブラウザは、htmlファイルがどこにあっても、常にそのリンクをwww.myawesomesite.com/styles.cssに参照します。

于 2012-11-03T15:11:48.887 に答える
0

あなたの道は間違っています。index.htmlルートディレクトリでcssを探します。に移動するとcontent/、でcssが検索されcontent/ます。

絶対パスを使用するか../styles.css、第1レベルのサブディレクトリでそれらのファイルに使用します。

于 2012-11-03T15:06:36.443 に答える
0

その単純な間違い。リンクをクリックすると、基本的に「content」フォルダに移動し、htmlファイルの1つを開きますが、cssファイルはルートフォルダにあります。したがって、コンテンツフォルダでは、すべてのファイルのcssパスを変更する必要があります。

だから、コンテンツフォルダに移動します

交換

 styles.css

 ../styles.css
于 2012-11-03T15:09:40.177 に答える
0

これの最も可能性の高い原因は、HTML<link>タグで相対パスを使用していないためです。

したがって、リンクのクリックに応答してHTMLコードが呼び出されると、別のディレクトリに移動し、cssを見つけることができなくなると思います。

相対パスは、../表記を使用して指定されます。これは、ブラウザに、現在の場所から1レベル下を見て、../の後に指定されたファイルとディレクトリの組み合わせを見つけることを示しています。

たとえば、次の構造について考えてみます。

root
  _public
     _admin
         myTest.html
     _css
         myTestStyles.css

myTest.htmlのリンクステートメントは次のようになります

<link href="../_css/myTestStyles.css" rel="stylesheet" type="text/css"/>

ノート

../../は、2レベル下を見始めるなどと言います。

于 2012-11-03T15:36:08.083 に答える