css3中transform属性实现平移与变形

0×1.元素平移

让元素在页面显示中产生位移有很多方法,可以利用块状元素合模型,也可以利用相对和绝对坐标,这一小节给大家介绍css提供的两个元素移动属性:vertical-align和transform;transform为css3标准提供的新属性。

a.内联元素垂直平移
内联元素的平移遵循下面的法则:

默认情况下,元素移动,负值往下,正值往上;
如果默认基线在上面,用负数;
如果默认基线在下面,用正值;

下面用一个实例来演示上面这三条法则:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>内联元素垂直平移实例</title>

 <style type="text/css">
  <!--设置div的宽高背景色-->
  #d1{
   width: 250px;
   height: 150px;
   background-color: pink;
   color: black;
  }
  <!--默认情况下div中span的基准线在上方,所以使用负值让div中的span元素往下移动50px-->
  #d1 span{
   vertical-align: -50px;
  }
  <!--不允许调整textarea大小-->
  #tx1{
   resize: none;
  }
  <!--在textarea文本框前面的span,默认基准线在下方(与textarea的底部对齐),所以使用正值,让span标签往上移动35px-->
  #sp1{
   vertical-align: 35px;
  }
 </style>
</head>
<body>
 <div id="d1">
  <span>www.111cn.net</span>
 </div>
 <br>
 <span id="sp1">自我介绍:</span><textarea name="myself" id="tx1" cols="10" rows="5"></textarea>
</body>
</html>

显示效果:

www.111cn.net
自我介绍: 
b.块状元素平移
所有内联元素都可以使用display属性转换成块状元素,然后使用本节内容介绍的平移方法,transform属性是css3提供的新属性,请看下面的实例:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>块状元素平移实例</title>

 <style type="text/css">
  #d1{
   width: 250px;
   height: 250px;
   background-color: pink;
  }
  <!--未设置平移前,d2应该紧贴着d1上左边框,本例让d2往右偏移50px,往下偏移100px(如果是负值就是往反方向),若是想单独设置一个方向上的平移,可以将不需要设置的方向上的值用0px代替,例如transform:translate(50px,0px);,除此之外css还提供了两个子属性translateX和translateY,分别用于设置X方向(左右,正右负左)和Y方向(上下,正下负上)上的偏移量。-->
  #d2{
   background-color: green;
   width: 50px;
   height: 50px;
   transform:translate(50px,100px);
  }
 </style>
</head>
<body>
 <div id="d1">
  <div id="d2"></div>
 </div>
</body>
</html>

显示效果:

0×2.元素变形
a.等比例缩放
等比例缩放能够使元素等比扩大或缩小我们设定的倍数,语法如下:

transform: scale(n);
n默认为1,元素保持正常大小显示,超过1就是等比扩大多少倍(长宽同时扩大),小于1就是等比缩小多少倍;

除此之外,同translate一样,scale也可以单独设置某一条边的缩放,scaleX(n)单独扩大或缩小元素宽度,scaleY(n)单独扩大或缩小元素高度。

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>块状元素缩放实例</title>

 <style type="text/css">
  <!--d1的原始宽高是100px,默认情况下会显示一个正方形,现在使用scale将其宽度扩充2倍,高度缩小成原来的一半,这种缩放或扩充会影响到其内部的所有元素-->
  #d1{
   width: 100px;
   height: 100px;
   background-color: pink;
   transform:scale(2,0.5);
   color:black;
  }
 </style>
</head>
<body>
 <div id="d1">www.111cn.net</div>
</body>
</html>

显示效果:

b.旋转
块状元素的旋转可以通过transform的rotate值来实现,请看下面的实例:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>块状元素旋转实例</title>

 <style type="text/css">
  <!--将d1顺时针旋转45度,如果要逆时针旋转,设置成负值即可-->
  #d1{
   width: 100px;
   height: 100px;
   background-color: pink;
   transform:rotate(45deg);
  }
 </style>
</head>
<body>
 <div id="d1"></div>
</body>
</html>

显示效果:

默认情况下,元素旋转的基准点为块状元素的中心点,可以通过设置transform-origin属性来改变旋转的基准点位置,请看下面的实例:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>设置旋转基准点实例</title>

 <style type="text/css">
  #d1{
   width: 50px;
   height: 50px;
   margin: 20px;
   background-color: pink;
   transform:rotate(30deg);
  }
  <!--设置基准点为div左上角原点(top left),默认为transform-origin:center center;即中心点,图形基准点位置保持不变,绕着基准点旋转;-->
  #d2{
   width: 50px;
   height: 50px;
   margin: 20px;
   background-color: pink;
   transform:rotate(30deg);
   transform-origin:0 0;
  }
 </style>
</head>
<body>
 <div id="d1"></div>
 <br>
 <div id="d1"></div>
</body>
</html>

显示效果:

 

c.倾斜
<!DOCTYPE html>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>块状元素倾斜实例</title>

 <style type="text/css">
  #d1{
   width: 100px;
   height: 100px;
   background-color: pink;
   <!--X轴倾斜45度,正值向左,负向右,同transform:skewX(45deg);-->
   transform:skew(45deg,0deg);
  }
  #d2{
   width: 100px;
   height: 100px;
   background-color: pink;
   <!--Y轴倾斜45度,正值向下,负向上,同transform:skewY(45deg);-->
   transform:skew(0deg,45deg);
  }
 </style>
</head>
<body>
 <div id="d1"></div>
 <br>
 <div id="d2"></div>
</body>
</html>

 

时间: 2024-12-01 20:43:46

css3中transform属性实现平移与变形的相关文章

css3中opacity属性学习与实践

css3中opacity属性是如何使用的呢:<length> inherit length:由浮点数字和单位标识符组成的长度值0到1.不可为负值.默认值为:1 . 此标签的作用是声明一个元素的透明度,opacity取值为1的元素是完全不透明的,反之,取值为0是完全透明的,看不见的.1到0之间的任何值都表示该元素的透明程度. 兼容:Firefox 3.0.10 .Chrome 2.0.x.Opera 9.64..Safari 4.Firefox 3.5 目前较老的Firefox版本,我们需要使用

css3中box-sizing属性用法详解

我们经常会遇到一个父级的div有1px的边框而且还需要100%的宽度,这个时候在火狐和chrome与一些新的ie浏览器会出现超出的现象! 我们也遇到一个ul里边4个li,每个li需要给个边框和padding,这时候我们最快的方法是每个li的width='25%',但是实际出来的效果确实把ul撑开了 如上两个简单的实际情况我想大家都遇到过,我们都希望我们给的宽包含border和padding这两个属性,今天我们能够实现了,box-sizing这个属性能让我们心想事成,随心所欲!下面我和大家分享下b

CSS3中Animation属性的使用详解

  在开始介绍Animation之前我们有必要先来了解一个特殊的东西,那就是"Keyframes",我们把他叫做"关键帧",玩过flash的朋友可能对这个东西并不会陌生.下面我们就一起来看看这个"Keyframes"是什么东西.前面我们在使用transition制作一个简单的transition效果时,我们包括了初始属性和最终属性,一个开始执行动作时间和一个延续动作时间以及动作的变换速率,其实这些值都是一个中间值,如果我们要控制的更细一些,比如说

css3动画transform属性系列之scale(缩放)

下面我们从3个方面开始介绍: 1.scale(x,y) 对元素进行缩放 X表示水平方向缩放的倍数 Y表示垂直方向的缩放倍数 Y是一个可选参数,没有设置的话,则表示X,Y两个方向的缩放倍数是一样的.并以X为准. transform:scale(2,2.5); 2.scaleX(<number>) 元素只在X轴(水平方向)缩放元素. 默认值是1,基点一样在元素的中心位置.可以通过transform-origin来改变基点 transform:scaleX(2); 3.scaleY(<numb

CSS3中clip-path属性和元素使用方法

根据她的以往经验,这个网站的HTML和CSS是完全在她的能力范围以内,于是我帮助她完成了这个效果.显示nav被裁减的效果是一个不简单的任务,我看到图片的第一反应是创建一个相匹配的背景被部分裁剪的图像,然后把它设置为一个after元素.问题是,至少要解决响应式问题,并且响应式并不完全可控的. 了解CSS属性:clip-path clip-path 是工作草案的一部分,它是一个通过屏蔽和裁减来隐藏元素的一部分的工具.尽管clip-path没有被主流的浏览器支持(包括IE和Firefox),但在web

CSS3中的属性选择符

选择符类型 表达式 描述 子串匹配的属性选择符 E[att^="val"] 匹配具有att属性.且值以val开头的E元素 子串匹配的属性选择符 E[att$="val"] 匹配具有att属性.且值以val结尾的E元素 子串匹配的属性选择符 E[att*="val"] 匹配具有att属性.且值中含有val的E元素 结构性伪类 E:root 匹配文档的根元素.在HTML中,根元素永远是HTML 结构性伪类 E:nth-child(n) 匹配父元素中的

css3中-webkit-animation-fill-mode属性值为both时的使用方法

大家都知道 -webkit-animation-fill-mode 属性是检索或设置对象动画时间之外的状态,但是一直以来我对它的属性值都存在一个疑问,both和forwards的使用到底有什么区别呢?经过不停的测试.搜索,个人认为差别在于: Out. I the computer. Then buy lexapro pill online it faint work BAM! I - in order viagra 25 mg look product low cost generic levi

CSS3中Transition属性详解以及示例分享_CSS/HTML

1.transition-property的语法[css]transition-property :all(所有属性改变) || [attr] (指定要运动的样式)|| none(没有属性改变) 2.transition-property的属性值 (1)none:transition马上停止执行 (2)all:元素产生任何属性值变化时都将执行transition效果 (3)attr:指定要运动的样式 一.transition-property--指定要运动的样式 1.transition-pro

CSS3中flex-basis属性用法详解

WebPlatform1上对flex-basis的解释是: The flex-basis CSS property describes the initial main size of the flex item before any free space is distributed according to the flex factors described in the flex property (flex-grow and flex-shrink). 在flex container分