CSS3新特性
CSS3引入了许多新特性,增强了样式设计的能力,以下是一些主要特性:
1. 选择器增强
-
属性选择器:
[attr^="value"]:匹配属性值以value开头的元素。[attr$="value"]:匹配属性值以value结尾的元素。[attr*="value"]:匹配属性值包含value的元素。[attr~="value"]:匹配属性值包含单词value的元素。[attr|="value"]:匹配属性值以value或value-开头的元素。
-
伪类选择器:
:nth-child(n)、:nth-last-child(n):匹配第n个子元素。:nth-of-type(n)、:nth-last-of-type(n):匹配第n个特定类型的子元素。:first-child、:last-child:匹配第一个或最后一个子元素。:first-of-type、:last-of-type:匹配第一个或最后一个特定类型的子元素。:not(selector):排除匹配指定选择器的元素。
-
伪元素:
::before、::after:在元素内容前后插入内容。::first-line、::first-letter:选择元素的第一行或第一个字母。
2. 盒模型增强
-
box-sizing:content-box:默认值,宽度和高度仅包含内容。border-box:宽度和高度包含内容、内边距和边框。
-
resize:- 允许用户调整元素大小(如
textarea)。 - 可选值:
none、both、horizontal、vertical。
- 允许用户调整元素大小(如
-
outline:- 类似于边框,但不占用布局空间。
outline-offset:设置轮廓与边框的偏移距离。
3. 背景与边框
-
多背景:
- 支持为一个元素设置多个背景图像。
background: url(image1.png) top left no-repeat, url(image2.png) bottom right no-repeat; -
背景裁剪:
background-clip:控制背景的显示区域(如border-box、padding-box、content-box)。
-
背景原点:
background-origin:控制背景的定位起点(如border-box、padding-box、content-box)。
-
渐变背景:
- 线性渐变:
linear-gradient(direction, color-stop1, color-stop2, ...)。 - 径向渐变:
radial-gradient(shape size at position, color-stop1, color-stop2, ...)。
- 线性渐变:
-
圆角边框:
border-radius:设置元素的圆角。- 支持单独设置四个角的半径。
-
边框图片:
border-image:使用图像作为边框。
border-image: url(border.png) 30 round;
4. 文本效果
-
文本阴影:
text-shadow:为文本添加阴影。
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); -
文本溢出:
text-overflow:控制文本溢出时的显示方式(如ellipsis显示省略号)。
-
多列布局:
column-count:将内容分为多列。column-gap:设置列间距。column-rule:设置列之间的分隔线。
-
换行与断字:
word-wrap:允许长单词换行(如break-word)。word-break:控制单词断行方式(如break-all)。
5. 动画与过渡
-
过渡效果:
transition:定义属性变化的过渡效果。
transition: property duration timing-function delay; -
动画:
@keyframes:定义动画的关键帧。animation:应用动画。
@keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(100px); } } animation: slide 2s ease-in-out infinite;
6. 2D/3D 变换
-
2D 变换:
translate()、rotate()、scale()、skew()。
transform: translate(50px, 100px) rotate(45deg); -
3D 变换:
translate3d()、rotate3d()、scale3d()。perspective:设置3D透视效果。
7. 弹性盒子布局(Flexbox)
-
容器属性:
display: flex:启用弹性布局。flex-direction:设置主轴方向(如row、column)。justify-content:主轴对齐方式(如center、space-between)。align-items:交叉轴对齐方式(如center、stretch)。
-
子项属性:
flex-grow:定义子项的放大比例。flex-shrink:定义子项的缩小比例。flex-basis:定义子项的基础大小。
8. 网格布局(Grid)
-
容器属性:
display: grid:启用网格布局。grid-template-columns、grid-template-rows:定义列和行的尺寸。gap:设置网格间距。
-
子项属性:
grid-column、grid-row:定义子项在网格中的位置。
9. 媒体查询
-
响应式设计:
- 根据设备特性(如屏幕宽度、分辨率)应用不同样式。
@media screen and (max-width: 768px) { body { font-size: 14px; } }
10. 其他特性
-
自定义字体:
@font-face:引入自定义字体。
@font-face { font-family: 'MyFont'; src: url('myfont.woff2') format('woff2'); } -
变量(CSS Variables):
- 定义和使用变量。
:root { --main-color: #3498db; } body { color: var(--main-color); } -
滤镜效果:
filter:应用滤镜(如blur()、grayscale())。
filter: blur(5px) grayscale(50%);
总结
CSS3 提供了丰富的特性,使开发者能够更灵活地实现复杂的布局、动画和视觉效果,同时支持响应式设计和性能优化。
更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github