HTML5+CSS3+Web--day5

记录:设计轮播图时,为使多张图片并排,父级会使用flex布局,有时会遇到图片压缩在容器中并排的情况,这个时候需设置容器宽度为原始大小*图片数。(最好一开始就设置容器宽度为该值)

记录:使用子绝父相和过渡效果(transition:;)实现当鼠标悬浮时的以下效果:

<style>
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }
            a {
                text-decoration: none;
            }
            .boc {
                position: relative;
                width: 200px;
                height: 200px;
                background-color: skyblue;
                overflow: hidden;
            }
            .boc .cover {
                position: absolute;
                bottom: -50px;
                width: 200px;
                height: 50px;
                color: #fff;
                text-align: center;
                background-color: pink;
            }
            .boc .cover p:first-child {
                margin-bottom: 3px;
                font-size: 18px;
            }
            .boc .cover p:nth-child(2) {
                margin-bottom:2px;
                width: 125px;
                height: 1px;
                background-color:rgba(255,255, 255, 0.11);
            }
            .boc .cover a {
                font-size: 12px;
                color: #fff;
            }
            .boc:hover .cover,
            .boc:hover {
                bottom: 0;
            }
   </style>

<body>

    <div class="boc">
        <div class="cover">
            <p>找相似</p>
            <p></p>
            <a href="#">发现更多宝贝 ></a>
        </div>
    </div>

</body>

五、移动web
(一)平面转换

属性名:transform

作用:为元素添加动态效果,一般配合过渡效果使用

在平面上进行状态的转换(对图像进行水平、垂直方向上的变换,如平移、旋转、缩放、倾斜等)

1.平移

属性值:

translate(x轴移动距离,y轴移动距离)

取值:(正负均可)

1.px

2.%(参照盒子自身尺寸计算)

注:translate()可以只写有一个值,表示沿着x轴移动。若需单独设置x或y移动距离,可用tranlateX()或translateY()。

平移可实现居中:

之前在子绝父相中,利用的

position:absolute;

left:50%;

right:50%;

transform:translate(-50%,-50%);(向左向上移动自身的50%)

情景应用:

1.实现双开门效果:

<style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .father {
            margin:0 auto;
            display: flex;
            position: relative;
            width: 500px;
            height: 300px;
            border: 1px solid #000;
            overflow: hidden;
        }
        .son,.sister {
            position: absolute;
            width: 250px;
            height: 300px;
            background-color: pink;
            border-right:1px solid #fff;
            transition: all 1s;
        }
        .sister {
            left: 50%;
            border-left:1px solid #fff ;
        }
        /* 鼠标悬停,添加动态效果 */
        .father:hover .son {
            transform: translate(-100%);
        }
        .father:hover .sister {
            transform: translateX(100%);
        }
    </style>

​   <body>
    <div class="father">
        <div class="son"></div>
        <div class="sister"></div>
    </div>
</body>

                 

</body>

2.旋转

属性值:rotate(旋转角度)

取值:(单位为deg)

正负均可,正为顺(顺时针),负为逆(逆时针)

(1)默认绕盒子中心转换原点)旋转:

(2)改变旋转中心

属性名:transform-origin: 水平原点位置 垂直原点位置;

取值:

a.方位名词(left、top、right、bottom、center)(常用)

b.px

c.%

注:图片缩放时也可通过改变该属性改变缩放中心,实现定位缩放。

3.多重转换(都须先设置平移)

(1)先平移再旋转

transform: translate() rotate();

先平移后旋转的原因:

旋转会改变坐标轴向,而多重转换是以第一种转换形态的坐标轴为准。

有可能会像阿基米德螺线一样旋转

注:两个属性值不能拆开写,因为属性具有层叠性(后者生效)

4.缩放

(1)实验通过鼠标悬浮时改变宽高进行图片缩放

实验效果:图片从左上角开始缩放。

(2)利用transform的属性值scale进行缩放。

transform:scale(缩放倍数);(一个值x、y等比缩放)

transform:scale(x轴缩放倍数,y轴缩放倍数);

取值大于1-->放大;取值小于1-->缩小

效果:图片从中心缩放。

5.倾斜

属性值:skew

取值:

角度度数deg

6.渐变

多个颜色逐渐变化的效果,一般用于设置盒子背景

有线性渐变和径向渐变两种

(1)线性渐变:

属性名:background-image

属性值:linear-gradient

取值:

(1)渐变方向:a. to 方位名词 b.角度度数

(2)颜色1 终点位置,颜色2 终点位置(单位百分比)

注:渐变方向和终点位置都有默认,可不写。

(2)径向渐变:

作用:给按钮添加高光效果

属性名:background-image

属性值:radial-gradient

取值:半径 at 圆形位置,颜色1 终点位置,颜色2 终点位置

注:半径可以是2条,变为椭圆,圆形位置取值:%、px、方位名词

一般是由半透明过渡到透明(rgba(255,255,255,0.2)----->transparent )

经验总结:

1.flex布局,子绝父相都会变相的改变元素属性(行内-->行内块/对宽高有效的弹性盒子)

2.在为图片设置鼠标悬浮的渐变的背景图时,需要先用一个与图片尺寸相同的盒子设置渐变效果,

(一般为线性渐变),然后用子绝父相将该盒子定位至完全覆盖图片,利用opacity:0;将盒子隐藏,

当鼠标悬停到图片上时,再改变opacity为1,以及给图片加上transition:all ()s;后显示效果,如果

图片上面有文字介绍,还需将背景图设置z-index:0;

3.若要得到外边框不动,而只是内部图片缩放的效果需要以div包裹图片的方式。

​​

4.

这上面的播放按钮可以用伪元素选择器的方法设置,当然也可以直接用图片。

注:透明黑的背景色,播放图标,还有图标属性的设置居然能够连接写!!

上面用到子绝父相,既是为了定位也是为了伪元素设置宽高能够有效,因为content:'';定义的行内元素。

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值