1943 字
10 分钟
CSS 基础
AI 摘要
文章全面介绍 CSS 基础:
-
作用与概念:CSS 用于为 HTML 元素指定样式,与 HTML、JavaScript 协作,分别负责页面结构、样式与交互动态效果。
-
语法结构:由选择器指定应用样式的元素,属性确定样式种类,值设定属性具体内容。
-
选择器:涵盖基本选择器(类型、类、ID)、组合选择器(后代、子元素等)、伪类选择器(
:hover
等)及伪元素选择器(::before
等)。 -
常见属性:
- 文本与字体:包括
font-family
等设置字体相关样式。 - 背景与图片:如
background-color
设置背景颜色。 - 边框与间距:像
border
设置边框,padding
和margin
处理内外边距。 - 布局:涉及盒模型(
box-sizing
等)与定位(position
等)。 - Flexbox 布局:通过
display: flex
等属性实现。 - 响应式设计:借助媒体查询
@media
适配不同屏幕。- 动画与过渡:过渡可平滑改变样式,动画能实现关键帧间变化。
- 文本与字体:包括
1. CSS 的作用和基本概念
CSS(Cascading Style Sheets)是用于为网页中的 HTML 元素指定样式的技术。CSS 使我们能够控制网页内容的排版、颜色、字体、背景、边框等。
CSS 是前端开发中不可或缺的一部分,通常和 HTML 和 JavaScript 一起使用。HTML 负责页面结构,CSS 负责页面样式,JavaScript 则负责交互和动态效果。
2. CSS 的语法结构
CSS 规则的基本结构由 选择器、属性 和 值 三部分组成:
selector { property: value;}
- 选择器(Selector):指定要应用样式的 HTML 元素或一组元素。
- 属性(Property):指定样式的种类(例如颜色、大小、字体等)。
- 值(Value):指定该属性的具体值(例如颜色值、尺寸值等)。
示例:
h1 { color: red; /* 设置 h1 元素的文本颜色为红色 */ font-size: 24px; /* 设置字体大小为24像素 */}
3. CSS 选择器详解
选择器用于选择 HTML 元素并对其应用样式。以下是 CSS 常用的选择器类型:
3.1 基本选择器
- 类型选择器(Type Selector):通过 HTML 标签名选择元素。
p { color: blue;}
- 类选择器(Class Selector):通过类名选择元素。类选择器前缀为
.
。
.btn { background-color: green;}
- ID 选择器(ID Selector):通过 ID 选择元素。ID 选择器前缀为
#
。
#header { background-color: red;}
3.2 组合选择器
- 后代选择器(Descendant Selector):选择某元素的后代元素。
div p { color: purple;}
- 子元素选择器(Child Selector):选择直接子元素。
ul > li { color: green;}
- 相邻兄弟选择器(Adjacent Sibling Selector):选择紧跟在某元素后的元素。
h1 + p { font-weight: bold;}
- 通用选择器(Universal Selector):选择所有元素。
* { margin: 0; padding: 0;}
- 属性选择器(Attribute Selector):选择具有特定属性的元素。
input[type="text"] { border: 1px solid black;}
3.3 伪类选择器(Pseudo-class Selector)
:hover
:当元素被鼠标悬停时应用样式。
a:hover { color: red;}
:nth-child(n)
:选择父元素的第n
个子元素。
li:nth-child(odd) { background-color: #f0f0f0;}
:first-child
、:last-child
:选择父元素的第一个或最后一个子元素。
p:first-child { color: blue;}
:not(selector)
:选择不符合条件的元素。
div:not(.active) { background-color: gray;}
3.4 伪元素选择器(Pseudo-element Selector)
::before
:在元素内容前插入内容。
p::before { content: "前缀:";}
::after
:在元素内容后插入内容。
p::after { content: "后缀";}
4. 常见 CSS 属性详解
好的!以下是 CSS 属性和方法的超详细汇总,覆盖所有常用属性以及高级用法,帮助你从基础到进阶全面掌握 CSS。
1. 文本与字体(Text & Font)
1.1 字体
font-family
设置字体系列,允许指定多个字体,浏览器会选择第一个可用的字体。
p { font-family: "Arial", sans-serif;}
font-size
设置字体的大小,常用单位包括px
,em
,rem
,%
等。
p { font-size: 16px;}
font-weight
设置字体的粗细。常用值:normal
、bold
、lighter
、bolder
,或者具体数值(100到900)。
p { font-weight: bold;}
font-style
设置字体样式。常用值:normal
、italic
、oblique
。
p { font-style: italic;}
font-variant
设置小型大写字母(small-caps)等字体变体。
p { font-variant: small-caps;}
line-height
设置行高。可以使用数字、em
、px
等单位,通常设置为字体大小的1.2倍到1.5倍。
p { line-height: 1.5;}
letter-spacing
设置字母间距,单位可以是px
,em
,rem
等。
p { letter-spacing: 1px;}
text-transform
设置文本的大小写转换方式。常用值:uppercase
、lowercase
、capitalize
。
p { text-transform: uppercase;}
text-align
设置文本的水平对齐方式。常用值:left
、right
、center
、justify
。
p { text-align: center;}
text-decoration
设置文本装饰。常用值:underline
、line-through
、overline
。
p { text-decoration: underline;}
text-shadow
设置文本的阴影效果。
p { text-shadow: 2px 2px 4px rgba(0,0,0,0.3);}
2. 背景与图片(Background & Images)
2.1 背景
background-color
设置元素的背景颜色。
div { background-color: #f0f0f0;}
background-image
设置元素的背景图片。
div { background-image: url('image.jpg');}
background-size
设置背景图片的尺寸。常用值:cover
(覆盖)、contain
(包含)。
div { background-size: cover;}
background-position
设置背景图片的位置。可以使用px
、%
或关键字(如center
)。
div { background-position: center center;}
background-repeat
设置背景图片的重复方式。常用值:no-repeat
(不重复)、repeat-x
(水平重复)、repeat-y
(垂直重复)。
div { background-repeat: no-repeat;}
background-attachment
设置背景图片的固定或滚动行为。常用值:scroll
(滚动)和fixed
(固定)。
div { background-attachment: fixed;}
background-clip
设置背景是否应该扩展到元素的边框区域。
div { background-clip: content-box;}
3. 边框与间距(Borders & Spacing)
3.1 边框
border
设置元素的所有边框。格式为border: <宽度> <样式> <颜色>
。
div { border: 2px solid #000;}
border-radius
设置元素的圆角,单位可以为px
或%
。
div { border-radius: 10px;}
border-top
,border-right
,border-bottom
,border-left
设置元素的单独边框。
div { border-top: 1px solid red;}
border-style
设置边框的样式,常用值:solid
、dashed
、dotted
、double
。
div { border-style: dashed;}
border-width
设置边框的宽度。
div { border-width: 3px;}
border-color
设置边框的颜色。
div { border-color: #333;}
3.2 内外边距
padding
设置元素内容与边框之间的内边距。
div { padding: 10px;}
margin
设置元素与其他元素之间的外边距。
div { margin: 20px;}
margin-top
,margin-right
,margin-bottom
,margin-left
设置单独的外边距。
div { margin-top: 10px;}
padding-top
,padding-right
,padding-bottom
,padding-left
设置单独的内边距。
div { padding-left: 15px;}
4. 布局(Layout)
4.1 盒模型
box-sizing
设置盒子模型的计算方式。常用值:content-box
(默认)、border-box
(包括内边距和边框)。
div { box-sizing: border-box;}
width
,height
设置元素的宽度和高度。
div { width: 200px; height: 100px;}
4.2 定位
position
设置元素的定位方式。常用值:static
(默认)、relative
、absolute
、fixed
、sticky
。
div { position: relative; top: 10px; left: 20px;}
top
,right
,bottom
,left
设置元素的定位偏移量。
div { position: absolute; top: 50px; left: 100px;}
z-index
设置元素的堆叠顺序。值越大,元素越靠前。
div { z-index: 10;}
5. Flexbox 布局
5.1 Flexbox 基本属性
display: flex
启用弹性布局。
div { display: flex;}
flex-direction
设置主轴的方向。常用值:row
(水平,默认)、column
(竖直)、row-reverse
、column-reverse
。
div { flex-direction: column;}
justify-content
设置主轴上的对齐方式。常用值:flex-start
(默认)、center
、space-between
、space-around
、space-evenly
。
div { justify-content: center;}
align-items
设置交叉轴(垂直方向)上的对齐方式。常用值
:flex-start
、center
、flex-end
、stretch
(默认)。
div { align-items: center;}
align-self
设置单个元素在交叉轴上的对齐方式。
div { align-self: flex-end;}
flex-wrap
控制元素是否换行。常用值:nowrap
(默认,不换行)、wrap
(换行)。
div { flex-wrap: wrap;}
flex
设置项目的伸缩比例,格式为:flex: <flex-grow> <flex-shrink> <flex-basis>
。
div { flex: 1;}
6. 响应式设计
6.1 媒体查询(Media Queries)
@media
根据不同的屏幕尺寸应用不同的样式。
@media (max-width: 768px) { div { background-color: blue; }}
7. CSS 动画与过渡
7.1 过渡(Transition)
CSS 过渡允许在特定时间内平滑地从一个样式变化到另一个样式。
div { transition: all 0.3s ease-in-out; /* 所有属性变化,在0.3秒内过渡 */}
div:hover { background-color: #ff6347; /* 悬停时背景颜色变为番茄色 */}
7.2 动画(Animation)
CSS 动画可以让元素在多个关键帧之间变化。
@keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(100px); }}
div { animation: slide 2s infinite; /* 动画持续2秒,循环播放 */}