css中基线指的是哪一条线,如何设置基线网络_CSS, Vertical Rhythm 教程_W3cplus

本文主要是介绍css中基线指的是哪一条线,如何设置基线网络_CSS, Vertical Rhythm 教程_W3cplus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

41947c19f0b4d22e3402baacc522ea81.png

首先,当谈到排版,我们先要了解基线是什么?维基百科是这样定义)的:在排版和书法中,基线是以字终sit底线为基础,并且向两边延伸的直线。

好极了,但我为什么要忽视他呢?好希望你充满激情的去设计一个非常好看的网站。我的愚见是,一个惊人的网站的基础在于他的排版。为了让网站上的所有文本流动顺畅对齐,我们就要基于一个网格线来排版,这也就有了基线网格一说,也使基线网格有用武之处。基线将确保有一个适当的行高,这是非常重要的,它适用于任何列的布局当中。

让我们继续深入!正如我将要创建一个具有响应性的基线,我使用em做为单位,并且在

元素中设置默认font-size值,以确保所有浏览器呈现的文字大小是一致的。

body {

font-size: 100%;

}

采用100%值,浏览器将会渲染字体大小等于浏览器的默认值,也就是16px。接下来,我们需要创建一个排版的样式风格。根据排版元素的层次结构,我将文本字号定义为:16,18,21,24,36,48。我们来看看样式:

h1 {

font-size: 3em; /* 48 ÷ 16 = 3 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 = 2.25 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 = 1.5 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 = 1.3125 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 = 1.125 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 = 1 */

}

p {

font-size: 1em; /* 16 ÷ 16 = 1 */

}

这里就是一大堆数学运算,可能让人感觉头晕,会比较混乱。em是一个相对单位,1em是当前font-size的一倍,而3em就是当前font-size的3倍(记住,我们当前字体大小是100%或16px)。我们排版需要将单位转换成em。我这里有一个公式:"目标字号 ÷ 当前字号"。如果我们希望

的font-size设置值为32px,根据公式可以计算出:"32px ÷ 16px = 2em"。我给每个样式后面注释了计算方法,以免混淆。

em是一个相对单位,在px和em之间转换时是一门复杂的数学运算,其中具有一定的规则。如果你从未深入了解过两者之间的转换,我个强烈建议您阅读《CSS中强大的EM》一文。——@大漠

现在我们已经有了一份使用em制作的排版风格,我们还需要创建一个合适的行高line-height。正是这种行高加上元素上下外边距,并且根据不同的排版元素做相应的调整,创建了我们的基线。根据经验,可读文本的一般规则是将行高设置为字体大小的1.4~1.5倍。我这里使用的是1.5倍,我不介意给文本之间留有更多的间隙。鉴于我们的默认字体大小是16px,那么行高就是24px(16px的1.5倍)。

还记得前面算出font-size的em公式吗?我们也可以运用到我们行高的计算中来:"目标行高 ÷ 当前字号"。加上行高的排版样式是这样:

h1 {

font-size: 3em; /* 48 ÷ 16 = 3*/

line-height: 1em; /* 48 ÷ 48 = 1 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 = 2.25 */

line-height: 1.333333333333333em; /* 48 ÷ 36 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 */

line-height: 1em; /* 24 ÷ 24 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 */

line-height: 1.142857142857143em; /* 24 ÷ 21 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 */

line-height: 1.333333333333333em; /* 24 ÷ 18 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

}

p {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

}

正如大家所看到的,h1和h2的字号比较大,我们把行高也翻倍了。

剩下的事情就是给这些元素添加一些间距。我喜欢将行高的值用到margin-bottom上去。这样我们的垂直规律(ver­tical rhythm)看起来蛮不错,而且均匀。我创建的基线网格:

h1 {

font-size: 3em; /* 48 ÷ 16 */

line-height: 1em; /* 48 ÷ 48 */

margin-bottom: .5em; /* 24 ÷ 48 */

}

h2 {

font-size: 2.25em; /* 36 ÷ 16 */

line-height: 1.333333333333333em; /* 48 ÷ 36 */

margin-bottom: .6666666666666667em; /* 24 ÷ 36 */

}

h3 {

font-size: 1.5em; /* 24 ÷ 16 */

line-height: 1em; /* 24 ÷ 24 */

margin-bottom: 1em; /* 24 ÷ 24 */

}

h4 {

font-size: 1.3125em; /* 21 ÷ 16 */

line-height: 1.142857142857143em; /* 24 ÷ 21 */

margin-bottom: 1.142857142857143em; /* 24 ÷ 21 */

}

h5 {

font-size: 1.125em; /* 18 ÷ 16 */

line-height: 1.333333333333333em; /* 24 ÷ 18 */

margin-bottom: 1.333333333333333em; /* 24 ÷ 18 */

}

h6 {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

margin-bottom: 1.5em; /* 24 ÷ 16 */

}

p {

font-size: 1em; /* 16 ÷ 16 */

line-height: 1.5em; /* 24 ÷ 16 */

margin-bottom: 1.5em; /* 24 ÷ 16 */

}

就这样,我们有一个漂亮的文字排版的基础。但使用em对于大家来说是一个挑战,但对于基线网格来说是一个很好的处理方式,可以让你的排版更方便而且还可以做到大小响应(用户修改字体大小)。您的访问会非常欣赏你的网站,因为你为此付投入了时间与精力。

译者手语:整个翻译依照原文线路进行,并在翻译过程略加了个人对技术的理解。如果翻译有不对之处,还烦请同行朋友指点。谢谢!

如需转载烦请注明出处:

这篇关于css中基线指的是哪一条线,如何设置基线网络_CSS, Vertical Rhythm 教程_W3cplus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186553

相关文章

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤