定位09-11

定位

通过position属性来设置元素的定位
-可选值:

    static:默认值,元素没有开启定位
    relative:开启元素的相对定位
    absolute:开启元素的绝对定位
    fixed:开启元素的固定定位(也是绝对定位的一种)

相对定位:

1.当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
2.相对定位是相对于元素在文档流中原来的位置进行定位
3.相对定位的元素不会脱离文档流
4.相对定位会使元素提升一个层级
5.相对定位不会改变元素的性质,块还是块,内联还是内联

绝对定位:

1.开启绝对定位,会使元素脱离文档流
2.开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化
3.绝对定位是相对于离他最近的、开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位,都会同时开启父元素的相对定位)如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口进行定位
4.绝对定位会使元素提升一个层级
5.绝对定位会改变元素的性质:内联元素变成块元素,块元素的宽度和高度默认都被内容撑开

固定定位:

固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
不同的是:固定定位永远都会相对于浏览器窗口进行定位
    固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动

eg:

  .box{
          position  :  static   ( relative    absolute    fixed)
          left (right top bottom)  :   100px;
          }

元素的层级

 如果定位元素的层级是一样,则下边的元素会盖住上边的
 通过z-index属性可以用来设置元素的层级
z-index指定一个正整数作为值,该值将会作为当前元素的层级,层级越高,越优先显示
 对于没有开启定位的元素不能使用z-index

设置元素的透明背景

 opacity可以用来设置元素背景的透明,它需要一个0-1之间的值
0 表示完全透明
1 表示完全不透明
0.5 表示半透明

在IE Tester中用filter设置透明

        filter: alpha(opacity=50);

设置背景样式

eg:background-image: url(img/1.png);
        background-repeat: repeat-y;(设置背景图片不重复)

背景偏移与定位

 background-attachment用来设置背景图片是否随页面一起滚动
可选值:
    scroll,默认值,背景图片随着窗口滚动
    fixed,背景图片会固定在某一位置,不随页面滚动,不随窗口滚动的图片,我们一般都是设置给body,而不设置给其他元素

通过background-position可以调整背景图片在元素中的位置

可选值:
    该属性可以使用 top right left bottom center中的两个值来指定一个背景图片的位置
    top left 左上
    bottom right 右下
    如果只给出一个值,则第二个值默认是center

当背景图片的background-attachment设置为fixed时,
背景图片的定位永远相对于浏览器的窗口

按钮练习

eg:.btn:link{
        display: block;
        width: 93px;
        height: 29px;
        background-repeat: no-repeat;
    }
    .btn:hover{/*当是hover状态时,希望图片可以向左移动*/
        background-position: -93px 0px;
    }
    .btn:active{/*当是active状态时,希望图片再向左移动*/
        background-position: -186px 0px;
            }
<a href="#" class="btn">我是超链接</a>

表格

  eg:<table>
            <tr>
        <th>学号</th>
        <th>姓名</th>(th表示表头)
    </tr>
    <tr>
        <td>1</td>
        <td>孙悟空</td>
    </tr>
          </table>

设置背景样式

         table{
        width: 300px;
        margin: 0 auto;
                    border:1px solid black;
                    border-spacing: 10px;( table和td边框之间距离)
                    border-collapse: collapse;(设置表格的边框合并,如果设置了边框合并,border-spacing自动失效)
                   }

    th, td{
        border: 1px solid black;
    }
    
    tbody > tr:nth-child(even){(设置隔行变色)
        background-color: #bfa;
    }
    
    tr:hover{(鼠标移入到tr以后,改变颜色)
        background-color: yellow;
    }

长表格

 eg:<table>
     <thead>
        <tr>
            <th>日期</th>
            <th>收入</th>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td></td>
            <td></td>
        </tr>
    </tfoot>
    <tbody>
        <tr>
            <td>2017.03.01</td>
            <td>500</td>
        </tr>
        <tr>
            <td>2017.03.01</td>
            <td>500</td>
        </tr>
    </tbody>
</table>

表格的布局

 eg:<table border="1" width="100%">
    <tr height="100px">
        <td colspan="2"></td>
    </tr>
    <tr height="400px">
        <td width="20%"></td>
        <td width="80%">
            <table border="1" width="100%" height="100%">
                <tr>
                    <td></td>
                </tr>
                <tr>
                    <td></td>
                </tr>
            </table>
        </td>
    </tr>
            <tr height="100px">
        <td colspan="2"></td>
    </tr>
        </table>
29.jpg
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容