本实例演示了如何结合 CSS 和 JavaScript 来一起渲染图片。
首先,我们使用 CSS 来创建 modal 窗口 (对话框), 默认是隐藏的。
然后,我们使用 JavaScript 来显示模态窗口,当我们点击图片时,图片会在弹出的窗口中显示:
实例
// 获取模态窗口
var modal = document.getElementById('myModal');
// 获取图片模态框,alt 属性作为图片弹出中文本描述
var img = document.getElementById('myImg');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
modal.style.display = "block";
modalImg.src = this.src;
modalImg.alt = this.alt;
captionText.innerHTML = this.alt;
}
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
响应式图片相册
实例
.responsive {
padding: 0 6px;
float: left;
width: 24.99999%;
}
@media only screen and (max-width: 700px){
.responsive {
width: 49.99999%;
margin: 6px 0;
}
}
@media only screen and (max-width: 500px){
.responsive {
width: 100%;
}
}
CSS filter 属性用为元素添加可视效果 (例如:模糊与饱和度) 。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>W3Cschool教程(w3cschool.cn)</title>
<style>
img {
width: 33%;
height: auto;
float: left;
max-width: 235px;
}
.blur {-webkit-filter: blur(4px);filter: blur(4px);}高斯模糊
.brightness {-webkit-filter: brightness(250%);filter: brightness(250%);}使其看起来更亮或更暗
.contrast {-webkit-filter: contrast(180%);filter: contrast(180%);}对比度
.grayscale {-webkit-filter: grayscale(100%);filter: grayscale(100%);}转换为灰度图像
.huerotate {-webkit-filter: hue-rotate(180deg);filter: hue-rotate(180deg);}色相旋转
.invert {-webkit-filter: invert(100%);filter: invert(100%);}反转输入图像
.opacity {-webkit-filter: opacity(50%);filter: opacity(50%);}透明程度
.saturate {-webkit-filter: saturate(7); filter: saturate(7);}图像饱和度
.sepia {-webkit-filter: sepia(100%);filter: sepia(100%);}转换为深褐色
.shadow {-webkit-filter: drop-shadow(8px 8px 10px green);filter: drop-shadow(8px 8px 10px green);}
</style>
</head>
<body>
<p><strong>注意:</strong> Internet Explorer <span lang="no-bok">或 Safari 5.1 (及更早版本)</span> 不支持该属性。</p>
<img src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="blur" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="brightness" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="contrast" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="grayscale" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="huerotate" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="invert" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="opacity" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="saturate" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="sepia" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
<img class="shadow" src="/statics/images/pineapple.jpg" alt="Pineapple" width="300" height="300">
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>W3Cschool教程(w3cschool.cn)</title>
<style>
body {margin:25px;}
div.polaroid {
width: 80%;
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;
}
div.container {
text-align: center;
padding: 10px 20px;
}
</style>
</head>
<body>
<h2>响应式卡片</h2>
<div class="polaroid">
<img src="/statics/images/course/rock600x400.jpg" alt="Norway" style="width:100%">
<div class="container">
<p>The Troll's tongue in Hardanger, Norway</p>
</div>
</div>
<div class="polaroid">
<img src="/statics/images/course/lights600x400.jpg" alt="Norway" style="width:100%">
<div class="container">
<p>Northern Lights in Norway</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>W3Cschool教程(w3cschool.cn)</title>
<style>
.container {
position: relative;
}
.topleft {
position: absolute;
top: 8px;
left: 16px;
font-size: 18px;
}
img {
width: 100%;
height: auto;
opacity: 0.3;
}
</style>
</head>
<body>
<h2>图片文本</h2>
<p>在图片左上角添加文本信息:</p>
<div class="container">
<img src="/statics/images/course/trolltunga.jpg" alt="Norway" width="1000" height="300">
<div class="topleft">左上角</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>W3Cschool教程(w3cschool.cn)</title>
<style>
img {
max-width: 100%;
height: auto;
}
</style>
</head>
<body>
<h2>响应式图片</h2>
<p>响应式图片会自动适配各种尺寸的屏幕。</p>
<p>通过重置浏览器大小查看效果:</p>
<img src="/statics/images/course/trolltunga.jpg" alt="Norway" width="1000" height="300">
</body>
</html>
我们使用 border 属性来创建缩略图。
实例
img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
}
<img src="paris.jpg" alt="Paris">
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>W3Cschool教程(w3cschool.cn)</title>
<style>
a {
display: inline-block;
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
transition: 0.3s;
}
a:hover {
box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
}
</style>
</head>
<body>
<h2>缩略图作为连接</h2>
<p>我们使用 border 属性来创建缩略图。在图片外层添加一个链接。</p>
<p>点击图片查看效果:</p>
<a target="_blank" href="paris.jpg">
<img src="/statics/images/course/paris.jpg" alt="Paris" width="400" height="300">
</a>
</body>
</html>
圆角图片
实例
圆角图片:
img {
border-radius: 8px;
}
实例
椭圆形图片:
img {
border-radius: 50%;
}
<img src="smiley-2.gif" alt="Smiley face" width="42" height="42">
<img src="/statics/images/course/planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap">
<map name="planetmap">
<area shape="rect" coords="0,0,82,126" target="_blank" alt="Sun" href="/statics/images/course/sun.gif">
<area shape="circle" coords="90,58,3" target="_blank" alt="Mercury" href="/statics/images/course/merglobe.gif">
<area shape="circle" coords="124,58,8" target="_blank" alt="Venus" href="/statics/images/course/venglobe.gif">
</map>