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: .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