首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖变量以在SCSS中打印

覆盖变量以在SCSS中打印
EN

Stack Overflow用户
提问于 2013-05-02 12:03:24
回答 1查看 1K关注 0票数 3

是否可以覆盖SCSS中的变量以进行打印?

我有一些变量:

代码语言:javascript
复制
$baseFontSize    : 12px;
$defaultSansSerif: "Helvetica Neue", Helvetica, Arial, sans-serif;
$defaultSerif    : Times, "Times New Roman", serif;

例如,我想覆盖它以用于打印

代码语言:javascript
复制
$baseFontSize    : 10pt;
$defaultSansSerif: "Courier New", Courier, monospace;
$defaultSerif    : Georgia, Serif;

在字体系列的情况下,我们可以创建不同的变量$defaultPrintSansSerif,并再次定义用于打印的css。因为在我所有CSS中可能有2-3个地方使用了font-family。但在字体大小的情况下。在打印css中不可能再次声明每个类。

所以我正在寻找任何方法来覆盖我的$baseFontSize,从12px到10pt,或者打印的任何大小。所以我打印的CSS中的字体大小会自动改变。即。

代码语言:javascript
复制
Calculation             SCREEN CSS                PRINT CSS
$baseFontSize           12px                      10pt
$baseFontSize  * 2      24px                      20pt
$baseFontSize  * 3/2    18px                      15pt
EN

回答 1

Stack Overflow用户

发布于 2013-05-02 14:07:38

我看不出有什么问题。

假设你有一个base/_variables.scss

代码语言:javascript
复制
$baseFontSize    : 12px;
$defaultSansSerif: "Helvetica Neue", Helvetica, Arial, sans-serif;
$defaultSerif    : Times, "Times New Roman", serif;
$headerBackground: red;
$someOtherStuff  : foo;

您可以从以下内容开始screen.scss

代码语言:javascript
复制
@import "base/_variables.scss";

和你的print.scss

代码语言:javascript
复制
@import "base/_variables.scss";

$baseFontSize    : 10pt;
$defaultSansSerif: "Courier New", Courier, monospace;
$defaultSerif    : Georgia, Serif;

如果您的问题是在打印样式表中包含了屏幕样式,那么您可以做的并不多。您要么经历了重新声明所有需要修改的麻烦,要么分离了屏幕样式和打印样式(这也需要重新编写样式)。

但是对于字体大小,实际上有一个变通的方法。

最好是为html元素绝对定义字体大小,而为其余元素相对定义字体大小,例如:

代码语言:javascript
复制
/* Enabling inheritance of everything */
@import "compass/reset";

html {
  font-size: 16px; }

html * {
  font-size: 1em; }

h1 {
  font-size: 2.75em; }

如果你遵循这个模式,你只需要改变html元素的字体大小就可以调整网站上所有字体的大小了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16330145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档