css position 属性

摘要:
position属性定义用于建立元素布局的定位机制。JavaScript语法:object。style position=“absolute”值描述由absolute生成的绝对定位元素,该元素相对于第一个父元素定位,而不是静态定位。元素的位置由“left”、“top”、“right”和“bottom”属性指定。inherit指定应该从父元素继承position属性的值。当元素从文档流中分离时:浮动绝对定位注意1。相对和静态方法使用<body>标记作为最外层的远点定位,而绝对方法使用<html>作为非父位置和非静态定位的原点。当您定义的CSS中position属性的值是绝对值、相对值或固定值时,该值可以与z索引一起生效。

position属性

这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。

JavaScript 语法:object.style.position="absolute"
描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit规定应该从父元素继承 position 属性的值。

文档流:
将窗体自上而下分成一行行,并在每行中按从左到右的顺序排放元素,即为文档流。
使元素脱离文档流的情况:浮动 绝对定位

注意
1、relative和static方式在最外层时是以<body>标签为定位远点的,
而absolute方式在无父级是position非static定位时是以<html>作为原点的。
<html>和<body>元素相差8px左右。

2、如果使用absoulte或fixed定位的话,必须指定 left、right、 top、 bottom 属性中的至少一个,
否则left/right/top/bottom属性会使用它们的默认值 auto ,
这将导致对象遵从正常的HTML布局规则,在前一个对象之后立即被呈递,
简单讲就是都变成relative,会占用文档空间

3、使用static定位或无position定位的元素z-index属性是无效的。
当你定义的CSS中有position属性值为absolute、relative或fixed,用z-index此取值方可生效。
此属性参数值越大,则被层叠在最上面

4、脱离正常文档流:position:absolute 和 position:fixed
正常文档流:position:relative 和 position:static

5、定位布局技巧:position:relative 与 position:absolute 结合使用:
如果对元素设置了absolute后,其父级元素都没有设置position:relative,
其会以body为父级。这样的话我们该元素定位到我们的目标位置将很困难,量像素麻烦。

当子代设置了position:absolute后,其父级那个设置了position:relative,
这个子代就会从该父级元素最左上方作为起点移动,并且遵循就近原则,即子代向上找父级,
当找到第一个有父级设置了relative就以它最左上方作为起点。
relative 与 absolute 结合的方式,对定位布局起到了便利,
需要移动的距离也得到缩小,不用从body开始整个页面来量取像素,同时也方便管理,结构清晰。


参考:
CSS之使用display:inline-block来布局

行内元素间距问题

两个inline元素span或者两个inline-block元素div写成一行,无间隙。分开写成两行,则会有间隙

去除间隙方法:

对父元素添加,{font-size:0},即将字体大小设为0,那么那个空白符也变成0px,从而消除空隙

现在这种方法已经可以兼容各种浏览器,以前chrome浏览器是不兼容的

CSS元素分类
参考:CSS元素分类

常用的块状元素有:

<div>、<p>、<h1>…<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
1
块级元素特点:
1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行);
2、元素的高度、宽度、行高以及顶和底边距都可设置。
3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

常用的内联元素有:

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
1
内联元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度及顶部和底部边距不可设置;
3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

常用的内联块状元素有:

<img>、<input>
1
inline-block 元素特点:
1、和其他元素都在一行上;
2、元素的高度、宽度、行高以及顶和底边距都可设置。

免责声明:文章转载自《css position 属性》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux 账号管理及ACL权限设置,PAM模块简介【转】使用Xcode和Instruments调试解决iOS内存泄露下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS3之动画模块实现云朵漂浮效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>动画模块-云层效果</title> <style> * { margin:0; paddi...

3D画廊

3D画廊 之前我都是写的学习的内容,我在写这些教程时遇到有趣的炫酷的小例子也会专门拿出来写一篇文章,今天就写一个酷炫的小例子,叫3D画廊,它是属于ViewPage的进阶版。 此项目下载地点:https://github.com/qySvip/3D-gallery 下面的指示器是使用的一大神的第三方库,会在文章下方简单讲述一下。 效果图 3D画廊的实现 首...

CSS 伪类选择器

对css的伪类选择器真的是又爱又恨,每次都很完美的被搞混了,还是得做一下总结。 1.  :nth-of-type(n)   选择第n个元素 1 <div class="box"> 2 <p>1 永远相信美好的事情</p> 3 <a>2 即将发生</a> 4 <p&g...

关于webpack打包js和css

废话不多说,直接贴出代码,大家瞅瞅:其中要引用css的话是要用css-loader。用了之后再webpack。config。js里面配置相应的代码,并且在相应的js文件里面引用即可啦,不知道有哪位大神指导我的webstorm为什么不支持es6的写法吗?我试了很多方法和设置,都没用,但是整个项目部报错,- -!!!!...

巧用hover改变css样式和背景

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-3.2.1.js"></script...

thinkphp框架(已有模板和tp框架做结合)

关于thinkphp框架的基本介绍  第一次访问后创建的目录 路由的四种形式 创建应用(在首个index.php中) Controller里的自配需要文件 调用View视图的模板 注意:Controller和View里的视图名称保持一致,$this->display();就能直接调用; 设置登录网站的首页面 将写好的展示给用户的静态...