【发布时间】:2014-09-19 13:23:15
【问题描述】:
我正在使用基于 Bootstrap 3 的 em 中的媒体查询,使用 SASS 开发一个响应式网站。
“最大”断点是根据 16 像素的浏览器基线设置的。我了解媒体查询基于浏览器的基本字体大小,它独立于文档上设置的任何基本字体大小。我找到了解释这一点的文章,推荐 em 作为“min”断点,但找不到任何关于“max”的提及。
是否存在设置最大断点以考虑浏览器基线不是 16 像素的情况的最佳做法?
我目前正在使用以下内容:
$screen-xs: 30em !default;
$screen-xs-min: $screen-xs !default;
$screen-phone: $screen-xs-min !default;
$screen-sm: 48em !default;
$screen-sm-min: $screen-sm !default;
$screen-tablet: $screen-sm-min !default;
$screen-md: 62em !default;
$screen-md-min: $screen-md !default;
$screen-desktop: $screen-md-min !default;
$screen-lg: 75em !default;
$screen-lg-min: $screen-lg !default;
$screen-lg-desktop: $screen-lg-min !default;
$screen-xs-max: ($screen-sm-min - (1 / 16)) !default;
$screen-sm-max: ($screen-md-min - (1 / 16)) !default;
$screen-md-max: ($screen-lg-min - (1 / 16)) !default;
假设浏览器的基本字体大小为 16 像素,这很好,但如果浏览器的基本字体大小不是 16 像素,则 $screen-**-max 将不再有效。
【问题讨论】:
-
你永远不能假设基本字体大小是 16px。如果您一直在进行 1em = 16px 的心算,那么使用 em 有什么意义。那时您也可能正在使用 px 。你应该根据 content 来选择你的断点,而不是一些任意的常见屏幕尺寸。
-
@cimmanon 我理解,但这并不能真正回答问题——无论我在哪里选择断点,针对特定断点,都会有一个最小值和一个最大值。最大值点应该是下一个断点的最小值减去约 1 个像素。所以我要问的是如何计算最大断点而不必依赖 16px 基本字体大小的假设?
标签: css responsive-design sass breakpoints em