CSS - 图片样式

你好,有抱负的网页设计师们!今天,我们将踏上一段激动人心的旅程,探索CSS图片样式的世界。作为你友好的计算机老师邻居,我非常高兴能引导你完成这次冒险。记住,就像学习骑自行车一样,掌握CSS需要练习,但我保证这会很有趣!

CSS - Style Images

CSS 图片样式 - 圆角图片

让我们从一个简单而优雅的开始:圆角图片。你知道我们如何在生活中软化边缘吗?嗯,我们也可以对图片这样做!

<img src="cute_puppy.jpg" alt="可爱的小狗" class="rounded-image">
.rounded-image {
border-radius: 25px;
}

在这个例子中,我们告诉浏览器将图片的角落圆化25像素。这就像给图片理了个小发式!你可以调整这个值,使角落更圆或更尖。

CSS 图片样式 - 圆形图片

现在,让我们更进一步,把图片变成完美的圆形。这对于个人头像或任何你想聚焦中心的图片来说都很棒。

<img src="profile_pic.jpg" alt="个人照片" class="circle-image">
.circle-image {
border-radius: 50%;
width: 200px;
height: 200px;
object-fit: cover;
}

这里的魔法在于:border-radius: 50% 将我们的方形图片变成了圆形。我们设置了一个固定的宽度和高度,object-fit: cover 确保图片填充圆形而不变形。

CSS 图片样式 - 缩略图

缩略图就像是图片世界的电影预告片 - 小小的预览,给你一个完整图片的滋味。让我们来创建一些!

<img src="landscape.jpg" alt="美丽的风景" class="thumbnail">
.thumbnail {
width: 100px;
height: 100px;
object-fit: cover;
border: 2px solid #ddd;
border-radius: 4px;
padding: 5px;
}

这个CSS创建了一个小方形的缩略图,有一个整洁的边框。object-fit: cover 属性确保图片填充缩略图区域而不变形。

CSS 图片样式 - 缩略图作为链接

让我们让缩略图变得可点击!这对于图片库或产品列表来说非常完美。

<a href="full_image.jpg">
<img src="thumbnail.jpg" alt="点击放大" class="thumbnail-link">
</a>
.thumbnail-link {
width: 100px;
height: 100px;
object-fit: cover;
border: 2px solid #ddd;
border-radius: 4px;
padding: 5px;
transition: transform 0.3s ease;
}

.thumbnail-link:hover {
transform: scale(1.1);
}

我们在这里添加了一个酷炫的悬停效果。当鼠标悬停在缩略图上时,它会稍微放大,给人一种很好的交互感。

CSS 图片样式 - 响应式图片

在今天的多设备世界中,我们需要我们的图片在所有屏幕尺寸上都看起来很好。让我们使我们的图片响应式!

<img src="scenery.jpg" alt="美丽的风景" class="responsive-image">
.responsive-image {
max-width: 100%;
height: auto;
}

这个简单的CSS确保我们的图片永远不会比其容器更宽,高度会相应调整。这就好比有一个知道在任何情况下如何表现的图片!

CSS 图片样式 - 居中图片

居中图片可能会有点棘手,但我有一个简单的方法。就像教你的图片站在舞台中央一样!

<div class="image-container">
<img src="centered_image.jpg" alt="居中的图片" class="center-image">
</div>
.image-container {
text-align: center;
}

.center-image {
display: block;
margin-left: auto;
margin-right: auto;
width: 50%;
}

这种方法适用于内联和块级图片。容器上的 text-align: center 帮助内联图片居中,而 margin: auto 则使块级图片居中。

CSS 图片样式 - 宝丽来图片/卡片

记得宝丽来相机吗?让我们用CSS重现那种经典的外观!

<div class="polaroid">
<img src="vacation.jpg" alt="假期记忆">
<div class="caption">2023年夏天</div>
</div>
.polaroid {
width: 250px;
background-color: white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
margin-bottom: 25px;
}

.polaroid img {
width: 100%;
}

.caption {
text-align: center;
padding: 10px 20px;
}

这个CSS在图片周围创建了一个白色边框,并添加了一个微妙的阴影效果,营造出3D效果。标题位于图片下方,就像真正的宝丽来一样!

CSS 图片样式 - 透明图片

有时,我们希望图片具有透明度。这就像给图片赋予了一种幽灵般的特质!

<img src="logo.png" alt="公司标志" class="transparent-image">
.transparent-image {
opacity: 0.5;
}

opacity 属性的范围从 0(完全透明)到 1(完全不透明)。你可以调整这个值以达到所需的透明度。

CSS 图片样式 - 文本居中

让我们在图片中间放一些文本。就像创建你自己的励志海报一样!

<div class="image-text-container">
<img src="background.jpg" alt="背景图片">
<div class="centered-text">你的文本在这里</div>
</div>
.image-text-container {
position: relative;
text-align: center;
color: white;
}

.centered-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

这个CSS使用定位将文本精确地放置在图片中心。transform 属性确保文本在垂直和水平方向上居中。

CSS 图片样式 - 滤镜

CSS滤镜就像Instagram对你的网页图片一样。让我们玩转一些滤镜!

<img src="landscape.jpg" alt="风景" class="filtered-image">
.filtered-image {
filter: grayscale(100%) brightness(150%) contrast(120%);
}

这个例子应用了多个滤镜:它将图片转换为灰度,增加亮度,并增强对比度。你可以混合搭配不同的滤镜来创建独特的效果!

这里有一些常见的CSS图片滤镜:

滤镜 描述 示例
grayscale() 将图片转换为灰度 filter: grayscale(100%);
sepia() 将图片转换为棕褐色 filter: sepia(60%);
saturate() 提高图片的饱和度 filter: saturate(200%);
hue-rotate() 应用色相旋转 filter: hue-rotate(90deg);
invert() 反转图片颜色 filter: invert(75%);
opacity() 设置图片的透明度 filter: opacity(25%);
brightness() 调整图片的亮度 filter: brightness(150%);
contrast() 调整图片的对比度 filter: contrast(200%);
blur() 应用模糊效果 filter: blur(5px);

CSS 图片样式 - 淡入覆盖

让我们创建一个效果,当鼠标悬停在图片上时,文本会淡入。这就像揭示一个秘密信息!

<div class="image-overlay">
<img src="product.jpg" alt="产品图片">
<div class="overlay">
<div class="text">产品描述</div>
</div>
</div>
.image-overlay {
position: relative;
width: 50%;
}

.image-overlay img {
display: block;
width: 100%;
height: auto;
}

.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
opacity: 0;
transition: 0.5s ease;
background-color: rgba(0,0,0,0.5);
}

.image-overlay:hover .overlay {
opacity: 1;
}

.text {
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}

这个CSS创建了一个暗色覆盖层,在鼠标悬停在图片上时会淡入,显示文本。

CSS 图片样式 - 滑入效果

现在,让我们为图片标题创建一个滑入效果。这就像拉开窗帘,展示明星一样!

<div class="slide-container">
<img src="nature.jpg" alt="自然场景" class="slide-image">
<div class="slide-caption">美丽的自然</div>
</div>
.slide-container {
position: relative;
overflow: hidden;
}

.slide-image {
display: block;
width: 100%;
height: auto;
}

.slide-caption {
position: absolute;
bottom: 0;
left: 100%;
background-color: rgba(0,0,0,0.5);
color: white;
padding: 10px;
transition: 0.5s ease;
width: 100%;
}

.slide-container:hover .slide-caption {
left: 0;
}

这个CSS将标题隐藏在屏幕外,并在鼠标悬停在图片上时从右侧滑入。

CSS 图片样式 - 翻转图片

让我们添加一些翻转效果!这就像给图片的背面一个后台通行证,展示它的反面。

<div class="flip-container">
<div class="flipper">
<div class="front">
<img src="front.jpg" alt="正面">
</div>
<div class="back">
<img src="back.jpg" alt="背面">
</div>
</div>
</div>
.flip-container {
width: 300px;
height: 200px;
perspective: 1000px;
}

.flipper {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.8s;
transform-style: preserve-3d;
}

.flip-container:hover .flipper {
transform: rotateY(180deg);
}

.front, .back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}

.back {
transform: rotateY(180deg);
}

这个CSS创建了一个3D翻转效果,当鼠标悬停在容器上时,正面图片会翻转以显示背面图片。

CSS 图片样式 - 响应式图片库

让我们把我们的技能结合起来,创建一个响应式图片库。这就像策划你自己的迷你艺术展!

<div class="gallery">
<img src="img1.jpg" alt="画廊图片 1">
<img src="img2.jpg" alt="画廊图片 2">
<img src="img3.jpg" alt="画廊图片 3">
<img src="img4.jpg" alt="画廊图片 4">
</div>
.gallery {
display: flex;
flex-wrap: wrap;
padding: 0 4px;
}

.gallery img {
margin-top: 8px;
vertical-align: middle;
width: 100%;
}

@media screen and (min-width: 600px) {
.gallery img {
width: 49%;
margin: 0.5%;
}
}

@media screen and (min-width: 1000px) {
.gallery img {
width: 24%;
margin: 0.5%;
}
}

这个CSS创建了一个灵活的画廊,根据屏幕大小进行调整。在小屏幕上,图片垂直堆叠。在中等屏幕上,它们形成两列,在大型屏幕上,它们形成四列。

CSS 图片样式 - 图片模态

最后,让我们创建一个在点击图片时弹出的模态。这就像给图片一个自己的聚光灯时刻!

<img src="thumbnail.jpg" alt="点击放大" class="modal-trigger" onclick="openModal(this)">

<div id="imageModal" class="modal">
<span class="close" onclick="closeModal()">&times;</span>
<img class="modal-content" id="modalImage">
</div>
.modal-trigger {
cursor: pointer;
transition: 0.3s;
}

.modal-trigger:hover {opacity: 0.7;}

.modal {
display: none;
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.9);
}

.modal-content {
margin: auto;
display: block;
width: 80%;
max-width: 700px;
}

.close {
position: absolute;
top: 15px;
right: 35px;
color: #f1f1f1;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}

.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
function openModal(img) {
var modal = document.getElementById("imageModal");
var modalImg = document.getElementById("modalImage");
modal.style.display = "block";
modalImg.src = img.src;
}

function closeModal() {
document.getElementById("imageModal").style.display = "none";
}

这个HTML、CSS和JavaScript的组合创建了一个模态,当点击图片时,它会打开并显示图片的更大版本。

就这样,朋友们!我们已经完成了CSS图片样式的精彩旅程。记住,掌握这些技巧的关键是练习。所以,继续练习,玩转这些例子,混合搭配,创造属于你自己的独特作品。快乐编码!

Credits: Image by storyset