照片墙(transform/transition/z-index)

照片墙


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>照片墙title>
    <style>
        * {
      
            margin: 0;
            padding: 0;
        }

        ul {
      
            height: 400px;
            background-color: skyblue;
            border: 1px solid #000;
            margin-top: 100px;
            /* ul内容水平居中*/
            text-align: center;
        }

        ul li {
      
            list-style: none;
            width: 150px;
            height: 200px;
            /*使用浮动不好控制,直接行内块级在一排*/
            display: inline-block;
            background-color: red;
            margin-top: 100px;
            transition: all 1s;
            /*开启相对定位,相对于原来标准流位置,没有变化,并修改层级结构*/
            position: relative;
        }

        ul li:nth-child(1) {
      
            transform: rotate(30deg);
        }

        ul li:nth-child(2) {
      
            transform: rotate(-40deg);
        }

        ul li:nth-child(3) {
      
            transform: rotate(10deg);
        }

        ul li:nth-child(4) {
      
            transform: rotate(45deg);
        }

        ul li img {
      
            width: 150px;
            height: 200px;
            border: 5px solid #ffffff;
            box-sizing: border-box;
        }

        ul li:hover {
      
            /*  放大倍数  */
            /*为何没有设置旋转角度,后边的transform会覆盖前边的,
            上边设置旋转角度被覆盖,所以最后的样式才是最终样式,*/
            transform: scale(1.5);
            /*放在哪个身上哪个堆叠顺序变大,盖住其他图片*/
            z-index: 998;
        }

    style>
head>
<body>
<ul>
    <li><img src="images/MBG.jpg" alt="">li>
    <li><img src="images/2.jpg" alt="">li>
    <li><img src="images/3.jpg" alt="">li>
    <li><img src="images/4.jpg" alt="">li>
ul>
body>
html>

注意点

1、css的层叠性,后边属性会覆盖前边的同名属性,所以旋转恢复原位直接重写transform属性就好。

2.动画三要素还是要注意谁的属性发生变化,在里边写动画属性,这个案例不要写到img里边去。

3.我们悬停的图片肯定优先级高,不想被其他图片盖住,使用z-index属性,开启定位流,绝对定位相当于body,放大会改变位置,相对定位只会相对于标准流位置。并且将z-index属性放到hover中,悬停在哪,哪里修改。

你可能感兴趣的:(CSS3,css)