zoukankan      html  css  js  c++  java
  • 浮动布局,定位布局(固定定位,绝对定位,相对定位),过渡动画

    小知识点

    #默认a不支持宽高,设置display:block就可以显示宽高
    #inline不支持宽高

    浮动布局

    '''
    what|why: 让块级(block)标签在父级的宽度限制下同行显示, 一行显示不下, 自动换行
    注: 要到达一行显示个数固定, 一定要固定父级的宽度
    哪些标签需要同行排列,哪些标签就做同行处理
    
    语法: 
    子级 {
        float: left|right;
    }
    
    问题: 子级不再撑开父级高度 (不完全脱离文档流) (个人理解:在浮动标签下面加一个比浮动标签小的标签,浮动标签直接覆盖掉了这个小标签,这是因为子级不再撑开父级的高度造成的.)
    
    脱离文档流: => 层次结构会上移, 覆盖有位置重叠且没脱离文档流的标签(个人理解:在浮动子级标签的下面加一个面积比浮动子级小的正常标签,这个正常标签会被浮动子级完全覆盖)
    
    不完全: 浮动布局后, 可以重新让子级撑开父级高度
    
    清浮动: 让不完全脱离文档流的子级重新撑开父级的高度, 这种做法就叫做清浮动
    给谁请浮动? 谁的高度没有被浮动子级撑开,谁来清浮动
    
    语法:(content,display,clear三者缺一不可)
    父级:after {
        content: "";
        dislpay: block;
        clear: both;
    }
    
    <!--了解-->
    <!--:after | :before 伪类 -> 内容-->
    <html>
    <head>
        <style>
            .box:after {
                display: block;
                content: "000";
            }
            .box:before {
                display: block;
                content: "***";
            }
        </style>
    </head>
    <body>
        <div class="box">123</div>
    </body>
    </html>
    
    after | before:操作文本内容
    ***
    123
    000
    
    为什么清浮动用after?
    浮动布局出现问题以后才清浮动
    
    '''

    定位布局

    .固定定位

    '''
    what|why: 盒子相对于屏幕完成位置布局, 不会随着屏幕内容的滚动而滚动(相对于屏幕窗口是静止的), 且和页面内容发生重叠时, 该布局下的内容显示层次更高(覆盖其他内容)
    
    父类盒子一旦固定位置,子类盒子也会固定位置
    但子类盒子固定位置,父类盒子不会固定位置
    语法:
    position: fixed;
    
    
    /*固定定位总结:
    1.参考系为页面窗口
    2.一旦盒子设置了定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
    top: 距离
    bottom:距离
    left:距离
    right:距离
    3.上下同时出现取上, 同理左右取左
    4.固定定位会完全脱离文档流(永远不会撑开父级高度 => 布局中父级一定需要自己设置高度)
    5.完全脱离文档流的盒子显示层次高于不脱离文档流的盒子,
        两个完全脱离文档流盒子的显示层次如果没有设置的话,是会后面的覆盖前面的,要想改变显示层次的顺序,可以设置z-index属性(脱离文档流盒子特有的)来改变显示层次的顺序(z-index值大者覆盖值小者)
    */
    '''

    .绝对定位

    '''
    what|why: 兄弟标签之间不相互影响, 都参照父级的显示区域来完成布局
    
    语法: 
    position: absolute;
    
    /*绝对定位总结:
    1.参考系为最近的定位父级(父级一般采用相对定位relative来辅助子级绝对定位),注意:最近的定位父级,采用相对定位,如果采用固定定位和绝对定位,父级也会脱离文档流,然后位置会发生改变.
    
    /*父级一般情况下只是为了给子级绝对定位提供参考系
    子级绝对定位下,必须要求参考系拥有定位
    父级可以选取fixed|absolute定位,就会成为子级的参考系,
    但是父级自身的布局就会因为fixed|absolute完全脱离文档流的特性,影响自身的布局
    
    如何达到: 父级又能定位(为子级做参考), 又不脱离文档流(自身布局不收影响)
    解决方案: 父级采用 相对定位(父相子绝)
    */
    2.一旦设置定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
    3.上下同时出现取上, 同理左右取左
    4.绝对定位会完全脱离文档流(永远不会撑开父级高度 => 布局中父级一定需要自己设置高度)
    5.完全脱离文档流的盒子显示层次高于不脱离文档流的盒子,
        两个完全脱离文档流盒子的显示层次可以z-index属性(脱离文档流盒子特有的)改变显示层次的顺序(值大者覆盖值小者)
    */
    
    '''

    .相对定位(了解)

    '''
    what|why: 核心用处 => 父相子绝
    
    语法: 
    position: relative;
    
    
    /*相对定位总结:
    1.参考系为自身原有位置
    2.一旦设置定位属性, top | bottom | left | right 四个方位(是定位属性盒子特有的)均可以参与布局
    3.top = -bottom | left = -right (上下取上, 左右取左)
    4.相对定位 不脱离文档流 => 不会影响自身布局, 自身布局采用的还是原来的布局
    注: 相对定位定位方位只会改变显示图层, 不会改变盒子的原有位置, 原有位置不变就不会影响兄弟盒子
    '''
    '''
    注意:
    参考系为窗口就是固定定位,参考系为父级就是绝对定位
    top | bottom | left |right是设置了定位属性的盒子的特有属性
    z-index是脱离文档流的盒子的特有属性
    '''

    过渡动画

    /*持续时间*/
    /*transition-duration: 3s;*/
    
    /*延迟时间: 默认0*/
    /*transition-delay: 1s;*/
    
    /*过渡属性: 默认all | 属性1, ..., 属性n |  eg:height, background-color */
    /*如果只设置某个属性那么该属性渐变,其它属性顺便*/
    /*transition-property: all;*/
    
    /*过渡曲线: 默认ease*/
    /*ease | ease-in | ease-out | ease-in-out | linear(匀速)
    贝塞尔曲线:cubic-bezier(0.83, 1.46, 0, -1.29)*/
    /*transition-timing-function: cubic-bezier(0.83, 1.46, 0, -1.29);*/
    
    /* 简写 */
    /* 持续时间 延迟时间 过渡属性们 运动的贝塞尔曲线*/
    /*transition: 2s 1s all cubic-bezier(0.83, 1.46, 0, -1.29);*/
    
    /*一般书写如下*/
    /*transition: .3s linear;*/
    
    /*需求: 没有高度时, 将所有子级内容隐藏*/
    .box {
        /*超出自己范围的内容如何处理*/
        overflow: hidden;
    }
  • 相关阅读:
    word,excel,ppt转Pdf,Pdf转Swf,通过flexpaper+swftools实现在线预览
    Node做中转服务器,转发接口
    Vue——路由回退至指定页面
    Vue——前端生成二维码
    解决移动端键盘弹起导致的页面fixed定位元素布局错乱
    Vue——手机号、验证码登录(设置按钮60s禁用倒计时)
    Vue——解决报错 Computed property "****" was assigned to but it has no setter.
    typescript 起步之安装及配置 ts-node 环境变量
    区分 for...in 和 for...of
    解决HTML5(富文本内容)连续数字、字母不自动换行
  • 原文地址:https://www.cnblogs.com/lizeqian1994/p/10299565.html
Copyright © 2011-2022 走看看