zoukankan      html  css  js  c++  java
  • 移动端布局

    1.移动布局
      1.移动设备:手机和iPad
        安卓系统 iOS系统
        安卓系统,内置浏览器是谷歌 iOS内置 Safari浏览器 他们的内核是webkit,
        不考虑兼容性,需要考虑的是安卓和iOS的区别
    2.布局
      设备宽度:设备的实际大小,设备的分辨率---厂家给的
      页面的大小··设计稿上的大小
      浏览器的视口··浏览器自带的,可通过document.documentElement.clientWidth来查看,在移动设备上如果不做视口处理一般默认是980;
      如果设备宽,页面宽,浏览器视口三者不统一,我们用移动设备看页面,浏览器的视口会自动缩放,以100%完整展示页面,但是就会变得不清楚,特别挤。我们需要把这三个变得统一。
      1.让设备宽和浏览器视口宽一致:
        在head之间加一个meta标签,name="viewport";
          <meta name="viewport" content="width=device-width,initial-scale=1,maximum-    scale=1.0,user-sclable=no">
          width=device-页面宽度等于当前设备宽度
          initial-scale=1:初始缩放比例(默认设置为1)
          maximum-scale=1.0:允许用户缩放的最大比例(默认1.0)
          minimum-scale=1.0:允许用户缩放的最小比例(默认1.0)
          user-sclable:是否允许用户手动缩放
        设备宽度与浏览器视口宽度一致时,如果页面宽大于这个数字,就会出现滚动条
      2.当移动设备和浏览器视口一致时,如果还是用以前的布局,如果页面超过设备宽,超过的部分就会被截掉。所以不能使用传统的开发模式了。
        可以使用:
          1.流式布局(百分百布局)
            <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1.0,user-sclable=no">
          2.弹性布局
            1)分两部分,弹性父级,弹性子元素
            2)给父级设置display:flex/inline-flex/box;
            3)flex-direction:指定弹性子元素在父级容器中的位置
              row:横向从左到右排列(左对齐),默认的排列方式。
              row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面。
              column:纵向排列。
              column-reverse:反转纵向排列,从后往前排,最后一项排在最上面。
            4)justify-content: flex-start | flex-end | center | space-between | space-around

                属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐

                flex-start :弹性项目向行头紧挨着填充

                flex-end :弹性项目向行尾紧挨着填充。

                center :弹性项目居中紧挨着填充。

                space-between :弹性项目平均分布在该行上

                space-around  :弹性项目平均分布在该行上,两边留有一半的间隔空间

            5)align-items: flex-start | flex-end | center | baseline | stretch

                设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。

                flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

                flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

                center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

                baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

                stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。

            6)flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;

              属性用于指定弹性盒子的子元素换行方式。

              nowrap - 默认, 弹性容器为单行。该情况下弹性子项可能会溢出容器。

              wrap - 弹性容器为多行。该情况下弹性子项溢出的部分会被放置到新行,子项内部会发生断行

              wrap-reverse -反转 wrap 排列。

            7)align-content: flex-start | flex-end | center | space-between | space-around | stretch

              属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。

              stretch - 默认。各行将会伸展以占用剩余的空间。

              flex-start - 各行向弹性盒容器的起始位置堆叠。  

              flex-end - 各行向弹性盒容器的结束位置堆叠。  

              center -各行向弹性盒容器的中间位置堆叠。

              space-between -各行在弹性盒容器中平均分布。

              space-around - 各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。

            8)order:排序

              <integer>:用整数值来定义排列顺序,数值小的排在前面。可以为负值。

            9)设置"margin"值为"auto"值,自动获取弹性容器中剩余的空间。所以设置垂直方向margin值为"auto",可以使弹性子元素在弹性容器的两上轴方向都完全居中。

            10)align-self 属性用于设置弹性元素自身在侧轴(纵轴)方向上的对齐方式。

              align-self: auto | flex-start | flex-end | center | baseline | stretch

              auto:如果'align-self'的值为'auto',则其计算值为元素的父元素的'align-items'值,如果其没有父元素,则计算值为'stretch'。

              flex-start:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界。

              flex-end:弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。

              center:弹性盒子元素在该行的侧轴(纵轴)上居中放置。(如果该行的尺寸小于弹性盒子元素的尺寸,则会向两个方向溢出相同的长度)。

              baseline:如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效。其它情况下,该值将参与基线对齐。

              stretch:如果指定侧轴大小的属性值为'auto',则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照'min/max-width/height'属性的限制。


          3.响应式布局
            在不同的设备上页面的布局是不一样的,这种布局方式叫响应式布局

            由媒体查询事项的@media
            @media可以定义视口/朝向/分辨率/宽高
            语法:@media mediatype(设备类型) and (属性) {css样式}
            设备类型scroll 屏幕设备:all
            property(属性):width device-pixel-ratio

            
          4.rem布局

            rem是单位,由根节点的字体大小来决定,HTML就是根节点

            1rem=html中font-size的大小

  • 相关阅读:
    分享上大学时CCTV5经常播放的一段宣传片
    嗯, 在Vista下面post一篇, 快过年的二三事
    [转自天涯]很多年以前,我是一个中锋
    关于Anthem的Button控件, 为啥仍然会PostBack?
    小白三下杭州
    搜狗, 谷歌, 紫光, 3大输入法互打结果.
    2008春节回家流水账
    早上拍的雪景.
    如果安装.net framework 3.5出错, 可以这样解决
    我那幸福的坐车偶记...
  • 原文地址:https://www.cnblogs.com/mo123/p/10827375.html
Copyright © 2011-2022 走看看