前提・実現したいこと
scssファイルの一部(例えば長いコードのアニメーションの部分とか)をパーシャルで分割したいところです。
発生している問題・エラーメッセージ
ファイル名の前にアンダースコアを入れても、コンパイルされてしまいます。例えば「_animation.scss」とか「_menu.scss」などです。
該当のソースコード
試したこと
グーグルサーチやYoutube動画などいろいろ調べましたが情報がありませんでした。
補足情報(FW/ツールのバージョンなど)
OSは、マックOS BIG SUR です。
VS Code バージョンは1.53.2 で編集しております。
scssは学び始めたばかりですが、css ファイルが長くなりましたので、分割したいと思い、scssファイルをパーシャルでアンダースコアを前につけてファイルを保存しました。
しかしなぜかコンパイルされてしまい、.mapや.cssが必ずできてしまいます。
ネットでいろいろ調べているのですが、情報がなくて解決できません。初心者レベルの質問で大変恐縮ですが、どなたかご教授頂ければ幸いです。
どうぞよろしくお願いいたします。
--------------- 以下、追記になります。わかりづらくて申し訳ございませんでした。
サイト作成のため、html,css編集をしております。
以下のように、
cssフォルダ内にstyle.scssファイルがあり、それ一つで編集しておりましたので、.minや.map、.cssファイルがコンパイルされておりました。これが最初の状態です。
css /フォルダ
style.css
style.css.map
style.min
style.scss
scssファイルの行数が500行を超えて編集しずらくなりましたので、中でもタグの多いメニュー部分を分割しようと思い「_menu.scss」というファイルを新たに作り、style.scssファイル内からメニュー部分のタグを一括して_menu.scssに移して保存しました。
そうしましたら以下のようにコンパイルされてしまいました。
css /フォルダ
_menu.css
_menu.css.map
_menu.min
_menu.scss
style.css
style.css.map
style.min
style.scss
ネットでの参考サイトを見ますと、「_」アンダースコアをscssファイルの先頭につけるとコンパイルされないとありましたので、そのようにしましたが、なぜかコンパイルされてしまいます。
ちなみにscssファイルの先頭には「@charaset "utf-8";」は記載してありますし、移したタグもそのままの状態でコピーアンドペーストしました。
このような状態が質問の内容なのですが、ご理解いただけますでしょうか。もしまだ何か情報が足りないようでしたら、また追記させて頂きます。
どうぞよろしくお願いいたします。
--------------- 以下、2度目の追記になります。たびたび申し訳ございません。
style.scssファイルに_menu.scssを@importで読み込むようにしたいのです。つまり、
「@import "menu";」をstyle.scssの上部に記載して読み込み、style.cssに全てのcssが統合されればと考えております。
実際、その@importはうまくいっており、きちんと読み込みはできています。
ただ、_menu.scssがコンパイルされてしまって、 _menu.css、_menu.css.map、_menu.minが生成されてしまうのが問題なのです。
つまり、上記のファイル構造の繰り返しになりますが、
css /フォルダ
_menu.css
_menu.css.map
_menu.min
_menu.scss
style.css
style.css.map
style.min
style.scss
以上のようにならずに、以下のようになってくれたらと思っております。
css /フォルダ
_menu.scss
style.css
style.css.map
style.min
style.scss
このようにしたいと思っております。説明がうまくできなくて大変申し訳ございませんが、このご説明でよろしいでしょうか。もしまだご不明でしたらお知らせいただけましたら幸いです。
どうぞよろしくお願いいたします。
--------------- 以下、3度目の追記になります。たびたび申し訳ございません。
何度も申し訳ございません。アドバイス頂きましたとおり、@useを使いましたら、コードが読み込まれず、vs codeに「@use unknownAtRules」といったエラーが表示されます。
仕方なく再度@importにすると、ソースコードは無事コンパイルされてstyle.cssに記述されるのですが、前述の他の「_header.min.css」「_header.css」ファイルが生成されてしまいます。(前回はmenu.cssとしていましたが、わかりやすくするために「_header.css」にしました。)
以下がファイルになります。
---------以下がindex.htmlです
--上部略
<title>Document</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<div class="header">
<h1>headerのタイトルです</h1>
</div>
<div class="main">
<h2>mainの見出しです</h2>
<p class="test_p">
パーシャルのテストです。パーシャルのテストです。パーシャルのテストです。パーシャルのテストです。パーシャルのテストです。パーシャルのテストです。パーシャルのテストです。
</p>
</div>
</body>
---------以下がcss/style.scssです
@charset "utf-8";
@import "header";
.main{
width: 500px;
height: 500px;
background-color: #ccc;
h2{
font-size: 16px;
font-weight: bold;
}
p{
font-size: 16px;
}
}
---------以下がcss/_header.scssです
@charset "utf-8";
.header{
width: 500px;
height: 100px;
background-color: yellow;
h1{
font-size: 30px;
font-weight: bold;
}
}
---------以下がcss/style.cssです
.header {
width: 500px;
height: 100px;
background-color: yellow;
}
.header h1 {
font-size: 30px;
font-weight: bold;
}
.main {
width: 500px;
height: 500px;
background-color: #ccc;
}
.main h2 {
font-size: 16px;
font-weight: bold;
}
.main p {
font-size: 16px;
}
/*# sourceMappingURL=style.css.map */
ブラウザ表示されたスクリーンショットはこちらです。
ファイル構造のスクリーンショットはこちらです
アドバイスいただきましたがvs codeについてもまだ始めたばかりで設定とかを見ましたがちょっと難解です。
初心者すぎて本当にご迷惑をおかけして申し訳ございませんがよろしくお願いいたします。
あなたの回答
tips
プレビュー