zoukankan      html  css  js  c++  java
  • 微信小程序的布局

    一、盒子模型:

      margin(外边距),边框外的区域,外边距是透明的;

      border(边框),围绕在内边距和内容外的部分;

      padding(内边距),填充属性,是指内容周围的区域,内边距也是透明的;

      content(内容),盒子的实际内容,用于展示页面组件。

      在盒子模型中,确定内容位置的,是通过margin和padding这两个属性来确定的,而不是top,bottom,left,right等,这些属性在盒子模型中是失效的。

      在文档流中,通过设置margin:0 auto;使元素水平居中,此方式只适合在普通文档流情况下,在绝对定位和浮动中,元素不在属于正常文档流,因此不适用。

    二、显示方式Display:

      display属性用来设定,元素是否显示或元素行内显示还是块级显示,以及flex布局也是需要通过设定display属性完成的。属于文档流的布局格式。

      display:none和visibility:hidden属性都可以用来指定元素是可见还是隐藏。

      display:none;隐藏某个元素的同时会释放元素占用的页面空间。

      visibility:hidden;隐藏某个元素时,元素占用的空间不被释放,元素的布局依然起作用。

    值  描述
    none   此元素不会被显示
    block   此元素将会被显示为块级元素,前后带有换行符
    inline   默认,此元素被显示为内联元素,前后没有换行符
    inline-bolck 行内块元素
    flex flex布局显示
    list-item 此元素会作为列表显示
    run-in 此元素会根据上下文作为块级元素或内联元素显示

     三、定位Position:

    值   描述
    absolute

    生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位。元素从文档流中完全删除,

    元素原先在正常文档流中所占的空间会关闭,就像该元素不存在一样,如果文档流中该位置有元素,

    则会出现重叠现象。绝对定位于文档流无关,因此不占据文档流空间

    元素的位置通过"left"、“top”、“right”、“bottom”属性来定义。

    relative

    生成相对元素,相对于正常位置进行定位。依旧属于文档流中,占用文档流

    中的空间。通过"left"、“top”、“right”、“bottom”属性使元素距离原位置进行偏移。

    static 默认样式,没有定位,忽略样式表中"left"、“top”、“right”、“bottom”属性的影响。
    fixed 生成绝对定位的元素,相对于设备显示窗口进行定位。


    四、浮动Float:

      浮动属性产生之初是为了实现“文字环绕”的效果,让文字环绕图片在网页实现类似word中“图文混排”。

      定位方式:

      浮动让元素脱离正常流,向父容器的左边或右边移动直到碰到包含容器的边【经测试碰到padding即停】或者碰到其他浮动元素。文本和行内元素将环绕浮动元素。

      Note:

      1、碰到容器的边指的是容器的padding内边。

      2、浮动元素脱离正常流,意思是布局时后面元素当它不存在(文字还是当它存在,环绕其身边),但仍然在dom树上。后面的元素可能会被遮挡。

    //index.wxml
    <view class='view1'>红色</view>
    <view class='view2'>绿色</view>
    <view class='view3'>黄色</view>
    //index.wxss
    .view1{
       300rpx;
      height: 300rpx;
      background-color: red;
        float: left;
    }
    .view2{
       500rpx;
      height: 300rpx;
      background-color: green;
    }
    .view3{
       300rpx;
      height: 300rpx;
      background-color: yellow;
    }

    属性值   说明
    left 元素向左浮动
    right 元素向右浮动
    none 默认值,元素不浮动,并会显示其在文本中出现的位置
    inherit 规定应该从父元素继承float属性的值

      浮动的包裹性和破坏性:

      包裹性:包裹性指的是元素尺寸刚好容纳内容。可以利用浮动的包裹性来达到父容器自适应内部元素宽度。

      破坏性:破坏性是指元素浮动后可能导致父元素高度塌陷。

      浮动破坏性原理:

      因为浮动元素被从文档正常流中移除了,父元素当然还处在正常流中,所以父元素不能被浮动元素撑大。

      清除浮动---clear属性:

      取值:

      • left:元素左侧不允许有浮动元素
      • ight:元素右侧不允许有浮动元素
      • both:元素左右两侧均不允许有浮动元素
      • none:默认值,允许浮动元素出现在两侧

      

    五、Flex布局:

      盒子模型有它的不足之处,如我们需要元素垂直居中布局的时候,或者设计元素根据屏幕形式自动伸缩的响应式页面的时候,仅仅依靠盒子模型很难实现。Flex布局意即弹性布局,也被称为柔性布局,它让子项目方便的改变宽度、高度和顺序,为盒子模型提供最大的布局灵活性。Flex布局的元素大小是可伸缩的,可根据需要扩展自己的尺寸来填满可用空间。而常规的文档流布局中方向是确定的,块就是从上到下,内联就是从左到右,而在flex布局中,方向是不可预知的。

    属性   参数   说明  
    flex-direction

    主轴方向

    row:默认值,水平方向,从左到右;

    row-reverse:水平方向,从右到左;

    column:垂直方向,从上到下;

    cokumn-reverse:垂直方向,从下到上

    flex-wrap 换行属性

    nowrap:默认值,不换行;

    wrap:换行,由上到下排列,项目的第一行在最上方;

    wrap-reverse:换行,由下到上排列,项目的第一行在最下方。

    flex-flow   主轴方向和换行的缩写 rowwrap:水平方向,且换行;
    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    顺序  数值小的排在前面,大的排在后面。
     flex-grow  放大比例  默认值为0,将元素放到到原来的几倍
     flex-shrink  缩小比例  将元素缩小到原来的几倍。
     flex-basis  根据主轴剩余空间,决定在主轴中的元素是否拉伸或者压缩 

     默认值为auto,设置为auto时不拉伸也不压缩。可以设定为固定值。

    它的优先级高于对元素width的设定,当同时设定width和 flex-basis大小时,

    最后会按照 flex-basis的大小设定。

    flex   

    flex-grow, flex-shrink,

     flex-basis的简写形式

     默认为flex:0,1auto;
     align-self

     单项对齐属性,用于设置单个项目的对齐方式,

    设定值可以和align-items属性的其他项目的对齐方式不同。 

     默认值为auto ,表示继承容器的align-items属性。其他为flex-start等。
  • 相关阅读:
    出现错误:代理服务器拒绝连接的解决方法
    ansible之模块 条件判断
    软件相关模块与ansible剧本
    ansible的应用
    Celery -----异步任务,定时任务,周期任务
    SQLAlchemy增删改查 一对多 多对多
    python是如何进行内存管理的?
    Django的模板层(1)
    1.Git安装
    6.case
  • 原文地址:https://www.cnblogs.com/moxuexiaotong/p/10245634.html
Copyright © 2011-2022 走看看