CSS3 引入了许多新特性,以增强样式设计和页面布局的能力,提供更多的视觉效果和交互性。以下是一些 CSS3 中的新特性:
- 圆角边框(Border Radius):圆角的边框,而不是传统的方形边框。
<!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>
效果如下:
- 阴影(Box Shadow):元素添加投影效果,使元素看起来浮在页面上。
// 取值含义
// 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>
效果如下:
- 渐变背景(Gradient Backgrounds):可以使用线性渐变或径向渐变来创建复杂的背景效果。
.element {
width: 200px;
height: 50px;
background: goldenrod;
background: linear-gradient(to right, #ffcc00, #ff6600);
}
效果如下:
- 多列布局(Multi-column Layout):使文本内容可以在多个列中显示,以改善页面布局。
<!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>
效果如下:
- 媒体查询(Media Queries):可以根据不同的屏幕尺寸和设备特性来应用不同的样式。响应式常用的方法
@media screen and (max-width: 600px) {
/* 在小屏幕下应用的样式 */
}
- 2D 转换(2D Transforms):可以对元素进行旋转、缩放、平移和倾斜等变换操作。
.element {
transform: rotate(45deg) scale(1.5);
}
- 3D 转换(3D Transforms):元素在三维空间中进行变换,创建更立体的效果。
.element {
width: 200px;
height: 50px;
background: goldenrod;
transform: translate3d(50px, 20px, 30px) rotate3d(1, 1, 0, 45deg);
}
效果如下:
- 过渡(Transitions):允许你在元素状态之间创建平滑的过渡效果,例如鼠标悬停时改变颜色或大小。
.element {
transition: all 0.3s ease-in-out;
}
.element:hover {
transform: scale(1.2);
}
- 动画(Animations):可以创建复杂的动画效果,通过
@keyframes
规则定义动画序列。
@keyframes slide {
0% {
transform: translateX(0);
}
100% {
transform: translateX(100px);
}
}
.element {
animation: slide 2s ease-in-out infinite;
}
- 自定义字体(Web Fonts):使用
@font-face
规则,可以引入自定义字体,以实现更多字体选择。
@font-face {
font-family: 'MyFont';
src: url('myfont.woff') format('woff');
}
.element {
font-family: 'MyFont', sans-serif;
}
- 弹性盒子布局(Flexbox):提供了一种更直观的方式来布局元素,特别适用于创建响应式设计和复杂的布局结构。
.container {
display: flex;
justify-content: center;
align-items: center;
}
- 网格布局(Grid Layout):允许你创建多行和多列的网格布局,以更精确地控制页面布局。
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-gap: 10px;
}
- 过滤效果(Filter Effects):可以通过
filter
属性为元素应用滤镜效果,如模糊、饱和度、对比度等。
.element {
filter: blur(5px);
}
- 混合模式(Blend Modes):通过
mix-blend-mode
属性可以控制元素与其背景之间的混合模式,创建各种视觉效果。
.element {
mix-blend-mode: overlay;
}
- 自定义属性(Custom Properties):允许你创建自定义的 CSS 变量,以便在整个样式表中共享和重复使用值。
:root {
--main-color: #3498db;
}
.element {
background-color: var(--main-color);
}
- 多列文本(Multicolumn Text):使用
column-count
和column-gap
等属性,可以将文本内容分成多列。
.element {
column-count: 2;
column-gap: 20px;
}
17. **背景图像大小(Background Image Size)**:可以通过 `background-size` 属性控制背景图像的尺寸,以适应元素大小。
```css
.element {
background-image: url('image.jpg');
background-size: cover;
}
- 用户界面控件伪类(UI Pseudo-classes):包括
:checked
、:disabled
、:focus
等伪类,用于根据用户界面控件的状态应用样式。
input:checked + label {
font-weight: bold;
}
- 变量字体(Variable Fonts):使用变量字体,可以在单一字体文件中包含多个字体样式,如粗体、斜体等,以减少字体文件的加载。
.element {
font-family: 'MyVariableFont', sans-serif;
font-variation-settings: 'wght' 600, 'ital' 1;
}
- 伪元素(Pseudo-elements):包括
::before
和::after
等伪元素,允许你在元素的内容之前或之后插入内容。
.element::before {
content: '>';
}
.element::after {
content: '<';
}
- 对象适应性(Object Fit):用于调整图像或视频等替换元素的大小和位置以适应容器。
img {
object-fit: cover;
}
- 文字换行(Word Break):控制文本的自动换行方式,以处理不同语言和文本内容的换行需求。
.element {
word-break: break-all;
}
- 柔性文本溢出(Text Overflow):用于处理文本内容溢出容器时的显示方式,如省略号表示截断。
.element {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
- 定位(Positioning):使用
position
和z-index
属性,可以更精确地控制元素的定位和层叠顺序。
.element {
position: absolute;
top: 0;
left: 0;
z-index: 2;
}
- 自适应大小(Viewport Units):使用相对于视口大小的单位,如
vw
(视口宽度)和vh
(视口高度),来创建响应式设计。
.element {
width: 50vw;
height: 50vh;
}
以上只是总结的部分新特性