CSS笔记 | 豆包MarsCode AI刷题

52 阅读3分钟

CSS笔记

CSS(Cascading Style Sheets,层叠样式表)是用于描述HTML或XML(包括如SVG, MathML等XML语言)文档外观和格式的样式表语言。通过CSS,开发者可以控制网页的布局、颜色、字体和其他视觉特性。以下是一些CSS的基本概念和示例代码。

1. 基本语法

CSS规则由两个主要部分组成:选择器(Selector)和声明块(Declaration Block)。

css复制代码
	selector     {property: value;

	    property: value;

	    ...

	}
  • 选择器(Selector) :用于选择要应用样式的HTML元素。
  • 声明块(Declaration Block) :包含一组声明,每个声明由一个属性和值组成,它们用冒号分隔,并以分号结束。

2. 选择器类型

  • 元素选择器(Type Selector) :选择所有特定类型的HTML元素。

    css复制代码
    	p {
    
    	    color: blue;
    
    	}
    
  • 类选择器(Class Selector) :选择具有特定类属性的HTML元素。

    css复制代码
    	.myClass {
    
    	    font-size: 20px;
    
    	}
    
  • ID选择器(ID Selector) :选择具有特定ID属性的HTML元素。

    css复制代码
    	#myId {
    
    	    background-color: yellow;
    
    	}
    
  • 属性选择器(Attribute Selector) :选择具有特定属性的HTML元素。

    css复制代码
    	a[target="_blank"] {
    
    	    color: red;
    
    	}
    
  • 伪类选择器(Pseudo-class Selector) :选择元素的特定状态。

    css复制代码
    	a:hover {
    
    	    text-decoration: underline;
    
    	}
    
  • 伪元素选择器(Pseudo-element Selector) :选择元素的一部分内容。

    css复制代码
    	p::first-line {
    
    	    font-weight: bold;
    
    	}
    

3. 盒子模型(Box Model)

CSS盒子模型描述了HTML元素的空间和布局。每个元素都被表示为一个矩形盒子,由内容(content)、内边距(padding)、边框(border)和外边距(margin)组成。

css复制代码
	div {

	    width: 200px;

	    padding: 10px;

	    border: 5px solid black;

	    margin: 20px;

	}

4. 响应式设计(Responsive Design)

响应式设计是指网页能够在不同设备和屏幕尺寸上良好显示。使用媒体查询(Media Queries)可以实现这一点。

css复制代码
	/* 默认样式 */

	body {

	    font-size: 16px;

	}

	 

	/* 平板电脑上的样式 */

	@media (min-width: 600px) {

	    body {

	        font-size: 18px;

	    }

	}

	 

	/* 桌面电脑上的样式 */

	@media (min-width: 1000px) {

	    body {

	        font-size: 20px;

	    }

	}

5. Flexbox 和 Grid 布局

  • Flexbox:用于一维布局,可以很方便地实现水平或垂直方向的对齐和分布。

    css复制代码
    	.container {
    
    	    display: flex;
    
    	    justify-content: center; /* 水平居中 */
    
    	    align-items: center;    /* 垂直居中 */
    
    	}
    
  • Grid:用于二维布局,可以创建复杂的网格布局系统。

    css复制代码
    	.grid-container {
    
    	    display: grid;
    
    	    grid-template-columns: repeat(3, 1fr); /* 三列,每列等分 */
    
    	    grid-gap: 10px;
    
    	}
    

6. 动画(Animations)

CSS动画允许你创建平滑的过渡效果。

css复制代码
	/* 定义动画关键帧 */

	@keyframes example {

	    from {background-color: red;}

	    to {background-color: yellow;}

	}

	 

	/* 应用动画 */

	div {

	    animation-name: example;

	    animation-duration: 4s;

	}

7. 导入和链接外部样式表

可以通过<link>标签在HTML中链接外部CSS文件,或使用@import规则在CSS文件中导入其他CSS文件。

  • 链接外部样式表

    html复制代码
    	<link rel="stylesheet" type="text/css" href="styles.css">
    
  • 导入外部样式表

    css复制代码
    	@import url('styles.css');
    

示例代码

以下是一个完整的HTML和CSS示例,展示如何应用上述一些概念。

HTML:

html复制代码
	<!DOCTYPE html>

	<html lang="en">

	<head>

	    <meta charset="UTF-8">

	    <meta name="viewport" content="width=device-width, initial-scale=1.0">

	    <title>CSS Example</title>

	    <link rel="stylesheet" href="styles.css">

	</head>

	<body>

	    <div class="container">

	        <div class="item">Item 1</div>

	        <div class="item">Item 2</div>

	        <div class="item">Item 3</div>

	    </div>

	</body>

	</html>

CSS (styles.css) :

css复制代码
	body {

	    font-family: Arial, sans-serif;

	    margin: 0;

	    padding: 0;

	}

	 

	.container {

	    display: flex;

	    justify-content: space-around;

	    flex-wrap: wrap;

	    background-color: #f0f0f0;

	    padding: 20px;

	}

	 

	.item {

	    background-color: #4CAF50;

	    color: white;

	    padding: 20px;

	    margin: 10px;

	    border-radius: 5px;

	    flex: 1 1 200px; /* Flex grow, shrink, basis */

	    text-align: center;

	    transition: background-color 0.3s ease;

	}

	 

	.item:hover {

	    background-color: #45a049;

	}

	 

	@media (max-width: 600px) {

	    .item {

	        flex: 1 1 100%; /* 在小屏幕上每行一个元素 */

	    }

	}

这个示例展示了如何使用Flexbox进行布局,以及如何使用媒体查询实现响应式设计。通过CSS,我们可以非常灵活地控制网页的外观和布局。