引子:
开始的时候我想先要解决一个问题,怎么设置一个div盒子撑满整个屏幕?
看下面的html代码:
1 2 3 4 5 |
<body> <div id="father-body"> <div class="item1"></div> </div> </body> |
实现方法一:
1 2 3 4 5 |
html, body,#father-body{ height:100%; width:100%; background-color:#123456; } |
这里主要解释下%
(百分号)在CSS中使用的问题。%
主要是在父级元素或者是祖先元素定义了固定的width
和height
的时候才可以使用(或者说使用的时候才会有效果)。
实现方法二:
1 2 3 4 5 6 |
#father-body{ position:fixed; width:100%; height:100%; background-color:#123456; } |
这里为#father-body
设置position属性,触发自身的BFC。当对自身使用width
和 height
的时候才可以生效。
position的fixed值的含义:
对象脱离常规流,使用
top
,right
,bottom
,left
等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。
position属性的几个值的概念:
1.相对定位
有了以上的定义,来看一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .item1, .item2, .item3{ width:300px; height:100px; background-color:#123456; margin:20px; } .item2{ position:relative; /*top:40px; left:40px;*/ margin:40px 0 0 40px; } </style> </head> <body> <div> <div class="item1"></div> <div class="item2"></div> <div class="item3"></div> </div> </body> </html> |
效果如下图:
当我们使用top
right
bottom
left
这样的属性的时候,CSS代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<style type="text/css"> .item1, .item2, .item3{ width:300px; height:100px; background-color:#123456; margin:20px; } .item2{ position:relative; top:40px; left:40px; /*margin:40px 0 0 40px;*/ } </style> |
可以看到的效果图如下图:
到这里可以验证当使用
top
right
bottom
left
(这四个属性可以设置具体的像素数也可以设置百分比)这样属性改变元素的位置的时候,不会影响其他元素的位置。而使用margin
这样的属性改变元素的位置会影响其他元素的位置。
示意图如下(图片来自W3CSchool):
2.绝对定位
看下面的一段代码:
示意图如下(图片来自W3CSchool):
2.绝对定位
看下面的一段代码:
1 2 3 4 5 |
<body> <div id="father-body"> <div class="item1"></div> </div> </body> |
实现方法一:
1 2 3 4 5 |
html, body,#father-body{ height:100%; width:100%; background-color:#123456; } |
这里主要解释下%
(百分号)在CSS中使用的问题。%
主要是在父级元素或者是祖先元素定义了固定的width
和height
的时候才可以使用(或者说使用的时候才会有效果)。
实现方法二:
1 2 3 4 5 6 |
#father-body{ position:fixed; width:100%; height:100%; background-color:#123456; } |
这里为#father-body
设置position属性,触发自身的BFC。当对自身使用width
和 height
的时候才可以生效。
position的fixed值的含义:
对象脱离常规流,使用
top
,right
,bottom
,left
等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。
position属性的几个值的概念:
1.相对定位
有了以上的定义,来看一段代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> .item1, .item2, .item3{ width:300px; height:100px; background-color:#123456; margin:20px; } .item2{ position:relative; /*top:40px; left:40px;*/ margin:40px 0 0 40px; } </style> </head> <body> <div> <div class="item1"></div> <div class="item2"></div> <div class="item3"></div> </div> </body> </html> |
效果如下图:
当我们使用top
right
bottom
left
这样的属性的时候,CSS代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<style type="text/css"> .item1, .item2, .item3{ width:300px; height:100px; background-color:#123456; margin:20px; } .item2{ position:relative; top:40px; left:40px; /*margin:40px 0 0 40px;*/ } </style> |
可以看到的效果图如下图:
到这里可以验证当使用
top
right
bottom
left
(这四个属性可以设置具体的像素数也可以设置百分比)这样属性改变元素的位置的时候,不会影响其他元素的位置。而使用margin
这样的属性改变元素的位置会影响其他元素的位置。
示意图如下(图片来自W3CSchool):
2.绝对定位
看下面的一段代码: