zoukankan      html  css  js  c++  java
  • web@css普通布局 , 高级布局 , 布局坑

    1.高级布局
    《文档流概念》:页面从上至下,块式标签一行一行排列,内联式一行中从左至右排列
    《BFC规则》:左右位置(左右margin)垂直位置(上下margin)容器内外(互不影响)
    《脱离文档流》:脱离文档流的元素 拥有black块级元素所有
    综合使用 em,rem,vw,wh,%布局
    流式布局---让布局脱离固定值(一般只是宽)限制,可以根据页面情况改变相应发生改变,整体布局不改变
    百分比布局 
    响应式布局---不同大小屏幕 显示不同的布局
    @media  screen and (max-400px ){
                /*.d{background-color: white}*/
                .d1{
                    10%;
                    background-color: #ff2084;
                }
    浮动布局---float
    float:left|right
    解决问题 :block box同行显示
    清浮动:
    <!--1.height-->
    <!--2.overflow: hidden-->
    <!--3.兄弟:clear: left | right | both-->
    <!--4.父元素:after {-->
     <!--content: "";-->
     <!--display: block;-->
     <!--clear: both;-->

    定位布局---position
    position属性:
     statict  默认 不脱离文档流
     relative 不脱离文档流--相对自身
     absolute 完全脱离文档流--相对最近的一个定位的父元素
     fixed     完全脱离文档流--相对窗口
    定位后的元素可进行:
    top,left,botomn,right操作
    z-index:对于脱离文档流的定位元素显示优先级
    flex布局---弹性布局
    <!--弹性容器属性display:flex-->
    <!--容器设置为弹性容器后,内的元素排成一行,不受内元素宽度和的局限.-->
    <!--flex-direction--> row | row-reverse | column | column-reverse
    <!--flex-wrap-->      nowrap | wrap | wrap-reverse
    <!--flex-flow-->      上面2个简写方式
    <!--justify-content--> flex-start | flex-end | center | space-between | space-around
    <!--align-items-->     flex-start|flex-end|center|baseline|stretch
    <!--align-content-->  flex-start|flex-end|center|space- between|space-around|stretch
    <!--弹性元素属性-->
    <!--order-->
    <!--align-self--> auto|flex-start|flex-end|center|baseline|stretch
    <!--flex-grow-->
    <!--flex-shrink-->
    <!--flex-basis-->

    2.布局坑
    兄弟父子坑
    文档流 兄弟:上下取最大 左右相加
    float  兄弟:上下左右 相加
    父子margin坑: 子margin移动父级的margin
    父级设置 content,padding-top,border-top;float;定位只有absolut,fixed有效
     
    3.xy居中
    水平垂直---两个方向居中
    //居中的元素是:<div> </div>标签内的元素   div要设置宽高
    方式一:通过父元素 统一设置子元素(一般不这样做,应为内部元素未知)
        <!--子元素知道宽高|不知宽高-->
        水平(block不行):text-aline:center
        垂直:(都行)
              display:table-cell    单元格
              vertical-align:middle
        <!--不兼容问题-->
               display: flex;
        水平: justify-content: center;
        垂直:align-items: center;

    方式二:通过子元素自身  单独设置某个(常用)
        inline(不能设置宽高,margin.padding 左右有效)元素:可以设置line-height
        display:block;
     

        block(可设置宽高)元素:可以设置line-height=内容高度(内部的div)+上下高度(相同)
        水平:margin:0 auto;  只适用于block型
        <!--父级相对定位,子集绝对定位   提一句:定位,float的元素变成block型 如果没设宽高 由内容撑开-->
        水平:left:50%
             margin-left:-宽/2px;
        垂直:(宽高要设)
            top:50%
            margin-top:-高/2px;
        <!--有不兼容问题-->
        水平:left:50%
        垂直:(宽高没设,内容撑开)
            top:50%
        transform:translate(-50%,-50%)

        水平:left:0;right:0;top:0;botuom:0;margin:auto;
        垂直:(宽高要设)
  • 相关阅读:
    postgresql 高可用 etcd + patroni 之四 failover
    mysql 高可用架构 mha 之三 master_ip_online_change
    postgresql 一种比较个性的 sql 写法
    mysql 高可用架构 mha 之二 master_ip_failover
    mysql 高可用架构 mha 之一 安装
    vacuum 不释放文件系统空间
    mysql slave 复制冲突的解决
    mysql 8.0 登录报错
    oceanbase的一些网址信息
    cockroachdb的一些网址信息
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/9795713.html
Copyright © 2011-2022 走看看