ときどき、メディア クエリ内の 1 つの変数を変更して、
HTML:
<div id="wrap">
<div class="child1"></div>
<div class="child2"></div>
</div>
LESS (機能しません):
@base: 1000px;
@media all and (max-width: 768px) {
@base: 600px;
}
.child1 {
// 500px normally, 300px on small screens
height: 0.5 * @base;
}
.child2 {
// 250px normally, 150px on small screens
height: 0.25 * @base;
}
もちろん、コンパイル時に@base
が設定され、すべてのクラスに適用されるため、これは機能しません。ただし、この汚い回避策に出くわしました:
以下:
#wrap
{
font-size: 1000px;
@media all and (max-width: 768px) {
font-size: 600px;
}
.child1 {
// 500px normally, 300px on small screens
height: 0.5em;
}
.child2 {
// 250px normally, 150px on small screens
height: 0.25em;
}
}
要素に実際にテキストがないと仮定すると (または、テキストがリーフ ノードでのみ発生し、フォント サイズを明示的に設定する)、このアプローチを使用することの深刻な欠点はありますか?