CSS基础 - CSS3

news2024/12/23 18:56:41

目录

A. 简介

B. 基础用法

C. 总结



A. 简介

CSS3 是 CSS(层叠样式表)技术的升级版本。

一、新特性概述

  1. 选择器增强
    • CSS3 引入了更多强大的选择器,使得开发者能够更精确地选择和样式化网页元素。例如,属性选择器可以根据元素的属性值来选择元素,nth-child选择器可以选择父元素中的特定子元素等。这些选择器减少了对 JavaScript 进行复杂 DOM 操作的需求,提高了样式设置的效率和灵活性。
    • 示例:使用nth-child选择器为表格的奇数行和偶数行设置不同的背景颜色。
   table tr:nth-child(even) {
       background-color: #f2f2f2;
   }
   table tr:nth-child(odd) {
       background-color: #ffffff;
   }
  1. 边框和背景
    • 在 CSS3 中,可以创建更丰富的边框和背景效果。
    • 边框方面,支持border-radius属性来创建圆角边框,使元素看起来更加圆润和美观。例如:
  .box {
       border: 1px solid black;
       border-radius: 10px;
   }
  • 背景方面,可以使用background-size属性来控制背景图像的大小和缩放方式,background-origin属性来指定背景图像的定位区域等。例如:
  .image-background {
       background-image: url('image.jpg');
       background-size: cover;
       background-origin: padding-box;
   }
  1. 文本效果
    • CSS3 提供了更多的文本样式选项。例如,text-shadow属性可以为文本添加阴影效果,增强文本的立体感和可读性。
   h1 {
       text-shadow: 2px 2px 4px #000000;
   }
  • 还支持text-overflow属性来处理文本溢出的情况,可以选择省略号显示或者其他自定义方式。
  1. 多列布局
    • CSS3 引入了多列布局的功能,允许将文本内容分成多列显示,类似于报纸的排版效果。可以通过column-count属性设置列数,column-gap属性设置列间距等。
    • 示例:
  .article {
       column-count: 2;
       column-gap: 20px;
   }
  1. 动画和过渡
    • 过渡(Transition):可以在 CSS 属性值发生变化时实现平滑的过渡效果,而不是瞬间切换。例如,当鼠标悬停在一个按钮上时,按钮的颜色可以从一种颜色平滑地过渡到另一种颜色。
   button {
       background-color: blue;
       transition: background-color 0.5s ease;
   }
   button:hover {
       background-color: green;
   }
  • 动画(Animation):可以创建更复杂的动画效果,通过定义关键帧(keyframes)来指定动画在不同时间点的状态。例如,创建一个元素从左到右移动的动画。
   @keyframes moveRight {
       from {
           left: 0px;
       }
       to {
           left: 200px;
       }
   }
  .box {
       position: relative;
       animation: moveRight 2s forwards;
   }
  1. 媒体查询(Media Queries)
    • 媒体查询允许根据不同的设备特性(如屏幕宽度、分辨率等)应用不同的样式,从而实现响应式设计。通过媒体查询,可以创建适应不同设备的网页布局和样式,确保在各种设备上都能提供良好的用户体验。
    • 示例:当屏幕宽度小于 768px 时,应用以下样式,将导航栏样式从水平排列改为垂直排列。
   @media screen and (max-width: 768px) {
       nav ul {
           flex-direction: column;
       }
   }

二、优势

  1. 增强网页视觉效果
    • CSS3 的新特性使得网页能够呈现出更丰富、更具吸引力的视觉效果,提升用户体验。例如,通过圆角边框、阴影效果等可以使网页元素看起来更加精致。
  2. 提高开发效率
    • 新的选择器和布局功能减少了对 JavaScript 代码的依赖,开发者可以更高效地实现复杂的页面布局和样式效果,加快开发速度。
  3. 响应式设计支持
    • 媒体查询等特性使得创建响应式网页变得更加容易,能够适应不同设备和屏幕尺寸,满足了现代网页设计对多设备兼容性的需求。
  4. 更好的用户体验
    • 动画和过渡效果可以为用户提供更流畅、自然的交互体验,引导用户的注意力,提高网页的可用性和趣味性。

总之,CSS3 带来了许多新的功能和改进,为网页设计和开发提供了更强大的工具和更多的可能性,已经成为现代网页开发中不可或缺的一部分。

B. 基础用法

  1. 选择器的进一步使用
    • 属性选择器
      • 可以根据元素的属性及属性值来选择元素。
      • 例如,选择所有type属性为text<input>元素:
     input[type="text"] {
         background-color: lightgray;
     }
  • 伪类选择器的扩展
    • CSS3 增加了一些新的伪类选择器,如:nth-of-type:last-child等。
    • :nth-of-type(n)可以选择父元素下特定类型的第n个元素。例如,选择每个<ul>下的第二个<li>元素:
     ul li:nth-of-type(2) {
         color: blue;
     }
  • :last-child选择父元素的最后一个子元素。例如,将<div>的最后一个<p>元素设置为红色字体:
     div p:last-child {
         color: red;
     }
  1. 边框和背景新属性
    • 边框
      • border-radius用于创建圆角边框。可以分别设置四个角的半径,也可以使用简写形式。例如:
    .box {
         border: 2px solid black;
         border-radius: 15px; /* 四个角都设置为 15 像素半径的圆角 */
     }

或者

    .box {
         border: 2px solid black;
         border-radius: 10px 20px 30px 40px; /* 分别设置四个角的半径 */
     }
  • 背景
    • background-size控制背景图像的大小。可以设置为具体的像素值、百分比或一些关键字。例如:
    .image-background {
         background-image: url('image.jpg');
         background-size: cover; /* 图像会缩放以完全覆盖背景区域,可能会裁剪部分图像 */
     }

或者

    .image-background {
         background-image: url('image.jpg');
         background-size: 50% 100%; /* 宽度为容器的 50%,高度为容器的 100% */
     }
  1. 文本新样式
    • text-shadow添加文本阴影效果,语法为text-shadow: h-shadow v-shadow blur color;,其中h-shadow是水平阴影的位置(正数向右,负数向左),v-shadow是垂直阴影的位置(正数向下,负数向上),blur是模糊半径(可选),color是阴影的颜色。例如:
     h1 {
         text-shadow: 2px 2px 3px gray;
     }
  • word-wrapword-break用于处理文本的换行情况。word-wrap(在 CSS3 中也叫overflow-wrap)可以设置当单词太长时是否允许在单词内换行,word-break设置如何在单词内或在单词之间进行换行。例如:
    .text {
         word-wrap: break-word;
         word-break: break-all;
     }
  1. 过渡(Transition)
    • 用于在 CSS 属性值发生变化时创建平滑的过渡效果。语法为transition: property duration timing-function delay;
    • 例如,让一个按钮的背景颜色在 0.5 秒内以线性方式从蓝色过渡到绿色:
     button {
         background-color: blue;
         transition: background-color 0.5s linear;
     }
     button:hover {
         background-color: green;
     }
  • 可以同时过渡多个属性,用逗号分隔。例如:
     div {
         width: 100px;
         height: 100px;
         background-color: red;
         transition: width 1s, height 1s, background-color 2s;
     }
     div:hover {
         width: 200px;
         height: 200px;
         background-color: blue;
     }
  1. 变形(Transform)
    • 可以对元素进行旋转、缩放、平移等操作。
    • 例如,将一个元素旋转 45 度:
    .element {
         transform: rotate(45deg);
     }
  • 缩放元素:
    .element {
         transform: scale(1.5); /* 放大 1.5 倍 */
     }
  • 平移元素:
    .element {
         transform: translate(50px, 100px); /* 向右平移 50 像素,向下平移 100 像素 */
     }

二、实例

  1. 创建一个带有圆角边框和阴影的按钮
    • HTML 代码:
   <button class="myButton">点击我</button>
  • CSS 代码:
  .myButton {
       background-color: #4CAF50; /* 绿色背景 */
       border: none;
       color: white;
       padding: 15px 32px;
       text-align: center;
       text-decoration: none;
       display: inline-block;
       font-size: 16px;
       border-radius: 10px; /* 圆角半径为 10 像素 */
       box-shadow: 5px 5px 10px gray; /* 水平阴影 5 像素,垂直阴影 5 像素,模糊半径 10 像素,灰色阴影 */
   }
  .myButton:hover {
       background-color: #3e8e41; /* 鼠标悬停时颜色变深一些 */
   }

  1. 实现一个图片缩放过渡效果
    • HTML 代码:
   <img src="image.jpg" class="myImage">
  • CSS 代码:
  .myImage {
       transition: transform 0.5s ease; /* 0.5 秒内以 ease 缓动函数过渡 transform 属性 */
   }
  .myImage:hover {
       transform: scale(1.2); /* 鼠标悬停时放大 1.2 倍 */
   }
  1. 创建一个旋转的动画
    • HTML 代码:
   <div class="rotatingBox"></div>
  • CSS 代码:
  .rotatingBox {
       width: 100px;
       height: 100px;
       background-color: blue;
       animation: rotateAnimation 4s linear infinite; /* 4 秒内以线性方式无限循环旋转动画 */
   }
   @keyframes rotateAnimation {
       from {
           transform: rotate(0deg);
       }
       to {
           transform: rotate(360deg);
       }
   }

通过这些基础用法和实例,可以看到 CSS3 提供了更多的样式和交互功能,能够创建出更加丰富和动态的网页效果。

C. 总结

到这HTML和CSS基础就基本结束了.下一篇开始JS.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1990929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第329题矩阵中的最长递增路径

题目&#xff1a; 题解&#xff1a; var (dirs [][]int{[]int{-1, 0}, []int{1, 0}, []int{0, -1}, []int{0, 1}}rows, columns int )func longestIncreasingPath(matrix [][]int) int {if len(matrix) 0 || len(matrix[0]) 0 {return 0}rows, columns len(matrix), len(m…

仓颉编程入门 -- 循环语句详解

仓颉编程入门 – 循环语句 一 . while 表达式 while 表达式的基本形式为&#xff1a; while (条件) {循环体 }注意事项 : 其中“条件”是布尔类型表达式&#xff0c;“循环体”是一个代码块。while 表达式将按如下规则执行&#xff1a; 计算“条件”表达式&#xff0c;如果…

计算机毕业设计选题推荐-电缆行业生产管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

LabVIEW软件开发的未来是什么?

LabVIEW软件开发的未来展望可以从以下几个方面进行分析&#xff1a; 1. 与硬件集成的进一步增强 LabVIEW一贯以其与硬件的紧密集成而著称&#xff0c;未来这一优势将进一步得到强化。随着物联网&#xff08;IoT&#xff09;设备、工业4.0和智能制造的发展&#xff0c;LabVIEW将…

Mipi SoundWire Spec 详解4.2~4.3

目录 4.2 低层特性 4.2.1 物理接口 4.2.1.1 信号拓扑 4.2.1.2 多数据通道 4.2.1.3 高性能PHY 4.2.2 数据编码 4.2.3 物理信号值和逻辑信号值的术语 4.2.4 对开发和测试低级功能的支持 4.3 控制特性 4.3.1 比特流与帧结构 4.3.1.1 控制字与带宽权衡 4.3.2 同步 4.3.…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 8月8日,星期四

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年8月8日 星期四 农历七月初五 1、 财政部预拨4.65亿元资金支持辽宁、吉林等7省&#xff08;市&#xff09;开展应急抢险救灾工作。 2、 2024年“三区”人才支持计划发布&#xff1a;全国将选派15952名教师赴“三区”。 3…

什么是三维坐标系?

在研究向量和高级微积分主题时&#xff0c;了解 3D 坐标系非常重要。过去&#xff0c;我们一直在处理平面和矩形坐标。这一次&#xff0c;我们将研究三维坐标系的组成部分和约定。 3D 坐标系使我们能够表示包含三个相互垂直轴的空间中的一个量。通过 3D 坐标系统&#xff0c;我…

计算机网络——网络层(多协议标签交换MPLS、软件定义网络SDN)

多协议标签交换MPLS 多协议标签交换MPLS&#xff08;multiProtocal Label Switching&#xff09;&#xff1a;“多协议”表示在MPLS的上层可以采用多种协议。 MPLS利用面向连接技术&#xff0c;使每个分组携带一个叫作标签的小整数&#xff08;这叫作打上标签&#xff09;。当分…

Linux下终极下载管理器:uGet and aria2

你是否曾在火狐浏览器中点击过下载链接&#xff0c;然后连接中断&#xff0c;不得不从头开始重新下载文件&#xff1f; 这就是 uGet 下载管理器的用武之地。 1&#xff09;uGet 是一款开源的轻量级下载管理器&#xff0c;适用于 Linux、BSD、Android 和 Windows。有了 uGet&a…

Github 2024-08-08 开源项目日报Top10

根据Github Trendings的统计,今日(2024-08-08统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目5JavaScript项目3Python项目2C#项目1C++项目1Go项目1免费编程学习平台:freeCodeCamp.org 创建周期:3302 天开发语言:TypeScri…

Linux-入门-02

上节我们讲了如何安装虚拟机,本节课讲一些linux的常用命令,首先我们需要做一些配置,我们的centos的镜像是最小版安装,里面什么也没有,所以我们的linux是不能进行联网的,接下来我们就来一步一步联网 1、配置网络 首先我们需要先使用命令查看ip地址,linux中一切皆文件,只能使用命…

opencascade TopoDS_TShape源码学习

opencascade TopoDS_TShape 前言 TShape 是描述二维或三维空间中一组点的拓扑结构。 拓扑形状是由其他形状组成的结构。这是一个延迟类&#xff0c;用于支持拓扑对象。 TShape 由其可选的域&#xff08;几何&#xff09;和组件&#xff08;带有位置和方向的其他 TShape&#…

德国EKKIF高定五金——不断探索全球新材料、新技术和新生活方式

Ekkif Concept品牌理念 “New life” We have always advocated the new concept and lifestyle of "New life". Our design team adheres to the concept of innovation and originality, constantly exploring new materials, technologies, and lifestyles a…

详细分析Linux中的ss命令基本知识(附Demo)

目录 1. 基本知识2. 基本命令2.1 查套接字2.2 查端口 1. 基本知识 ss 用于在 Linux 系统中显示网络套接字统计信息的命令 是 netstat 命令的现代替代品&#xff0c;提供了更快、更详细的输出是 iproute2 套件的一部分&#xff0c;支持许多高级网络功能 基本的功能如下&#…

html+css 实现hover选择按钮

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽效果&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目…

WEB应用(十四)---文件上传

什么是文件上传漏洞 文件上传是Web应用的常见功能&#xff0c;允许用户上传图片、视频及其他文件类型文件。如果用户上传的是木马文件&#xff0c;则服务器就会收到攻击。 对于这个漏洞的练习有一个专门的靶场&#xff0c;即upload-labs&#xff0c;这个的安装可以在windows中使…

使用TLA+形式化验证Go并发程序

Writing is natures way of letting you know how sloppy your thinking is - Guindon 在2024年6月份举办的GopherCon Europe Berlin 2024[1]上&#xff0c;一个叫Raghav Roy的印度程序员(听口音判断的)分享了Using Formal Reasoning to Build Concurrent Go Systems[2]&#x…

JavaScript基础 - 基础

目录 A. 简介 B. 基础用法 一. 使用 二. 输出 C. 语法 D. HTML DOM A. 简介 JavaScript 是一种高级的、解释型的编程语言&#xff0c;主要用于网页开发&#xff0c;以下是它的简介&#xff1a; 一、历史与发展 诞生 JavaScript 于 1995 年由 Netscape 公司的 Brendan …

DataX PostgreSQL 读写支持Geometry类型

这里写目录标题 简要说明依赖代码 简要说明 通过简单修改源码中关于相关的reader、writer和DBUtil工具类&#xff0c;实现表到表之间的Geometry字段类型数据的输送&#xff0c;目前修改仅测试过在postgresql的postgis插件下的Geometry类型可行。 依赖 1.通过gitclone 或者 到…

在Nestjs使用mysql和typeorm

1. 创建项目 nest new nest-mysql-test 2. 添加config 安装 nestjs/config 包 pnpm i --save nestjs/config 添加 .env 文件 DATABASE_HOSTlocalhost DATABASE_PORT3306 DATABASE_USERNAMEroot DATABASE_PASSWORD123456 DATABASE_DBdbtest 创建 config/database.config.…