当前位置: 首页 > news >正文

前端css学习笔记4:常用样式设置

本文为个人学习总结,如有谬误欢迎指正。前端知识众多,后续将继续记录其他知识点!

目录

前言

一、颜色

表示方法:

作用:设置背景色,文本颜色,边框颜色

二、文本属性

字体

大小—font-size

常用长度单位

px(像素)—绝对单位

em(相对于当前元素或其父元素的font-size的倍数)

​编辑rem(相对于根元素html标签的font-size的倍数)

​编辑%(相对其父元素的百分比)

字体族(种类)—font-family

字体风格—font-style

字体粗细—font-weight

复合写法—font

间距

letter-spacing 属性用于指定文本中字符之间(包括字母和中文)的间距。

word-spacing 属性用于指定文本中单词之间(不包括中文)的间距。(通过空格识别单词)

text-decoration 属性用于设置或删除文本装饰。

缩进—text-indent

(水平)对齐—text-align

(垂直)对齐—vertical-align

​编辑实际应用示例

图文混排居中

按钮内图标居中

行高—line-height


前言

在学习 CSS 的过程中,文本样式的设置是基础且高频的应用场景 —— 从文字的颜色、大小,到字体的选择、间距的调整,再到文本的对齐方式,每一个细节都影响着页面的可读性与美观度。本文聚焦 CSS 文本属性及颜色表示方法,希望这份笔记能为同样正在学习CSS的同学提供参考,也欢迎大家结合原课程视频深入学习,共同进步。

网课链接: https://www.bilibili.com/video/BV1p84y1P7Z5/?share_source=copy_web&vd_source=faad59aa4025692c65fca19bc4320e39


一、颜色

表示方法:

  • 颜色名:直接使用颜色对应的英文单词,编写比较简单,例如:.红色:red 绿色:green 蓝色:blue。。
  • rgb或者rgba:用红、黄、蓝这三种光的三原色进行组合。
  1. r表示红色。
  2. g表示绿色
  3. b表示蓝色
  4. a表示透明度

作用:设置背景色,文本颜色,边框颜色

二、文本属性

字体

大小—font-size

div{font-size:40px;
} 
  • Chrome浏览器支持的最小文字为12px默认的文字大小为16px,并且0px会自动消失
  • 不同浏览器默认的字体大小可能不一致,所以最好给一个明确的值,不要用默认大小。
  • 通常以给body设置font-size属性,这样body中的其他元素就都可以继承了

用 em 设置字体大小——使用 em 尺寸单位

  • 为了允许用户调整文本大小(在浏览器菜单中),许多开发人员使用 em 而不是像素。
  • 1em 等于当前字体大小。浏览器中的默认文本大小为 16px。因此,默认大小 1em 为 16px。
  • pixels/16=em

还可以使用百分比和vm

body {font-size: 100%;
}

可以使用 vw 单位设置文本大小,它的意思是“视口宽度”("viewport width")。

这样,文本大小将遵循浏览器窗口的大小,请调整浏览器窗口的大小,以查看字体大小如何缩放。

常用长度单位
px(像素)—绝对单位
em(相对于当前元素或其父元素的font-size的倍数)
  • 1em 等于当前字体大小。浏览器中的默认文本大小为 16px。因此,默认大小 1em 为 16px。
  • pixels/16=em
  • 如果不写当前元素的font-size,会先找其父元素的font-size,然后找祖先元素(包括body和html标签),都没有,使用浏览器默认值16px
  • 如果当前元素的font-size单位也是em,那找其父元素,找到单位是px的计算

rem(相对于根元素html标签的font-size的倍数)
%(相对其父元素的百分比)

字体族(种类)—font-family

  • 规定文本的字体。
  • font-family 属性应包含多个字体名称(从左到右依次寻找)作为“后备”系统,以确保浏览器/操作系统之间的最大兼容性。以需要的字体开始,并以通用系列结束(如果没有其他可用字体,则让浏览器选择通用系列中的相似字体)。字体名称应以逗号分隔。
  • 如果字体名称不止一个单词或者有空格,则必须用引号引起来,例如:"Times New Roman"。

字体风格—font-style

font-style 属性主要用于指定斜体文本。(默认值是normal)

此属性可设置三个值:

  • normal - 文字正常显示
  • italic - 文本以斜体显示
  • oblique - 文本为“倾斜”(倾斜与斜体非常相似,但支持较少)

em标签也可显示倾斜字体,但是它表示语义上强调

字体粗细—font-weight

font-weight 属性指定字体的粗细:

此属性值有:

  • lighter:细
  • normal:正常
  • bold:粗
  • bolder:很粗(多数字体不支持)

数值:

  • 100~1000且无单位,数值越大,字体越粗(或一样粗,具体得看字体设计时的精确程度)。
  • 100~300等同于lighter,400~500等同于normal,600及以上等同于bold。

复合写法—font

有顺序-字体族最后,字体大小倒数第二

  • 把上述字体样式合并成一个属性
  • 规则:
    • font-size 和 font-family 的值是必需的。如果缺少其他值之一,则会使用其默认值。
    • 字体族必须是最后一位、字体大小必须是倒数第二位。
  • 各个属性间用空格隔开。

间距

单位是px;正值(增加),负值(减少)

letter-spacing 属性用于指定文本中字符之间(包括字母和中文)的间距。

  • 正值—增加;负值—减少字符之间的间距
<!DOCTYPE html> 
<html> 
<head> 
<style> 
h1 {letter-spacing: 3px; 
}h2 {letter-spacing: -3px; 
}
</style> 
</head> 
<body> <h1>This is heading 1</h1> 
<h2>This is heading 2</h2> 
<h2>计算机网络</h2></body> 
</html> 

word-spacing 属性用于指定文本中单词之间(不包括中文)的间距。(通过空格识别单词)

  • 正值—增加;负值—减少单词之间的间距

text-decoration 属性用于设置或删除文本装饰

修饰(上/下划线;删除线)—text-decoration

此属性可选值:

  • none:无装饰线(常用);通常用于从链接上删除下划线:
  • underline:下划线(常用)
  • overline:上划线
  • line-through:删除线

可搭配如下值使用(直接在text-decoration值后面加):

1.dotted:虚线

2.wavy:波浪线

3.也可以指定颜色

颜色,dotted/wavy,underline/overline/line-through这三者顺序无所谓(都是text-decoration的值)

缩进—text-indent

text-indent 属性用于指定文本第一行的缩进:

缩进距离还与字体大小有关,单位目前是px(还可以写em等)

(水平)对齐—text-align

text-align 属性用于设置文本的水平对齐方式。

此属性可选值:

  • left:左对齐(默认)
  • right:右对齐
  • center:居中对齐。
  • justify:将拉伸每一行,以使每一行具有相等的宽度,并且左右边距是直的(就像在杂志和报纸中)

(垂直)对齐—vertical-align

作用:用于指定同一行元素之间(行内元素)<可以控制文字或者图片>或者表格单元格内文字的垂直对齐方式

  • 行内元素(如 <span><img><input>)在行框(line box)内的垂直对齐。
  • 表格单元格<td><th>)内容的对齐。

此属性可选值:

  • baseline(默认值):使元素的基线父元素的基线对齐
  • bottom:使元素的底部与其所在行的底部对齐。(同一行其他文字不一定对齐)
    • baseline 看字母底线,bottom 贴行框底边!
  • top:使元素的顶部所在行的顶部对齐。(同一行其他文字不一定对齐)
  • middle:将元素的中部与父元素的 基线(baseline) + 父元素 x-height 的一半 对齐。(行内元素近似居中、表格单元格绝对居中)
  1. x-height:指字母 x 的高度(小写字母的主体部分)。
  2. 和父元素的x字母中心点对齐
  • 即使父元素没有字母 x,浏览器会模拟一个虚拟的 x 的基线(baseline)和 x-height 作为对齐依据:
  1. 基线(baseline):默认是父元素字体设计的基线位置(即使没有字符)。
  2. x-height:使用父元素字体的 ex 单位(1ex ≈ 小写字母 x 的高度)。
  • 若父元素是 inline-block 图片或图标:
    • 浏览器会将基线与图片底部对齐,middle 以图片高度的一半为参考。

注意:

  • vertical-line不能控制块元素(p,div),也不能控制父元素(标签中只有一个元素)
.test{width:400px;height:4400px;background-color:green;vertical-align:midlle;   
}
<!-- 123是div的直接元素,vertical-line的位置依赖于父元素 --> 
<div class="test">123</div>
  • 多行文字居中:height=line-height
  • 对于middle属性:
  1. 行内元素(文本、图片):本或图片的中部与父元素的 baseline + 0.5ex 对齐。如果父元素设置了较大的 line-height,可能看起来略微偏下。
  2. 表格单元格:单元格内容绝对垂直居中(与 line-height 无关)

实际应用示例

图文混排居中
<p><img src="icon.png" style="vertical-align: middle;"> 文字与图标居中
</p>

效果:图标中部与文字的中部对齐。

图片比文字小—调整时图片位置改变(与文字位置对齐,涉及到字体大小和行高)

图片比文字大—调整时文字位置改变(与图片位置对齐)

按钮内图标居中
<button><svg style="vertical-align: middle;"></svg><span style="vertical-align: middle;">按钮</span>
</button>

行高—line-height

line-height 属性用于指定行之间的间距,与多行文字的垂直间距有关(行高大,文字垂直间距大)

可选值:

  • normal:由浏览器根据文字大小决定的一个默认值。
  • 像素(px)。
  • 数字:参考自身font-size 的倍数(很常用)
  • 百分比:参考自身font-size 的百分比。
div{line-height: 60px;line-height: 1.5;line-height:150%;  
}

应用场景:

  • 多行文字:控制行与行之间的距离。
  • 对于单行文字:让height等于line-height,可以实现文字垂直居中。(不是绝对的垂直居中)

注意:

  • 由于字体设计原因,文字在一行中,并不是绝对垂直居中,若一行中都是文字,不会太影响观感。
  • 一般不会把行高(line-height)设置为字体大小(font-size)一样(数字也不写1;百分比不写100)
  • 行高过小,文字产生重叠,且最小值是θ(多行文字重叠,背景色消失【如果设置了】),不能为负数
  • line-height是可以继承的,且为了能更好的呈现文字,最好写数值。

line-height和height是什么关系?

  1. 设置了height,那么高度就是height的值。
  2. 不设置height的时候,会根据line-height计算高度。
  3. height是整体的行高(如果设置了height)

但是行高最高写数字,自动缩放比例,根据不同的字体大小自动计算(只继承缩放比例),直接写像素就直接继承像素

推荐使用无单位的 line-height(如 1.6),因为它能更好地适应不同字体大小。
❌ 避免使用 em% 单位,除非你有特殊需求。
❌ 使用 px 固定值会失去灵活性,不利于响应式设计。

body { font-size: 16px; line-height: 1.5em; } /* 计算为 24px */
h1 { font-size: 32px; } /* 但 h1 的行高仍然是 24px,可能太挤 */

如果 line-height 是无单位的 1.5h1 会自动计算为 32px × 1.5 = 48px,更合理。

http://www.xdnf.cn/news/1293175.html

相关文章:

  • epoll模型解析
  • Socket 套接字的学习--UDP
  • 【H5】禁止IOS、安卓端长按的一些默认操作
  • java中在多线程的情况下安全的修改list
  • Win11和Mac设置环境变量
  • 一键自动化:Kickstart无人值守安装指南
  • [ Mybatis 多表关联查询 ] resultMap
  • 【SpringBoot系列-02】自动配置机制源码剖析
  • RabbitMQ面试精讲 Day 21:Spring AMQP核心组件详解
  • ARM 实操 流水灯 按键控制 day53
  • 部署 Docker 应用详解(MySQL + Tomcat + Nginx + Redis)
  • SQL详细语法教程(二)--DML(数据操作语言)和DQL(数据查询语言)
  • 【IntelliJ IDEA】如何在pom.xml中去除maven中未使用的依赖
  • 存量竞争下的破局之道:品牌与IP的双引擎策略|创客匠人
  • LeetCode 分类刷题:1004. 最大连续1的个数 III
  • PHP imagick扩展安装以及应用
  • 机器学习-Cluster
  • Java项目中地图功能如何创建
  • 机器学习阶段性总结:对深度学习本质的回顾 20250813
  • csp知识基础——贪心算法
  • 类和对象(中下)
  • 图像分类-动手学计算机视觉10
  • JDK17下载与安装图文教程(保姆级教程)
  • 基于DDPG的车辆纵向速度控制优化:兼顾速度与乘坐舒适性
  • 《Python学习之基础语法1:从零开始的编程之旅》
  • k8s资源管理
  • GPT-o3回归Plus用户,GPT5拆分三种模式,对标Grok
  • 什么是HTTP的无状态(举例详解)
  • 【C++详解】用红黑树封装模拟实现mymap、myset
  • 【C++】哈希的应用:位图和布隆过滤器