当前位置:首页 > CSS

css油画制作

2026-04-01 06:35:13CSS

使用CSS制作油画效果

通过CSS的滤镜和混合模式可以模拟油画的质感,结合背景纹理和颜色调整实现类似效果。

创建基础油画纹理 在HTML中准备一个容器元素,例如<div class="oil-painting"></div>,通过CSS添加纹理背景:

.oil-painting {
  width: 500px;
  height: 400px;
  background: url('canvas-texture.jpg');
  background-size: cover;
}

应用滤镜组合 使用filter属性叠加多个效果,模拟油画的笔触和色彩层次:

.oil-painting {
  filter: 
    blur(1px) 
    contrast(1.2) 
    saturate(1.5);
}

添加笔触效果 通过伪元素和混合模式创建不规则笔触:

css油画制作

.oil-painting::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, transparent 40%, rgba(255,255,255,0.1) 50%);
  mix-blend-mode: overlay;
}

动态油画效果实现

结合CSS动画和JavaScript可实现动态变化的油画风格。

关键帧动画 定义色彩波动的动画:

css油画制作

@keyframes oil-color-shift {
  0% { filter: hue-rotate(0deg); }
  50% { filter: hue-rotate(15deg); }
  100% { filter: hue-rotate(0deg); }
}

交互控制 通过事件监听调整效果强度:

document.querySelector('.oil-painting').addEventListener('mousemove', (e) => {
  const x = e.clientX / window.innerWidth;
  e.target.style.filter = `blur(${x * 2}px) contrast(${1 + x})`;
});

进阶技巧:SVG滤镜

使用SVG滤镜创建更复杂的油画效果,需在HTML中嵌入SVG滤镜定义:

<svg hidden>
  <filter id="oil-paint">
    <feTurbulence type="fractalNoise" baseFrequency="0.02" numOctaves="3"/>
    <feDisplacementMap in="SourceGraphic" scale="10" xChannelSelector="R" yChannelSelector="G"/>
  </filter>
</svg>

应用SVG滤镜到CSS:

.oil-painting {
  filter: url(#oil-paint);
}

这种方法通过噪声算法生成更自然的笔触纹理,适合需要高精度控制的场景。注意调整baseFrequencyscale参数可获得不同风格的油画效果。

标签: 油画css
分享给朋友:

相关文章

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

css导航制作ppt

css导航制作ppt

CSS导航制作PPT的方法 使用CSS制作导航菜单,并将其应用于PPT演示中,可以通过以下方法实现: 设计导航菜单结构 在HTML中创建导航菜单的基本结构,通常使用<ul>和<li…

制作css开关

制作css开关

使用纯CSS创建开关 HTML结构需要包含一个隐藏的复选框和一个关联的标签元素: <label class="switch"> <input type="checkbox"&g…

css制作春联

css制作春联

使用CSS制作春联的方法 基础布局与样式 春联通常由一对垂直排列的红色对联和顶部的横批组成。使用CSS的flexbox布局可以轻松实现这种结构。创建一个父容器,内部包含三个子元素:横批、上联和下联。…

css导航制作

css导航制作

水平导航栏制作 使用无序列表 <ul> 和 <li> 标签构建基础结构,通过 CSS 移除默认样式并设置横向排列: <ul class="horizontal-nav"…

css动画制作

css动画制作

CSS动画基础语法 CSS动画通过@keyframes规则定义动画序列,结合animation属性实现动态效果。以下是一个基础示例: @keyframes example { 0% {bac…