以下是有史以来最优秀的100部小说。

以下是有史以来最优秀的100部小说。
以下是改写后的流畅自然中文文本: 段落文本使用字体 GuardianTextEgyptian、Guardian Text Egyptian Web、Georgia 或衬线字体。字号设为 0.9375rem,行高 1.4,字重正常,样式正常。文本装饰厚度为 2px。 标题 2 使用字体 GH Guardian Headline、Guardian Egyptian Web、Georgia 或衬线字体。字号设为 1.5rem,行高 1.15,字重加粗,样式正常。文本装饰厚度为 3px。 类名 "src-headline-medium-17" 使用字体 GH Guardian Headline、Guardian Egyptian Web、Georgia 或衬线字体。字号设为 1.0625rem,行高 1.15,字重中等(500),样式正常。文本装饰厚度为 2px。 类名 "src-text-sans-14" 使用字体 GuardianTextSans、Guardian Text Sans Web、Helvetica Neue、Helvetica、Arial、Lucida Grande 或无衬线字体。字号设为 0.875rem,行高 1.3,字重正常,样式正常。文本装饰厚度为 2px。 类名 "src-text-sans-bold-17" 使用字体 GuardianTextSans、Guardian Text Sans Web、Helvetica Neue、Helvetica、Arial、Lucida Grande 或无衬线字体。字号设为 1.0625rem,行高 1.3,字重加粗(700),样式正常。文本装饰厚度为 2px。 自定义属性 "--src-brand-400" 设置为 #052962。 当脚本启用时,类名为 "content--interactive" 的文章及其子 div,以及类名为 "article" 的元素,初始时隐藏,透明度为 0,溢出隐藏。页面加载完成后(由类名 "interactive-loaded" 指示),这些元素通过平滑的 1 秒过渡完全可见,溢出设置为 "unset"。 字体 "Guardian Headline Full" 以多种样式加载。对于字重轻(300)的正常样式,字体文件来自 Guardian 的资源。同样适用于轻斜体、常规(400)正常、常规斜体、中等(500)正常和中等斜体样式。每种样式使用相应的 woff2、woff 和 truetype 格式。 ```css :root:root [data-gu-name="media"], :root:root [data-gu-name="title"], :root:root [data-gu-name="headline"], :root:root [data-gu-name="standfirst"], :root:root [data-gu-name="lines"], :root:root [data-gu-name="meta"], :root:root [data-link-name="article section"] { display: none; } :root:root article { --standfirst-text: #adc8f4; --byline: #adc8f4; --article-background: #224a8a; --article-text: #1a1a1a; --article-link-text: #ffffff; --textblock-text: #adc8f4; --article-border: #0077b6; --straight-lines: #224a8a; --share-button: #adc8f4; --share-button-border: #a; } ``` 以下是改写后的流畅自然中文文本: ```css dc8f4}:root:root article figure.element-atom { margin: 0; } :root:root .back-button { border: 1px solid lightgray; font-family: Guardian Text Sans Web, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 17px; padding: 6px 18px; border-radius: 40px; width: fit-content; display: flex; align-items: center; gap: 6px; } html.no-scroll { overflow: hidden; } h2 { color: var(--src-brand-400); } a { border-bottom: none !important; text-decoration: none; } img { max-width: 100%; max-height: 100%; } article { position: relative; } /* * 提供来自 sass-mq 的 `mq` 混合宏,并预设 Guardian 断点。 * 用法如下: * * `@include mq(leftCol) ...` * * 可用断点: * - desktop: 61.25em * - leftCol: 71.25em * - mobile: 20em * - mobileLandscape: 30em * - mobileMedium: 23.4375em * - phablet: 41.25em * - tablet: 46.25em * - wide: 81.25em */ /* * 此文件由 src/source/generate/breakpoints.js 自动生成 */ /* * 此文件由 src/source/generate/typography.js 自动生成 */ / * 数据字体堆栈 * * @group typography */ / * 衬线字体堆栈 * * @group typography */ / * 标题字体堆栈 * * @group typography */ / * 无衬线文本字体堆栈 * * @group typography */ / * 无衬线标题字体堆栈 * * @group typography */ / * 默认字体缩放设置 * 参见 font-scale.html 和 font-scale.png 以获取视觉示例 * * @group typography */ / * 从字体缩放中获取字体的所有级别 * * @param {String} $name - 字体缩放矩阵的名称(例如 headline) * @param {Map} $font-scale ($font-scale) * * @example * font-size: get-scale(header); * * @requires {variable} $font-scale * * @return {Map} * * @group typography */ / * 获取字体缩放特定级别的信息 * * @param {String} $name - 矩阵中字体缩放的名称(例如 headline) * @param {Number} $level - 矩阵中的级别 * @param {Map} $font-scale ($font-scale) * * @example * font-size: get-scale-level(header, 1); * * @requires {variable} $font-scale * @requires {function} get-scale * * @return {Map} * * @group typography */ / * 获取字体缩放矩阵中某个级别的字号 * * @param {String} $name - 矩阵中字体缩放的名称(例如 headline) * @param {Number} $level - 矩阵中的级别 * @param {Map} $font-scale - 配置 * * @example * font-size: get-font-size(header, 3); * * @requires {variable} $font-scale * @requires {function} convert-to-px * @requires {function} get-scale-level * * @return {Number} * * @group typography */ / * 获取字体缩放矩阵中某个级别的行高 * * @param {String} $name - 矩阵中字体缩放的名称(例如 headline) * @param {Number} $level - 矩阵中的级别 * @param {Map} $font-scale - 配置 * * @example * font-size: get-line-height(header, 3); * * @requires {variable} $font-scale * @requires {function} convert-to-px * @requires {function} get-scale-level * * @return {Number} * * @group typography */ / * 将任意值转换为像素 * * @param {Number} $value * * @example * font-size: convert-to-px(14); // 14px * * @return {Number} * * @group typography */ / * 默认排版设置,应尽早包含在 HTML 中 * 1. 使字体渲染更清晰 2. 设置相对行间距为 1.5(16px 1.5 = 24px) * * @param {String} $font-family ($f-serif-text) - 默认全局字体 * * @requires {variable} $f-serif-text * * @group typography */ / * 字号和行高简写 * * @param {Number} $size * @param {Number} $line-height ($size) * * @example * @include font-size(18, 24); * * @requires {function} convert-to-px * * @group typography */ / * 字体样式简写 * 注意:建议优先使用字体缩放混合宏以保持与字体缩放的一致性 * * @param {String} $family * @param {String} $weight * @param {Number} $size * @param {Number} $line-height ($size) * * @example * @include font(arial, bold, 18, 24); * * @requires {mixin} font-size * * @group typography */ ```排版 标题系列和字重属性 需要变量 `$f-serif-headline`。 分组:排版 标题排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列、字重): `@include fs-header(3);` - 仅包含字号和行高: `@include fs-header(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-header` 分组:排版 --- 头条系列和字重属性 需要变量 `$f-serif-headline`。 分组:排版 头条排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列、字重): `@include fs-headline(3);` - 仅包含字号和行高: `@include fs-headline(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-headline` 分组:排版 --- 正文标题系列和字重属性 需要变量 `$f-serif-text`。 分组:排版 正文标题排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列、字重): `@include fs-bodyHeading(3);` - 仅包含字号和行高: `@include fs-bodyHeading(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-bodyHeading` 分组:排版 --- 正文系列属性 需要变量 `$f-serif-text`。 分组:排版 正文排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列): `@include fs-bodyCopy(3);` - 仅包含字号和行高: `@include fs-bodyCopy(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-bodyCopy` 分组:排版 --- 数据系列属性 需要变量 `$f-data`。 分组:排版 数据排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列): `@include fs-data(3);` - 仅包含字号和行高: `@include fs-data(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-data` 分组:排版 --- 文本无衬线系列属性 需要变量 `$f-sans-serif-text`。 分组:排版 文本无衬线排版设置 参数: - `$level`(数字) - `$size-only`(布尔值) 示例: - 包含所有属性(字号、行高、系列): `@include fs-textSans(3);` - 仅包含字号和行高: `@include fs-textSans(3, $size-only: true);` 需要: - 函数 `get-font-size` - 函数 `get-line-height` - 混合宏 `font-size` - 混合宏 `f-textSans` 分组:排版 --- 头条无衬线系列属性 这目前不属于我们的字体缩放矩阵,因此没有对应的 `fs-` 混合宏。目前,我们仅在少数地方将其用作替代字体。 需要变量 `$f-sans-serif-headline`。 分组:排版 --- @font-face ```css ``` ```css .atom.svelte-1tpye3j { display: flex; flex-direction: column; gap: 4px; } .homepage-content.svelte-1tpye3j { display: flex; flex-direction: column; gap: 14px; transition: padding-bottom 0.3s ease; } .sticky-padding.svelte-1tpye3j { padding-bottom: 100px; transition: padding-bottom 0.3s ease; } h1.svelte-1tpye3j { position: absolute; top: 220px; left: 0; font-family: "Guardian Headline Full", "Guardian Egyptian Web", Georgia, serif; font-weight: bold; font-size: 88px; line-height: 88%; color: #0077b6; z-index: -1; font-variant-numeric: lining-nums; } @media (min-width: 61.25em) { h1.svelte-1tpye3j { top: 220px; } } p.standfirst.svelte-1tpye3j { color: #fff !important; max-width: 450px; padding-bottom: 10px; } @media (min-width: 61.25em) { p.standfirst.svelte-1tpye3j { font-size: 20px; max-width: 600px; } } .standfirst-container.svelte-1tpye3j { max-width: 600px; border-bottom: 1px solid #0077b6; } .tooltip.svelte-1tpye3j { position: relative; z-index: 2; margin-top: -40px; opacity: 0; } @media (min-width: 61.25em) { .tooltip.svelte-1tpye3j { display: none; } } .tooltip.svelte-1tpye3j p:where(.svelte-1tpye3j) { position: relative; background: #ffffff; border-radius: 8px; padding: 3px 9px 6px; display: inline-block; color: #052962; font-size: 14px; font-family: "Guardian Text Sans Web", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); top: -2px; } / 三角形尾部 / .tooltip.svelte-1tpye3j p:where(.svelte-1tpye3j):after { content: ""; position: absolute; bottom: -10px; left: 50%; transform: translateX(-50%); border-width: 10px 6px 0 6px; border-style: solid; border-color: #ffffff transparent transparent transparent; } ul.svelte-1tpye3j { margin-top: 40px; } @media (min-width: 61.25em) { ul.svelte-1tpye3j { margin-top: 80px; } } ul.standfirst-1.svelte-1tpye3j, ul.standfirst-2.svelte-1tpye3j { margin-top: 50px; } @media (min-width: 61.25em) { ul.standfirst-1.svelte-1tpye3j, ul.standfirst-2.svelte-1tpye3j { margin-top: 100px; } } ul.standfirst-3.svelte-1tpye3j { margin-top: 40px; } @media (min-width: 61.25em) { ul.standfirst-3.svelte-1tpye3j { margin-top: 100px; } } ```以下是改写后的流畅自然中文文本: 上边距设置为 80 像素。对于较小屏幕,引导列表的上边距为 40 像素,但在较宽屏幕(超过 61.25em)上,增加到 80 像素。对于 standfirst-5 列表,上边距为 50 像素,在较宽屏幕上变为 100 像素。 "明天再来"文本使用衬线字体,大小为 20 像素,白色,斜体。它没有上边距,下边距为 20 像素。右列默认隐藏。 列表项使用无衬线字体,颜色为深灰色。列表以垂直列排列,项目之间间距为 2 像素,在较宽屏幕上增加到 8 像素。 对于书籍列表项,宽度和高度根据内容自动调整。字体大小为 24 像素,带有一些内边距,在较宽屏幕上增加到 36 像素。这些项目内的文本使用 box-decoration-break 样式以实现更好的换行效果。 排名指示器相对定位,在其右侧出现一个 10 像素宽的条,使用相同的背景颜色。 网格布局使用两列,间距为 8 像素。网格项有内边距和至少 160 像素的最小高度。在宽度超过 540 像素的屏幕上,网格切换为三列;在宽度超过 700 像素的屏幕上,变为四列。 在非常宽的屏幕上(超过 61.25em),布局变为两列网格,带有一个 300 像素的侧边栏。主标题变得非常大(176 像素)。列表字体大小增加到 36 像素。在桌面上隐藏的元素被隐藏,右列变为可见,居中并顶部对齐。 在更宽的屏幕上(超过 71.25em),标题和主要内容向右移动 160 像素;在超过 81.25em 的屏幕上,向右移动 240 像素。主内容的第一个子元素获得左边框和一些内边距。 当鼠标悬停在列表项上