CSS 从大图中选取部分区域作为目标图标
从大图中选取部分区域作为目标图标
by:授客 QQ:1033553122
1、图片素材
图片素材如下(大小:137px * 264px),图中从上到下,连续存放了两张100px * 100px的图
2、HTML代码
html代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
.icon {
width:100px; /*--设置背景图显示区域宽度--*/
height:100px;/*--设置背景图显示区域高度--*/
border:1px solid red;
background-image:url(icons.png); /*--设置背景图像--*/
/*--no-repeat 不允许图像在任何方向上平铺,repeat-y,repeat-x分别允许图片在y,x方向上平铺--*/
background-repeat:no-repeat;
}
</style>
</head>
<body>
<div class="icon up"><p>图片上半部分</div>
<div class="icon down"><p>图片下半部分</p></div>
</body>
</html>
显示效果:

修改代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
.icon {
width:100px; /*--设置背景图显示区域宽度--*/
height:100px;/*--设置背景图显示区域高度--*/
border:1px solid red;
background-image:url(icons.png); /*--设置背景图像--*/
/*--no-repeat 不允许图像在任何方向上平铺,repeat-y,repeat-x分别允许图片在y,x方向上平铺--*/
background-repeat:no-repeat;
}
.up {
background-position: 0px 0px;
}
.down {
background-position: 0px -100px;
}
</style>
</head>
<body>
<p>图片上半部分</p>
<div class="icon up"></div>
<p>图片下半部分</p>
<div class="icon down"></div>
</body>
</html>
显示效果:

3、总结
载入背景图片,根据需要设置展示区宽度和高度,及背景图片的位置,让其目标图片内容“恰好落在”展示区,其中主要是利用了background-position的一些特性,图解如下


说明:
background-position:0 0
背景图片的左上角和所在容器左上角对齐,超出的部分隐藏。等同于 background-position: left top、background-position:0% 0%
background-position: 100% 100%
背景图片的右下角和所在容器的右下角对齐,超出的部分隐藏。等同于background- positon: right bottom、background-positon:容器(container)的宽度-背景图片的宽度,容器 (container)的高度-背景图片的高度
background-position: 0 -100px;。
背景图片从所在容器左上角的地方向上移动100px,超出的部分隐藏。
background-position: 20 18x;。
背景图片从所在容器左上角的地方向右移20px,向下移18px,超出的部分隐藏。
background-position: -20 -18x;。
背景图片从所在容器左上角的地方向左移-20px,向上移-18px,超出的部分隐藏。
参考链接:
http://www.w3school.com.cn/css/css_background.asp
http://www.w3school.com.cn/cssref/pr_background-position.asp
CSS 从大图中选取部分区域作为目标图标的更多相关文章
- CSS从大图中抠取小图完整教程(background-position应用)
CSS从大图中抠取小图完整教程(background-position应用) 转自: http://www.cnblogs.com/iyangyuan/archive/2013/06/01/3111 ...
- CSS从大图中抠取小图完整教程(background-position应用) (转)
自认为把background-position的应用讲得非常通俗易懂的教材.做个记号. 相信很多喜欢研究网页界面的童鞋都遇到过一个奇妙的现象:网页中很多图片素材被合成在一张图片上. 起初小菜模仿网站的 ...
- CSS从大图中抠图然后显示其中的一部分
相信大家在使用css时会遇到一个情况吧 就是一张大图片里面什么都有 各种图标都有 然而自己就是不太会使用其中的小图标 这是我最近的一次学习 首先上图 这么大一张图片 那么这么使其只显示一部分 并且为我 ...
- CSS和SVG中的剪切——clip-path属性和<clipPath>元素
剪切是什么 剪切是一个图形化操作,你可以部分或者完全隐藏一个元素.被剪切的元素可以是一个容器也可以是一个图像元素.元素的哪些部分显示或隐藏是由剪切的路径来决定的. 剪切路径定义了一个区域,在这个区域内 ...
- CSS+DIV布局中absolute和relative区别
原文:http://developer.51cto.com/art/201009/225201.htm 这里向大家简单介绍一下CSS+DIV布局中absolute和relative属性的用法和区别,定 ...
- 【转】CSS和SVG中的剪切——clip-path属性和<clipPath>元素
本文由大漠根据SaraSoueidan的<Clipping in CSS and SVG – The clip-path Property and <clipPath> Elemen ...
- CSS盒子模型中()是透明的,这部分可以显示背景()
CSS盒子模型中()是透明的,这部分可以显示背景() border margin padding content 我的理解: · Margin(外边距) - 清除边框外的区域,外边距是透明 ...
- C#从大图中截取一部分图片
#region 从大图中截取一部分图片 /// <summary> /// 从大图中截取一部分图片 /// </summary> /// <param name=&quo ...
- 前端开发css实战:使用css制作网页中的多级菜单
前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简 ...
随机推荐
- oracle创建索引
数据库索引是为了提高查询速度的一种数据结构. 索引的创建语句 索引的创建语句非常简单. CREATE INDEX 索引名 ON 表名(列名); 除了单列索引,还可以创建包含多个列的复合索引. CREA ...
- visualStudio 的一些常用使用操作总结
今年苟了差不多一整年,期间断断续续把c++ prime plus 看完了 ,发现并没有什么鸟用 ,但是对代码怎么形成二进制的过程 动态内存管理 这些模模糊糊的确实理解更深刻些了 特别是c++过度到c# ...
- Idea集成及使用svn插件
1 idea集成svn 1.1 svn是什么? SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资 ...
- springmvc: No converter found for return value of type
刚开始学习springmvc的童鞋,相信很多都需要过这种情况,报错信息如下 org.springframework.http.converter.HttpMessageNotWritableExcep ...
- JavaScript图形实例:布纹图案
1.椭圆型布纹图案 先在HTML页面中设置一个画布. <canvas id="myCanvas" width="300" height="300 ...
- 【原创】flash中DataGrid数据列显示顺序的解决办法(非数据排序)
今天在用flash做一个简单的地图展示功能,需要把xml绑定到DataGrid,完成后,又仔细看了几遍,发现列的顺序不对,准确的说是不稳定,不固定,于是在网上查了一下,没有相关的内容.于是自己研究了一 ...
- How to: Display a List of Non-Persistent Objects in a Popup Dialog 如何:在弹出对话框中显示非持久化对象列表
This example demonstrates how to populate and display a list of objects that are not bound to the da ...
- javascript中常见的几种循环遍历
项目开发中,不管是建立在哪个框架基础上,对数据的处理都是必须的,而处理数据离不开各种遍历循环.javascript中循环遍历有很多种方式,记录下几种常见的js循环遍历. 一.for循环 for循环应该 ...
- Html5 小游戏 俄罗斯方块
导言 在一个风和日丽的一天,看完了疯狂HTML 5+CSS 3+JavaScript讲义,跟着做了书里最后一章的俄罗斯方块小游戏,并做了一些改进,作为自己前端学习的第一站. 游戏效果: 制作思路 因为 ...
- QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案
转载请声明:博客园 @秋意正寒 升级你的QGIS到3.8或以上 这在3.4.x和3.6.x都存在同样的问题.在老版本QGIS重,如果新建一个GeoPackage,先存入栅格数据就没有这个问题,但是如果 ...