CSS3有哪些新特性

CSS3 引入了许多新特性,以增强样式设计和页面布局的能力,提供更多的视觉效果和交互性。以下是一些 CSS3 中的新特性:

  1. 圆角边框(Border Radius):圆角的边框,而不是传统的方形边框。
css 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .element {
        width: 100px;
        height: 100px;
        margin: 40px 0;
        background: greenyellow;
        /* // 直径为100px 的圆形 */
        border-radius: 50%;
      }
      .element1 {
        width: 200px;
        height: 50px;
        background: red;
        border-radius: 6px;
      }
    </style>
  </head>
  <body>
    <div class="element"></div>
    <div class="element1"></div>
  </body>
</html>

效果如下:

  1. 阴影(Box Shadow):元素添加投影效果,使元素看起来浮在页面上。
css 复制代码
// 取值含义
// box-shadow: [水平偏移] [垂直偏移] [模糊半径] [阴影尺寸] [颜色] [内外阴影];
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .element {
        width: 200px;
        height: 50px;
        margin: 40px 0;
        background: greenyellow;
        box-shadow: 0 -5px 0 5px red inset; 
        /* 创建一个向上偏移的红色内部阴影,模糊半径为 0,阴影尺寸为 5 像素,颜色为红色:*/
      }
      .element1 {
        width: 200px;
        height: 50px;
        background: rgb(207, 98, 180);
        box-shadow: 5px 5px 10px gray; 
        /* 创建一个向右下方偏移的灰色阴影,模糊半径为 10 像素,颜色为灰色:*/
      }
    </style>
  </head>
  <body>
    <div class="element"></div>
    <div class="element1"></div>
  </body>
</html>

效果如下:

  1. 渐变背景(Gradient Backgrounds):可以使用线性渐变或径向渐变来创建复杂的背景效果。
css 复制代码
.element {
 width: 200px;
 height: 50px;
 background: goldenrod;
 background: linear-gradient(to right, #ffcc00, #ff6600);
}

效果如下:

  1. 多列布局(Multi-column Layout):使文本内容可以在多个列中显示,以改善页面布局。
html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      .column-container {
        column-count: 3;
        column-gap: 20px;
        background-color: #f5f5f5;
        border: 1px solid #ddd;
        padding: 10px;
      }
    </style>
  </head>
  <body>
    <div class="column-container">
      <p>第一列的内容...</p>
      <p>第二列的内容...</p>
      <p>第三列的内容...</p>
      <!-- 更多文本内容 -->
    </div>
  </body>
</html>

效果如下:

  1. 媒体查询(Media Queries):可以根据不同的屏幕尺寸和设备特性来应用不同的样式。响应式常用的方法
css 复制代码
@media screen and (max-width: 600px) {
  /* 在小屏幕下应用的样式 */
}
  1. 2D 转换(2D Transforms):可以对元素进行旋转、缩放、平移和倾斜等变换操作。
css 复制代码
.element {
  transform: rotate(45deg) scale(1.5);
}
  1. 3D 转换(3D Transforms):元素在三维空间中进行变换,创建更立体的效果。
css 复制代码
.element {
width: 200px;
height: 50px;
background: goldenrod;
transform: translate3d(50px, 20px, 30px) rotate3d(1, 1, 0, 45deg);
}

效果如下:

  1. 过渡(Transitions):允许你在元素状态之间创建平滑的过渡效果,例如鼠标悬停时改变颜色或大小。
css 复制代码
.element {
  transition: all 0.3s ease-in-out;
}
.element:hover {
  transform: scale(1.2);
}
  1. 动画(Animations) :可以创建复杂的动画效果,通过 @keyframes 规则定义动画序列。
css 复制代码
@keyframes slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100px);
  }
}

.element {
  animation: slide 2s ease-in-out infinite;
}
  1. 自定义字体(Web Fonts) :使用 @font-face 规则,可以引入自定义字体,以实现更多字体选择。
css 复制代码
@font-face {
  font-family: 'MyFont';
  src: url('myfont.woff') format('woff');
}

.element {
  font-family: 'MyFont', sans-serif;
}
  1. 弹性盒子布局(Flexbox):提供了一种更直观的方式来布局元素,特别适用于创建响应式设计和复杂的布局结构。
css 复制代码
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
  1. 网格布局(Grid Layout):允许你创建多行和多列的网格布局,以更精确地控制页面布局。
css 复制代码
.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-gap: 10px;
}
  1. 过滤效果(Filter Effects) :可以通过 filter 属性为元素应用滤镜效果,如模糊、饱和度、对比度等。
css 复制代码
.element {
  filter: blur(5px);
}
  1. 混合模式(Blend Modes) :通过 mix-blend-mode 属性可以控制元素与其背景之间的混合模式,创建各种视觉效果。
css 复制代码
.element {
  mix-blend-mode: overlay;
}
  1. 自定义属性(Custom Properties):允许你创建自定义的 CSS 变量,以便在整个样式表中共享和重复使用值。
css 复制代码
:root {
  --main-color: #3498db;
}

.element {
  background-color: var(--main-color);
}
  1. 多列文本(Multicolumn Text) :使用 column-count 和 column-gap 等属性,可以将文本内容分成多列。
css 复制代码
.element {
  column-count: 2;
  column-gap: 20px;
}

17. **背景图像大小(Background Image Size)**:可以通过 `background-size` 属性控制背景图像的尺寸,以适应元素大小。

```css
.element {
  background-image: url('image.jpg');
  background-size: cover;
}
  1. 用户界面控件伪类(UI Pseudo-classes) :包括 :checked、:disabled、:focus 等伪类,用于根据用户界面控件的状态应用样式。
css 复制代码
input:checked + label {
  font-weight: bold;
}
  1. 变量字体(Variable Fonts):使用变量字体,可以在单一字体文件中包含多个字体样式,如粗体、斜体等,以减少字体文件的加载。
css 复制代码
.element {
  font-family: 'MyVariableFont', sans-serif;
  font-variation-settings: 'wght' 600, 'ital' 1;
}
  1. 伪元素(Pseudo-elements) :包括 ::before 和 ::after 等伪元素,允许你在元素的内容之前或之后插入内容。
css 复制代码
.element::before {
  content: '>';
}

.element::after {
  content: '<';
}
  1. 对象适应性(Object Fit):用于调整图像或视频等替换元素的大小和位置以适应容器。
css 复制代码
img {
  object-fit: cover;
}
  1. 文字换行(Word Break):控制文本的自动换行方式,以处理不同语言和文本内容的换行需求。
css 复制代码
.element {
  word-break: break-all;
}
  1. 柔性文本溢出(Text Overflow):用于处理文本内容溢出容器时的显示方式,如省略号表示截断。
css 复制代码
.element {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
  1. 定位(Positioning) :使用 position 和 z-index 属性,可以更精确地控制元素的定位和层叠顺序。
css 复制代码
.element {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
  1. 自适应大小(Viewport Units) :使用相对于视口大小的单位,如 vw(视口宽度)和 vh(视口高度),来创建响应式设计。
css 复制代码
.element {
  width: 50vw;
  height: 50vh;
}

以上只是总结的部分新特性

相关推荐
粥里有勺糖7 小时前
安利一下最近用的桌面“Agent” | T3 Code
前端·github·ai编程
xy34537 小时前
Axure 9.0 动态面板基本操作
前端·ui·html·axure·原型·产品设计
不停喝水8 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
一水鉴天9 小时前
统一对象拓扑(UOT)设计全链定稿:从三件事分离到三继承 之1 20261010(豆包“查看聊天内容”继续)
前端·css
栖凤9 小时前
Java 的 try-catch 在 Agent 里失效了,我用了 5 个模式才兜住
java·前端·python
粥里有勺糖9 小时前
视野修炼第136期 | 前端小恐龙"Deno"被收购
前端·github·ai编程
修炼的dance9 小时前
页面塞了13.88 MB字体,导出的PDF只有71 KB
前端
qq_369173639 小时前
如何将 AI 生成的 HTML 网页发布成在线链接?不用自己搭建服务器
前端·人工智能·html·效率工具·html 发布
风花一世月9 小时前
⚡ 我把一座含氢能源园区搬进了浏览器(五类能流实时算守恒,在线直接玩)
前端·人工智能
羲云9 小时前
Claude 越界事件之后:Agent 权限设计为什么不能只靠提示词
前端