CSS3新特性

73 阅读4分钟

CSS3新特性

CSS3引入了许多新特性,增强了样式设计的能力,以下是一些主要特性:

1. 选择器增强

  • 属性选择器

    • [attr^="value"]:匹配属性值以value开头的元素。
    • [attr$="value"]:匹配属性值以value结尾的元素。
    • [attr*="value"]:匹配属性值包含value的元素。
    • [attr~="value"]:匹配属性值包含单词value的元素。
    • [attr|="value"]:匹配属性值以valuevalue-开头的元素。
  • 伪类选择器

    • :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)。
    • 可选值:nonebothhorizontalvertical
  • outline

    • 类似于边框,但不占用布局空间。
    • outline-offset:设置轮廓与边框的偏移距离。

3. 背景与边框

  • 多背景

    • 支持为一个元素设置多个背景图像。
    background: url(image1.png) top left no-repeat, 
                url(image2.png) bottom right no-repeat;
    
  • 背景裁剪

    • background-clip:控制背景的显示区域(如border-boxpadding-boxcontent-box)。
  • 背景原点

    • background-origin:控制背景的定位起点(如border-boxpadding-boxcontent-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:设置主轴方向(如rowcolumn)。
    • justify-content:主轴对齐方式(如centerspace-between)。
    • align-items:交叉轴对齐方式(如centerstretch)。
  • 子项属性

    • flex-grow:定义子项的放大比例。
    • flex-shrink:定义子项的缩小比例。
    • flex-basis:定义子项的基础大小。

8. 网格布局(Grid)

  • 容器属性

    • display: grid:启用网格布局。
    • grid-template-columnsgrid-template-rows:定义列和行的尺寸。
    • gap:设置网格间距。
  • 子项属性

    • grid-columngrid-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