在这里,不是在那里或使造型表现
#css #scss #styling #fonts

我想做的就是使我的大胆而倾斜的文本实例更容易看到,就像我在别人的网站上所做的那样。但是,伙计,这最终涉及一些令人费解的样式。您可能需要做类似的事情,以下是细节。

注意:在我继续之前,我必须承认Stefan Judis的文章,How to select elements that are not children of other elements in CSS,否则,我已经迷失了我m即将描述。

使用sans-serif字体,例如my site在此帖子的首次出版物中所做的,可以使某些样式组合在某些观看条件下很难看到。虽然这对于倾斜的文本是正确的,但出乎意料的是,它也可能会使用粗体的文本进行,尤其是如果一个人在黑暗模式下观看。

(显然,在倾斜文本有关的情况下,我们与许多sans-serif web字体所说的是倾斜,而不是更常见的 italicization 。但是,由于我怀疑读者会更熟悉调用倾斜的文字“比倾斜,所以我将使用以前的术语。 >真正斜体文本,就像斜体字体一样,是一个完全独立的考虑因素。)

我注意到某些网站,例如Chris Coyier’s,使用一些微妙的样式使大胆和斜体在周围的纯文本中略有脱颖而出,因此我决定在此网站上尝试一下。起初我以为这很简单:将每个变体设置为在光模式下有点暗,在黑暗模式下稍微亮一点。

。但是,不是。

首先,我必须考虑到可能的配对 。 。

然后,我记得我还需要提供所有这些变体以在块中工作,这开始与周围的纯文本有点不同:

这是一个带有粗体斜体 <> BOLD ITALIC

text。

的块

,最后,有一个问题要确保指定的颜色差异没有用我不想更改的颜色,例如within links like this one to my home pagered i类偶尔用于重要之类的事物(尽管在my original post的此dev.to版本上都不会红色):

重要:这是一件很大的事情

但是,如果您怀疑这需要一大堆CSS或Sass/SCSS山,那么您只是一半的校正。粗俗?哦耶。但是一座山?不。

在我们进入所涉及的实际SCSS之前,请注意,它所指的颜色变量来自于此(是的,我无耻地从Tailwind CSS Abiaoqian中cribbib crib crib crib trib crib there coll>):

// These are relevant excerpts from
// a partial called `_variables.scss`.

$twcss: {
    gray-50: #f9fafb,
    gray-100: #f3f4f6,
    gray-200: #e5e7eb,
    gray-300: #d1d5db,
    gray-400: #9ca3af,
    gray-500: #6b7280,
    gray-600: #4b5563,
    gray-700: #374151,
    gray-800: #1f2937,
    gray-900: #111827
};

// Now we assign our default colors for,
// respectively, light and dark modes.

$default-light: map-get($twcss, gray-700);
$default-dark: map-get($twcss, gray-300);

设置了这些变量,我们就可以了。 (您可能需要将代码复制到文本编辑器中,以进行更舒适,免费的观看。)

// These are relevant excerpts from
// my `articles.scss` file, which
// comes into play only when a
// page has the `article` element.

@charset 'utf-8';
@use 'partials/variables' as var;

article {

    // First, we assign colors to
    // boldfaced and italicized text
    // that is **not** in the class
    // `red`, **not** inside a link,
    // and **not** within a blockquote
    // (we'll get to blockquotes below).
    //
    // Note that we cover not only
    // <strong> but also <b>, and
    // not only <em> but also <i>;
    // in addition, we take care of
    // groupings --- <strong><em>,
    // <em><strong>, <b><i>,
    // and <i><b>.

    strong:not(.red *):not(a *):not(blockquote *),
    b:not(.red *):not(a *):not(blockquote *),
    em:not(.red *):not(a *):not(blockquote *),
    i:not(.red *):not(a *):not(blockquote *),
    em strong:not(.red *):not(a *):not(blockquote *),
    strong em:not(.red *):not(a *):not(blockquote *),
    i b:not(.red *):not(a *):not(blockquote *),
    b i:not(.red *):not(a *):not(blockquote *) {
        color: map-get(var.$twcss, gray-800); // (vs. gray-700)
        @media (prefers-color-scheme: dark) {
            color: map-get(var.$twcss, gray-200); // (vs. gray-300)
        }
    }

    // Now we deal with the blockquotes,
    // including links within them. Here,
    // we assign colors to boldfaced and
    // italicized text that **is** within
    // a blockquote but is **not** inside
    // a link. (We cover the same tags
    // and groupings as before.)
    //
    // In essence, we're giving this
    // normally grayed-out text the
    // same color treatments as for
    // regular text, thus contrasting
    // with the blockquote styling.

    strong:is(blockquote *):not(a *),
    b:is(blockquote *):not(a *),
    em:is(blockquote *):not(a *),
    i:is(blockquote *):not(a *),
    em strong:is(blockquote *):not(a *),
    strong em:is(blockquote *):not(a *),
    i b:is(blockquote *):not(a *),
    b i:is(blockquote *):not(a *) {
        color: var.$default-light; // gray-700 (vs. gray-600)
        @media (prefers-color-scheme: dark) {
            color: var.$default-dark; // gray-300 (vs. gray-400)
        }
    }
}

我想定期用这样的意大利面条愚弄吗?哦,我,不。但是,当您需要时,您需要它,幸运的是:(a。)any valid CSS works in Sass; (b。)现代浏览器CSS支持has advanced sufficiently多年来处理这样的情况。