定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。
一切皆为框
div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
块级元素
特点:1.每个块级元素都是独自占一行,其后的元素也只能另起一行,并不能两个元素共用一行。
2.元素的高度、宽度、行高和顶底边距都是可以设置的。
3.元素的宽度如果不设置的话,默认为父元素的宽度。
常见的块级元素:<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
行级元素
特点:1.可以和其他元素处于一行,不用必须另起一行。
2.元素的高度、宽度及顶部和底部边距不可设置。
3.元素的宽度就是它包含的文字、图片的宽度,不可改变。
行级元素与块级元素的转换
如果想将块级元素与行级元素相互转换,该怎么办呢?
可以在css样式中用display:inline将块级元素设为行级元素
同样,也可以用display:block将行级元素设为块级元素
行级-块级元素
如果又想设置高度、宽度、行高以及顶和底边距,又想元素处于一行,该怎么办呢?
此时就可以用display:inline-block将元素设置为行级-块级元素。
通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
position属性值的含义:
-
static 元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative 元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute 元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
定位效果应用:将物品图片放到对应的格子图片(附件0.png)里面去
<div style="margin-top:10%;position:relative;">
<img src="/statics/front2/images/game/daoju_bg.png" style="position: absolute;">
<table style="position: absolute;left: 13%;width: 76%;margin-top:5%">
<tr>
<td><img src="/statics/front2/images/game/footer-02.png" style="width: 60px;display: block;margin-top:10%"></td>
<td><img src="/statics/front2/images/game/footer-02.png" style="width: 60px;display: block;margin-top:10%"></td>
<td><img src="/statics/front2/images/game/footer-02.png" style="width: 60px;display: block;margin-top:10%"></td>
<td><img src="/statics/front2/images/game/footer-02.png" style="width: 60px;display: block;margin-top:10%"></td>
</tr>
</table>
</div>