CSS绝对定位

2016.07.07 22:58
**绝对定位是根据第一个不是static定位(默认定位)的父元素进行定位。可以直接把父元素设置成position定位,单不设置top和left属性。这样父元素还是在原位上,绝对定位的子元素也很好的可以定位。

今天在做网页的时候遇到了一个问题。需要做成效果是这样的。(下图中的“未处理”,盖章样式的效果)


效果的难点是在于div.result定位。可以看出它是跨在了div.title的下边界上。仔细看,div.title存在下边界线,颜色比较淡。
我一开始使用float:right;属性来对div.result进行定位,可以达到图中的定位效果,但是下面的div.body里的文字和按钮都会被挤走,打乱他们的布局。
我知道float属性,不在文档流中排序。但是当时不知道的是,虽然不在文档流中排序,但是其他的框依然会为它让位子。这就是div.body里的内容排版被打乱的原因。
而用positon:absoulte;来进行定位,也是不在文档流中占位,同时完全不影响别的div排版布局。可以用z-index属性来调整z轴上的层叠顺序。

*顺便贴一下div.result效果的css代码:
.result{
position: absolute;
top: 10px;
left: 550px;
margin-right: 100px;
border: solid 1px #E99696;
width: 60px;
height: 60px;
border-radius: 50%;
color: #E99696;
text-align: center;
line-height: 60px;
vertical-align: top;
/
浏览器兼容性问题
/
-webkit-transform-origin: center center;
-moz-transform-origin: center center;
-o-transform-origin: center center;
-ms-transform-origin: center center;
transform-origin: center center;
transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}

在使用CSS3中的transfrom属性是,要注意浏览器兼容问题。
***要使用 transform:rotate();属性必须先定义transform-origin属性,有两个值,作为旋转的顶点(就是围绕哪个点来进行旋转)的坐标。默认是50% 50%(也就是center center)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,661评论 0 8
  • 之前介绍过CSS浮动float详解,本篇介绍的绝对定位absolute和浮动float有部分相似性。如果能理解浮动...
    张歆琳阅读 96,719评论 39 192
  • 关于css3变形 CSS3变形是一些效果的集合,比如平移、旋转、缩放和倾斜效果,每个效果都被称作为变形函数(Tra...
    hopevow阅读 6,400评论 2 13
  • Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭...
    hzrWeber阅读 22,171评论 0 19
  • 首先: 我们需要知道div元素(块级元素)独占一行 如下图所示,box1和box2独占一行,可见如果每个div都独...
    香芋牛奶面包阅读 7,785评论 2 6