Foundation 6 を NPM でインストールし、foundation new
コマンドで新しいプロジェクトを開始し、新しい Web サイトの構築を開始しました。しかし、コマンドを使用して本番環境でビルドするとfoundation build --production
、.top-bar
大きなモニターでもクラスが常に折りたたまれます ( に注意してくださいdata-hide-for="medium"
)。コマンドを使用して開発モードで実行すると、foundation watch
問題なく動作します(中型および小型デバイスでのみ折りたたみます)。
gulp のいくつかのタスクに問題があるのではないかと考え、1 つずつテストすることにしました。uncss
開発モードでのみ実行するように変更した場合( isProduction
varをfalse
ブール値に変更)、機能しました!そこで、彼らのドキュメントを読むことにしたところ、「無視」設定が見つかりました。その中にいくつかのセレクターを設定できます。それが私の質問です。折りたたみをうまく機能させるには、どのセレクターを無視する必要がありますか? UnCSS は、*.html ファイルが使用していないと考えているセレクターを削除していると思いますが、それは使用されており、どのセレクターであるかを特定できませんでした。
注:タスクはuncss
本番モードでのみ実行されます。
index.html
<div class="title-bar" data-responsive-toggle="top-menu" data-hide-for="medium">
<button class="menu-icon" type="button" data-toggle></button>
<div class="title-bar-title">Menu</div>
</div>
<div class="top-bar" id="top-menu">
<div class="top-bar-left">
<ul class="dropdown menu" data-dropdown-menu>
<li class="menu-text">Site Title</li>
<li class="has-submenu">
<a href="#">One</a>
<ul class="submenu menu vertical" data-submenu>
<li><a href="#">One</a></li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
</ul>
</li>
<li><a href="#">Two</a></li>
<li><a href="#">Three</a></li>
</ul>
</div>
<div class="top-bar-right">
<ul class="menu">
<li>
<input type="text" placeholder="Login">
</li>
<li>
<input type="password" placeholder="Password">
</li>
<li>
<button type="button" class="button">Login</button>
</li>
</ul>
</div>
</div>
gulpfile.js
(Foundation for sites complete templateのデフォルトなので、CSSコンパイル部分だけ載せます)
// Compile Sass into CSS
// In production, the CSS is compressed
gulp.task('sass', function() {
var uncss = $.if(isProduction, $.uncss({
html: ['src/**/*.html'],
ignore: [
new RegExp('^meta\..*'),
new RegExp('^\.is-.*')
]
}));
var minifycss = $.if(isProduction, $.minifyCss());
return gulp.src('src/assets/scss/app.scss')
.pipe($.sourcemaps.init())
.pipe($.sass({
includePaths: PATHS.sass
})
.on('error', $.sass.logError))
.pipe($.autoprefixer({
browsers: COMPATIBILITY
}))
.pipe(uncss)
.pipe(minifycss)
.pipe($.if(!isProduction, $.sourcemaps.write()))
.pipe(gulp.dest('dist/assets/css'))
.pipe(browser.reload({stream: true}));
});
CSS全体はそのままです。何も変更していません。パスもデフォルトです(ただし、フォントフェイスや色などのいくつかのルールを追加しました)。Foundation 6のデフォルトのindex.htmlを消去して、このメニューを追加しました(それは彼らのドキュメントにあります)。
あなたを助けるために、私はMEGAにプロジェクト全体をアップロードしました.foundation watch
.top-bar
foundation build --production
index.html
dist
.top-bar