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

CSS 01【基础语法学习】

1 id 选择器

ID属性不要以数字开头,数字开头的ID在 Mozilla/Firefox 浏览器中不起作用。

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。

HTML元素以id属性来设置id选择器,CSS 中 id 选择器以 "#" 来定义。

以下的样式规则应用于元素属性 id="para1":

实例

#para1
{text-align:center;color:red;
}

2 class 选择器

类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。

class 选择器用于描述一组元素的样式,class 选择器有别于id选择器,class可以在多个元素中使用。

class 选择器在 HTML 中以 class 属性表示, 在 CSS 中,类选择器以一个点 . 号显示:

在以下的例子中,所有拥有 center 类的 HTML 元素均为居中。

实例

.center {text-align:center;}

你也可以指定特定的 HTML 元素使用 class。

在以下实例中, 所有的 p 元素使用 class="center" 让该元素的文本居中:

实例

p.center {text-align:center;}

多个 class 选择器可以使用空格分开:

实例

.center { text-align:center; }
.color { color:#ff0000; }

 类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用。

3 HTML 和 CSS 混合编写

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title>
<style>
#customers
{font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;width:100%;border-collapse:collapse;
}
#customers td, #customers th 
{font-size:1em;border:1px solid #98bf21;padding:3px 7px 2px 7px;
}
#customers th 
{font-size:1.1em;text-align:left;padding-top:5px;padding-bottom:4px;background-color:#A7C942;color:#ffffff;
}
#customers tr.alt td 
{color:#000000;background-color:#EAF2D3;
}
</style>
</head><body>
<table id="customers">
<tr><th>Company</th><th>Contact</th><th>Country</th>
</tr>
<tr>
<td>Alfreds Futterkiste</td>
<td>Maria Anders</td>
<td>Germany</td>
</tr>
<tr class="alt">
<td>Berglunds snabbköp</td>
<td>Christina Berglund</td>
<td>Sweden</td>
</tr>
<tr>
<td>Centro comercial Moctezuma</td>
<td>Francisco Chang</td>
<td>Mexico</td>
</tr>
<tr class="alt">
<td>Ernst Handel</td>
<td>Roland Mendel</td>
<td>Austria</td>
</tr>
<tr>
<td>Island Trading</td>
<td>Helen Bennett</td>
<td>UK</td>
</tr>
<tr class="alt">
<td>Königlich Essen</td>
<td>Philip Cramer</td>
<td>Germany</td>
</tr>
<tr>
<td>Laughing Bacchus Winecellars</td>
<td>Yoshi Tannamuri</td>
<td>Canada</td>
</tr>
<tr class="alt">
<td>Magazzini Alimentari Riuniti</td>
<td>Giovanni Rovelli</td>
<td>Italy</td>
</tr>
<tr>
<td>North/South</td>
<td>Simon Crowther</td>
<td>UK</td>
</tr>
<tr class="alt">
<td>Paris spécialités</td>
<td>Marie Bertrand</td>
<td>France</td>
</tr>
</table>
</body>
</html>

【这个难道是css和html混着写的吗?】

是的,你提供的代码中CSS 和 HTML 确实是 “混合书写” 的形式,但这种混合属于 HTML 标准允许的 “内部样式表” 写法,并非无序的代码混杂。下面我会详细拆解这种写法的本质、特点,以及它与其他 CSS 引入方式的区别,帮你彻底理解这类代码结构。

一、先明确:这是 “内部样式表”,是 HTML+CSS 的标准结合方式

在 HTML 中,CSS(样式表)的引入有 3 种核心方式,你提供的代码属于第二种 ——内部样式表,它是 HTML 与 CSS “半分离” 的规范写法,而非混乱的混合。

具体对应代码结构:

  • HTML 结构:负责页面 “内容”,比如 <table> 表格、<tr> 行、<th> 表头、<td> 单元格等标签,定义了 “页面有什么”。
  • CSS 样式:被包裹在 <head> 标签内的 <style> 标签中,负责页面 “外观”,比如表格的字体、颜色、边框、背景色等,定义了 “内容长什么样”。

代码中两者的边界非常清晰:所有 CSS 代码都在 <style> 标签内部,所有 HTML 内容都在 <body> 标签内部,完全符合语法规范。

二、3 种 CSS 引入方式对比:理解 “内部样式表” 的定位

为了更清晰地理解这种写法,我们可以对比另外两种 CSS 引入方式,明确它们的适用场景:

引入方式实现方式代码位置优点缺点适用场景
内联样式表在 HTML 标签内用 style 属性写 CSSHTML 标签内部(如 <td style="color:red">优先级最高,可精准控制单个元素代码冗余(每个元素都要写),难维护临时调整单个元素样式
内部样式表在 HTML 的 <head> 内用 <style> 包裹 CSSHTML 文件的 <head> 中样式与 HTML 在同一文件,便于单文件管理样式无法复用给其他 HTML 文件小型页面、单页面项目
外部样式表单独创建 .css 文件,用 <link> 引入独立的 .css 文件(如 style.css样式与 HTML 完全分离,可复用给多个页面需要额外加载 CSS 文件,多文件需管理多页面网站、大型项目

你提供的代码是 “内部样式表”,适合小型表格展示页面(如示例中的数据表格),不需要复用样式到其他页面,因此这种写法高效且简洁。

三、代码中 CSS 与 HTML 的关联逻辑:如何 “绑定” 样式?

虽然 CSS 在 <style> 中、HTML 在 <body> 中,但它们通过 “选择器” 建立关联,比如代码中的核心关联逻辑:

  1. #customers:通过 “ID 选择器”(# 表示 ID)选中 <table id="customers"> 表格,定义表格的全局样式(如字体、宽度、边框合并)。
  2. #customers td, #customers th:选中表格内所有 <td>(单元格)和 <th>(表头),定义它们的字体大小、边框、内边距。
  3. #customers th:单独选中表格的表头 <th>,定义表头的对齐方式、上下内边距、背景色、文字色。
  4. #customers tr.alt td:选中表格中带有 class="alt" 的 <tr>(行)内的 <td>,定义 “交替行” 的背景色(实现表格隔行变色效果)。

简单说:CSS 通过 “选择器”(ID、class、标签名等)“找到” HTML 中的元素,再给这些元素赋予样式,两者通过 “选择器” 形成精准关联。

四、总结:这种写法是 “规范的半分离”,而非 “混乱的混合”

  • 不是 “混乱混合”:CSS 和 HTML 各有固定位置(<style> 内 vs <body> 内),边界清晰,符合语法规范。
  • 是 “内部样式表”:属于 HTML+CSS 结合的标准方式之一,适合小型单页面,平衡了 “简洁性” 和 “可维护性”。
  • 核心逻辑:HTML 定义 “内容结构”,CSS 定义 “外观样式”,通过 “选择器” 关联,实现 “内容与样式分离” 的核心思想(只是样式未单独拆成.css 文件)。

如果后续需要将这个表格复用到期他页面,只需将 <style> 内的 CSS 代码单独提取为 table.css 文件,再用 <link rel="stylesheet" href="table.css"> 引入,即可升级为 “外部样式表”,实现完全的分离。

4 Overflow

CSS 布局 Overflow | 菜鸟教程https://www.runoob.com/css/css-overflow.html

5 CSS 布局 - 水平 & 垂直对齐

CSS 布局 – 水平 & 垂直对齐 | 菜鸟教程https://www.runoob.com/css/css-align.html

6 组合选择器

组合选择器被称为 组合器(Combinators)。一共有4种组合器:

' ' 后代组合器(Descendant combinator)

'>' 直接子代组合器(Child combinator)

'~' 一般兄弟组合器(General sibling combinator)

'+' 紧邻兄弟组合器(Adjacent sibling combinator)

7 CSS伪类

CSS 伪类 | 菜鸟教程https://www.runoob.com/css/css-pseudo-classes.html

CSS 伪类(Pseudo-class)是一种特殊的选择器,用于选择元素在特定状态或特定位置的状态,而不是根据元素的标签名、类名或 ID 来选择。它们通常以冒号 : 开头,用于描述元素的动态状态(如鼠标悬停)、位置关系(如第一个子元素)或文档结构(如空元素)等。

伪类的核心特点

  1. 动态性:很多伪类会根据用户行为或元素状态变化而生效(如 :hover 鼠标悬停时)。
  2. 非基于元素本身:不依赖元素的固定属性(如 class 或 id),而是基于元素的状态位置关系
  3. 语法:以 : 开头,后跟伪类名称,如 a:hoverli:first-child

常见伪类分类及用法

1. 链接与用户行为伪类

用于控制链接(<a> 标签)在不同交互状态下的样式,遵循 LVHA 顺序(link → visited → hover → active)以确保生效。

伪类描述示例
:link未被访问过的链接a:link { color: blue; }
:visited已被访问过的链接(受隐私限制,样式有限)a:visited { color: purple; }
:hover鼠标悬停在元素上时button:hover { background: #eee; }
:active元素被点击(激活)时a:active { color: red; }
:focus元素获得焦点时(如输入框被选中)input:focus { border: 2px solid blue; }
2. 结构伪类

根据元素在文档树中的位置或结构关系选择元素,常用于列表、表格等有明确层级的结构。

伪类描述示例
:first-child选择父元素的第一个子元素ul li:first-child { color: red; }
:last-child选择父元素的最后一个子元素ul li:last-child { color: green; }
:nth-child(n)选择父元素的第 n 个子元素(n 可以是数字、odd 奇数、even 偶数)table tr:nth-child(even) { background: #f0f0f0; }(表格隔行变色)
:nth-last-child(n)从父元素的最后一个子元素开始计数,选择第 n 个ul li:nth-last-child(2) { font-weight: bold; }
:only-child选择是父元素唯一子元素的元素div p:only-child { margin: 0; }
:first-of-type选择父元素中同类型的第一个元素(与 :first-child 区别:只看同类型)div span:first-of-type { color: blue; }
:last-of-type选择父元素中同类型的最后一个元素div span:last-of-type { color: green; }
3. 表单相关伪类

用于选择表单元素的特定状态(如禁用、选中、必填等)。

伪类描述示例
:checked选择被选中的表单元素(如单选框、复选框)input:checked + label { color: red; }
:disabled选择被禁用的表单元素input:disabled { background: #ddd; }
:enabled选择可用的表单元素(默认状态)input:enabled { border: 1px solid #ccc; }
:required选择带有 required 属性的必填表单元素input:required { border-left: 3px solid red; }
:optional选择没有 required 属性的可选表单元素input:optional { border-left: 3px solid green; }
:valid选择验证通过的表单元素(如输入合法邮箱)input:valid { border: 1px solid green; }
:invalid选择验证失败的表单元素input:invalid { border: 1px solid red; }
4. 其他常用伪类
伪类描述示例
:empty选择没有任何子元素(包括文本节点)的元素div:empty { height: 20px; background: #f0f0f0; }
:root选择文档的根元素(HTML 中通常是 <html>:root { --main-color: blue; }(定义全局 CSS 变量)
:not(selector)否定伪类,选择不匹配括号内选择器的元素input:not(:disabled) { cursor: pointer; }(选择未禁用的输入框)

伪类的组合使用

伪类可以与其他选择器(包括类、ID、标签选择器)组合使用,实现更精准的选择:

/* 选择 class 为 "menu" 的列表中,被hover的第一个子元素 */
ul.menu li:first-child:hover {background: #ff0;
}/* 选择未被访问且带有 target 属性的链接 */
a:link[target="_blank"] {text-decoration: none;
}

注意事项

  1. 优先级:伪类的优先级与类选择器(class)相同,高于标签选择器,低于 ID 选择器。
  2. 兼容性:大部分伪类(如 :hover:nth-child)在现代浏览器中兼容良好,但部分高级伪类(如 :focus-visible)需要注意旧浏览器支持情况。
  3. 动态性:部分伪类(如 :hover:focus)会随用户行为实时变化,无需手动添加 / 移除类名。

通过伪类,我们可以更灵活地控制元素样式,减少不必要的 class 定义,让代码更简洁、语义化更强。

8 CSS伪元素

CSS 伪元素 | 菜鸟教程https://www.runoob.com/css/css-pseudo-elements.html

http://www.dtcms.com/a/478413.html

相关文章:

  • 北京网站平台建设深圳东莞网站建设
  • 02--CSS基础
  • 天津网站建设公司wordpress头部调用代码
  • 福州网站制作费用特卖网站怎么做
  • 如果只是常规使用的话,iPhone16 Pro Max有必要升级iPhone 17 Pro Max吗,二者之间有哪些区别?
  • 低功耗AI边缘节点设计:FPGA实现UDP通信与摄像头数据云端传输
  • 无线测温:从“被动抢修”到“主动预警”,筑牢企业安全生产防线
  • 【取消mac的系统更新小圆点】
  • PostgreSQL etcd 集群介绍
  • 企业门户网站什么意思软件外包公司排行榜
  • Android Studio制作.9图(点9图/9Patch图)
  • 「机器学习笔记12」支持向量机(SVM)详解:从数学原理到Python实战
  • 《P4310 绝世好题》
  • 【python】第五章:python-GUI编程
  • C语言——深入解析C语言指针:从基础到实践从入门到精通(三)
  • 威科夫、缠论和订单流如何进行融合
  • 电影网站建设视频教程中级经济师考试报名
  • Spring AI 文档ETL实战:集成text-embedding-v4 与 Milvus
  • Java 包装类:自动拆箱 / 装箱与 128 陷阱
  • 行业 观察
  • 59网站一起做网店淘宝网站咋做
  • 那个公司做的外贸网站好wordpress可视化函数
  • LabelImg和Labelme:目标检测和图像分割的标注工具
  • 国外素材网站推荐linux主机上传网站
  • 开源php公司网站wordpress语音搜索
  • UE 如何迁移 DerivedDataCache 路径,避免 C 盘因海量模型缓存爆盘
  • 支付宝小程序 SEO 实战:鲜花送达类小程序抢占搜索流量指南
  • 小吉快检BL-08plus:推动动物疫病早发现、早防控的科技引擎
  • 个人网站如何搭建上海工商网官网登录
  • wordpress做小说网站网站建设 sql 模版