<style> 标签
<style> 标签用于在 HTML 文档中定义内部 CSS 样式。它包含 CSS 代码,用于控制文档的外观和布局。
概述
<style> 标签用于在 HTML 文档中嵌入 CSS 样式规则。这些样式规则只应用于当前文档。
语法
html
<style>
/* CSS 样式规则 */
</style>常用属性
type 属性
指定样式表的语言类型(在 HTML5 中可选):
html
<style type="text/css">
/* CSS 样式 */
</style>media 属性
指定样式表适用的媒体类型:
html
<style media="screen">
/* 屏幕样式 */
</style>
<style media="print">
/* 打印样式 */
</style>scoped 属性(已废弃)
曾用于将样式限制在特定元素范围内,但已被废弃:
html
<!-- 已废弃,不应使用 -->
<style scoped>
/* 局部样式 */
</style>基本用法
简单样式
html
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f0f0f0;
}
h1 {
color: #333;
text-align: center;
}
p {
color: #666;
line-height: 1.6;
}
</style>
</head>
<body>
<h1>标题</h1>
<p>这是一个段落。</p>
</body>
</html>带媒体查询的样式
html
<!DOCTYPE html>
<html>
<head>
<style>
/* 默认样式 */
.container {
width: 100%;
padding: 20px;
}
/* 响应式样式 */
@media screen and (min-width: 768px) {
.container {
width: 750px;
margin: 0 auto;
}
}
@media print {
.container {
width: 100%;
padding: 0;
}
}
</style>
</head>
<body>
<div class="container">
<h1>响应式容器</h1>
<p>这个容器在不同设备上会有不同的宽度。</p>
</div>
</body>
</html>选择器类型
元素选择器
html
<style>
h1 {
color: blue;
}
p {
font-size: 16px;
}
</style>类选择器
html
<style>
.highlight {
background-color: yellow;
}
.button {
padding: 10px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 5px;
}
</style>ID 选择器
html
<style>
#header {
background-color: #333;
color: white;
padding: 20px;
}
#main-content {
margin: 20px 0;
}
</style>属性选择器
html
<style>
[target="_blank"] {
color: red;
}
input[type="text"] {
border: 1px solid #ccc;
padding: 5px;
}
</style>伪类和伪元素
html
<style>
a:hover {
color: orange;
}
p:first-child {
font-weight: bold;
}
.quote::before {
content: """;
}
.quote::after {
content: """;
}
</style>完整示例
html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>内部样式示例</title>
<style>
/* 重置默认样式 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 页面基本样式 */
body {
font-family: 'Roboto', Arial, sans-serif;
line-height: 1.6;
color: #333;
background-color: #f4f4f4;
}
/* 容器样式 */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
background-color: white;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
/* 头部样式 */
header {
background-color: #333;
color: white;
padding: 1rem;
text-align: center;
}
/* 导航样式 */
nav {
background-color: #444;
padding: 0.5rem;
}
nav ul {
list-style: none;
display: flex;
justify-content: center;
}
nav li {
margin: 0 15px;
}
nav a {
color: white;
text-decoration: none;
padding: 0.5rem;
transition: background-color 0.3s;
}
nav a:hover {
background-color: #555;
border-radius: 3px;
}
/* 主要内容样式 */
main {
padding: 2rem 0;
}
h1, h2 {
margin-bottom: 1rem;
color: #2c3e50;
}
p {
margin-bottom: 1rem;
}
.highlight {
background-color: #ffffcc;
padding: 0.5rem;
border-left: 4px solid #ff9900;
}
/* 响应式设计 */
@media screen and (max-width: 768px) {
.container {
padding: 10px;
}
nav ul {
flex-direction: column;
align-items: center;
}
nav li {
margin: 5px 0;
}
}
/* 打印样式 */
@media print {
body {
background-color: white;
}
.container {
box-shadow: none;
}
nav {
display: none;
}
}
</style>
</head>
<body>
<div class="container">
<header>
<h1>网页开发教程</h1>
</header>
<nav>
<ul>
<li><a href="#html">HTML</a></li>
<li><a href="#css">CSS</a></li>
<li><a href="#javascript">JavaScript</a></li>
</ul>
</nav>
<main>
<h2>HTML 基础</h2>
<p>HTML 是网页开发的基础,它定义了网页的结构。</p>
<p class="highlight">这是一个高亮段落,用于强调重要信息。</p>
<h2>CSS 样式</h2>
<p>CSS 用于控制网页的外观和布局。</p>
<h2>JavaScript 交互</h2>
<p>JavaScript 为网页添加交互功能。</p>
</main>
</div>
</body>
</html>与外部样式表的比较
内部样式(<style> 标签)
html
<head>
<style>
body {
background-color: #f0f0f0;
}
</style>
</head>优点:
- 样式与文档一起加载
- 适合单页应用或特定页面样式
缺点:
- 无法在多个页面间共享
- 增加 HTML 文件大小
- 无法被浏览器缓存
外部样式表(<link> 标签)
html
<head>
<link rel="stylesheet" href="styles.css">
</head>优点:
- 可在多个页面间共享
- 可被浏览器缓存
- 便于维护和更新
缺点:
- 需要额外的 HTTP 请求
最佳实践
- 优先使用外部样式表:对于多页面网站,使用外部样式表以实现样式共享和缓存
- 关键 CSS 内联:将首屏渲染所需的关键 CSS 内联到 HTML 中以提高性能
- 避免过度使用:内部样式适用于小规模或特定页面的样式
- 合理组织代码:使用注释和良好的代码结构
- 压缩样式代码:在生产环境中压缩 CSS 代码
浏览器兼容性
<style> 标签在所有浏览器中都得到支持:
- Chrome
- Firefox
- Safari
- Edge
- Internet Explorer
不同 CSS 特性的支持情况可能有所不同,但基本的 CSS 语法在所有浏览器中都得到良好支持。
注意事项
<style>标签必须放在<head>部分或<body>中- 在 HTML5 中,
type属性是可选的,默认为text/css - 内部样式会覆盖外部样式表中的相同规则(除非外部样式使用了
!important) - 避免在内部样式中使用过多的 CSS 代码,这会增加 HTML 文件大小
- 内部样式无法被其他页面共享