精华内容
下载资源
问答
  • 百分比布局怎么写
    千次阅读
    2021-03-21 21:09:10

    定义

    流式布局,就是百分比布局,也称非固定像素布局。
    通过盒子的宽度设置成百分比根据屏幕的宽度进行伸缩,不受固定像素的限制,内容向两侧填充。
    在早期用来应对不同尺寸的PC端,如今也是移动开发使用的比较常见的布局方式。

    max-*、min-*

    百分比布局经常搭配这两个使用
    比如所选区域占宽75%,但是将视觉视口调小又需限制其最小宽度,所以往往通过min-width限制,在定义图片时往往使用max-width等于其宽度来防止图片拉伸变形。
    如:

    body{
        margin: 0 auto;
        width: 100%;
        min-width: 320px;
        max-width: 640px;
        font-size: 14px;
        font-family: -apple-system,Helvetica, sans-serif;
        color: #666;
        line-height: 1.5;
    }
    

    优缺点

    优点:通过百分比设置宽度,可以自适应不同尺寸屏幕

    缺点:高度和文字大小都是通过px固定取值,所以如果当显示屏幕过大或过小可能会导致某些页面元素被拉的很长很扁,不能正常显示。

    更多相关内容
  • 百分比布局适配

    2021-01-03 20:11:16
    文章目录一、简述二、google推荐的百分比布局的使用方式三、实现3.1 创建属性文件3.2 解析3.3 计算并设置百分比布局四、使用五、完整代码六、注意 一、简述 百分比布局适配,就是以父容器的尺寸作为基准,在view的...
  • 百分比布局

    2016-05-26 22:38:02
    percentLayout 百分比布局
  • 百分比布局项目

    2021-04-04 18:36:34
    这就是一个百分比布局项目,源码android-percent-support-lib-sample,谷歌最新的百分比布局库的示例项目。其实LinearLayout的layout_weight也能实现百分比效果,不过这个更直接。
  • 主要介绍了Android 百分比布局详解及实例代码的相关资料,这里附有代码实例帮助大家学习参考,如何实现百分比布局,需要的朋友可以参考下
  • Android百分比布局.rar

    2019-07-30 11:44:34
    Android百分比布局.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • Android百分比布局

    2016-09-27 13:14:46
    继承自Relative的自定义布局,实现了按照百分比布局控件,控件的比例可以按照自己指定的布局,不会因为手机尺寸的原因造成空间比例失调,控件的长宽比例由自己指定,参数值只需要设置一个(手机屏幕的高度或者宽度值...
  • android百分比布局

    2016-10-10 15:30:15
    android百分比布局
  • Google百分比布局demo

    2017-05-17 14:46:31
    google百分比布局demo,里面有percentFrameLayout, percentLinearLayout, percentRelativityLayout,完美的屏幕适配方案,有需要的可以下载使用
  • 它将很快在android dev网站上进行记录,因此这只是概念的证明:) 您可以查看官方文档参考该库同时提供基于百分比布局,水平和垂直。简单的结果复杂的结果 来自 ###支持的布局: #### PercentRelativeLayout < ...
  • Android 百分比布局库jar 为了适配而扩展
  • android 百分比布局 Eclipse项目 简单的使用和源代码还有需要的styleable 包含PercentFrameLayout,PercentLinearLayout,PercentRelativeLayout 一看就会用
  • 一、百分比布局 1.1 视口 1.1.1 ideal viewport 理想视口 1.2 background-size 二、移动端开发 2.1 移动端开发的几种解决方案: 2.1.1 单独制作移动端页面 2.1.2 响应式页面 2.2 百分比布局 三、伸缩布局 ...

    目录

    一、百分比布局

    1.1 视口

    1.1.1 ideal viewport 理想视口

    1.2 background-size

    二、移动端开发

    2.1 移动端开发的几种解决方案:

    2.1.1 单独制作移动端页面

    2.1.2 响应式页面

    2.2 百分比布局

    三、伸缩布局

    3.1 flex 布局详解

    3.2 父项常见的属性

    3.2.1 flex-direction 属性

    3.2.2 justify-content 属性

    3.2.3 flex-wrap 属性

    3.2.4 align-items 属性

    3.2.5 align-content 属性

    3.2.6 align-content 和 align-items 的区别

    3.2.7 flex-flow 属性

    四、项目属性

    4.1 order 属性

    4.2 flex-grow 属性

    4.3 flex-shrink 属性

    4.4 flex-basis 属性

    4.5 flex 属性

    4.6 align-self 属性


    一、百分比布局

    1.1 视口

    1.1.1 ideal viewport 理想视口

    理想视口就是最理想的视口尺寸。需要添加 meta 视口标签通知浏览器操作,最主要是保证和理想视口的宽度保持一致。

    属性说明
    width宽度设置的是 viewport 宽度,可以设置 device-width 特殊值
    initial-scale初始缩放比,大于0的数字
    maximum-scale最大缩放比,大于0的数字
    minimum-scale最小缩放比,大于0的数字
    user-scalable用户是否可以缩放,yes 或 no(1 或 0)
    <meta
          name="viewport"
          content="width=device-width, 
          user-scalable=no,
          initial-scale=1.0,
          maximum-scale=1.0,
          minimum-scale=1.0"
        />

    1.2 background-size

    background-size 是 css3 新出来的属性,值可以是具体像素、百分比或者 cover、contain

    两个参数:

    100px 200px 代表背景图的大小是宽度 100px 高度 200px

    一个参数:

    100px 代表宽高都是 100px

    cover:图片的宽度和高度会拉伸,自动铺满容器,会溢出,部分背景图显示不全

    contain:图片的宽度和高度会拉伸,宽度达到临界点以后,高度还会再拉伸,所以容易出现部分空白

    <style>
          #box {
            width: 200px;
            height: 200px;
            border: 1px solid #000;
            background: url(images/01.png) no-repeat;
            background-size: contain/cover/100px 200px;
          }
        </style>
      </head>
      <body>
        <div id="box"></div>
      </body>

    二、移动端开发

    2.1 移动端开发的几种解决方案:

    2.1.1 单独制作移动端页面

    1. 流式布局

    2. flex 伸缩布局

    3. less + rem + 媒体查询

    4. 混合布局

    2.1.2 响应式页面

    响应式页面最有代表性的就是用我们前面学过的bootstrap框架实现,就是相对来说修改比较麻烦,现在主流的还是单独制作移动端页面比较多。

    1. 媒体查询

    2. bootstrap

    2.2 百分比布局

    流式布局也就是百分比布局最主要的是把容器的宽度设置成百分比,然后里面的内容就可以自由伸缩了。

    <style>
          * {
            margin: 0;
            padding: 0;
          }
          header {
            width: 100%;
            height: 400px;
            margin: 0 auto;
            /* 设置最大宽 */
            max-width: 750px;
            /* 设置最小宽度 */
            min-width: 320px;
          }
          section:nth-child(1) {
            width: 50%;
            height: 400px;
            background-color: red;
            float: left;
          }
          section:nth-child(2) {
            width: 50%;
            height: 400px;
            background-color: yellow;
            float: left;
          }
        </style>
      </head>
      <body>
        <header>
          <section>11</section>
          <section>22</section>
        </header>

    三、伸缩布局

    3.1 flex 布局详解

    • flex 是 flexible box 的缩写,意为“弹性布局”,用来为盒装模型提供最大的灵活性

    • 任何一个容器都可以指定为 flex 布局

    • 当为父盒子设为 flex 布局以后,子元素的 float、clear 和 vertical-align 属性将失效

    • 采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。

    • 容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

    • 项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

    3.2 父项常见的属性

    属性说明
    flex-direction设置主轴的方向
    justify-content设置主轴上子元素的排列方式
    flex-wrap设置子元素是否换行
    align-content设置侧轴上子元素的排列方式(多行)
    align-items设置侧轴上子元素的排列方式(单行)
    flex-flow复合属性,相当于同时设置了 flex-direction 和 flex-wrap

    3.2.1 flex-direction 属性

    flex-direction属性决定主轴的方向(即项目的排列方向)

    .box {
        flex-direction: row | row-reverse | column | column-reverse;
    }
    属性说明
    row(默认值)主轴为水平方向,从左到右
    row-reverse主轴为水平方向,从右到左
    column主轴为垂直方向,从上到下
    column-reverse主轴为垂直方向,从下到上

    3.2.2 justify-content 属性

    justify-content 属性定义了项目在主轴上的对齐方式

    .box {
        justify-content: flex-start | flex-end | center | space-between | space-around;
    }

    具体对齐方式与轴的方向有关。下面假设主轴是从左到右

    属性说明
    flex-start左对齐
    flex-end右对齐
    center居中对齐
    space-around两端对齐,项目之间的间隔都相等。项目平分剩余空间
    space-between先两边贴边,再平分剩余空间,每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍

    3.2.3 flex-wrap 属性

    flex-wrap 属性设置是否换行

    默认情况下,项目都排在一条线(又称”轴线”)上,flex布局中默认是不换行的

    属性说明
    nowrap不换行
    wrap换行

    3.2.4 align-items 属性

    设置侧轴上的子元素排列方式(单行)

    .box {
      align-items: flex-start | flex-end | center | baseline | stretch;
    }
    属性说明
    flex-start交叉轴的起点对齐(从头部开始)
    flex-end交叉轴的终点对齐(从尾部开始)
    center交叉轴的中点对齐(居中对齐)
    baseline项目的第一行文字的基线对齐
    stretch(默认值)如果项目未设置高度或设 auto ,将占满整个容器的高度

    3.2.5 align-content 属性

    设置侧轴上的子元素排列方式(多行),如果项目只有一根轴线,该属性不起作用。

    .box {
      align-content: flex-start | flex-end | center | space-between | space-around | stretch;
    }
    属性说明
    flex-start与交叉轴的起点对齐(从侧轴头部开始)
    flex-end与交叉轴的终点对齐(从侧轴尾部开始)
    center与交叉轴的中点对齐(在侧轴中间显示)
    space-between与交叉轴两端对齐,轴线之间的间隔平均分布(子项在侧轴先分布在两头,在平分剩余空间)
    space-around每根轴线两侧的间隔都相等,轴线之间的间隔比轴线与边框的间隔大一倍(子项在侧轴平分剩余空间)
    stretch(默认值)轴线占满整个交叉轴(设置子项元素高度平分父元素高度)

    3.2.6 align-content 和 align-items 的区别

    • align-items 适用于单行情况下, 只有上对齐、下对齐、居中和 拉伸

    • align-content适应于换行(多行)的情况下(单行情况下无效), 可以设置 上对齐、下对齐、居中、拉伸以及平均分配剩余空间等属性值。

    • 总结就是单行找align-items 多行找 align-content

    3.2.7 flex-flow 属性

    flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap

    .box {
      flex-flow: <flex-direction> || <flex-wrap>;
    }

    四、项目属性

    以下6个属性设置在项目上

    属性说明
    order定义项目的排列顺序
    flex-grow定义项目的放大比例
    flex-shrink定义项目的缩小比例
    flex-basis定义再分配多余空间之前,项目占据的主轴空间
    flex是 flex-grow,flex-shrink,flex-basis 的简写
    align-self允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items 属性

    4.1 order 属性

    order 属性定义项目的排列顺序,数值越小,排列越靠前,默认值为 0

    .item {
      order: <integer>;  /* 整数 */
    }

    4.2 flex-grow 属性

    flex-grow 属性定义项目的放大比例,默认值为0,即如果存在剩余空间,也不放大

    .item {
      flex-grow: <number>; /* 默认 0 */
    }

    如果所有项目的flex-grow属性都为1,则它们将等分剩余空间(如果有的话)。如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

    4.3 flex-shrink 属性

    flex-shrink 属性定义了项目的缩小比例,默认值为1,即如果空间不足,该项目将缩小

    .item {
      flex-shrink: <number>; /* 默认 1 */
    }
    • 如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小。如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小。

    • 负值对该属性无效。

    4.4 flex-basis 属性

    flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

    .item {
      flex-basis: <length> | auto; /* 默认 auto */
    }

    它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。

    4.5 flex 属性

    flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选

    .item {
      flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
    }
    • 该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。

    • 建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。

    4.6 align-self 属性

    align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

    .item {
      align-self: auto | flex-start | flex-end | center | baseline | stretch;
    }

    该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

    展开全文
  • constraintlayout布局中为我们提供了,两种百分布局可以帮助我们去适配界面第一种layout_constraintVertical_bias 该属性代表的意思是垂直距离的百分比,默认0.5就是剧中第二种layout_constraintHorizontal_bias ...

    constraintlayout布局中为我们提供了,两种百分布局可以帮助我们去适配界面

    第一种

    layout_constraintVertical_bias 该属性代表的意思是垂直距离的百分比,默认0.5就是剧中

    第二种

    layout_constraintHorizontal_bias 水平距离的百分比,也是一样默认0.5就是剧中

    如果要使用以上属性,必须要设置该view的上下左右的约束

    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:id="@+id/tv__id_item_layout"

    android:layout_width="0dp"

    android:layout_height="wrap_content"

    android:background="@color/colorAccent"

    android:textAllCaps="false"

    android:textColor="@android:color/white"

    android:textSize="20sp"

    app:layout_constraintEnd_toEndOf="parent"

    app:layout_constraintStart_toStartOf="parent"

    app:layout_constraintTop_toTopOf="parent" />

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:background="@drawable/ic_launcher_background"

    app:layout_constraintBottom_toBottomOf="parent"

    app:layout_constraintHorizontal_bias="0.9"

    app:layout_constraintLeft_toLeftOf="@id/tv__id_item_layout"

    app:layout_constraintRight_toRightOf="parent"

    app:layout_constraintTop_toTopOf="@id/tv__id_item_layout"

    app:layout_constraintVertical_bias="0.8">

    看看各大屏幕的效果

    1daec18b2a99

    {94CE0FE4-6926-451F-949A-782E275ED40D}_20200815102622.jpg

    还有一种

    layout_constraintDimensionRatio 宽高百分比和高宽百分比的约束属性

    要想使用此属性,必须设置0db,也就是设置MATCH_CONSTRAINT属性,才能生效,这里默认的是宽和高的比值,也可以自己定义 H 3:1 这样格式就是高比宽

    1daec18b2a99

    {0C8E0F90-5214-4480-A1F5-348A0306DDC9}_20200815104622.jpg

    xmlns:app="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    android:id="@+id/tv__id_item_layout"

    android:layout_width="0dp"

    android:layout_height="wrap_content"

    android:background="@color/colorAccent"

    android:textAllCaps="false"

    android:textColor="@android:color/white"

    android:textSize="20sp"

    app:layout_constraintEnd_toEndOf="parent"

    app:layout_constraintStart_toStartOf="parent"

    app:layout_constraintTop_toTopOf="parent" />

    app:layout_constraintDimensionRatio="1:5"

    android:layout_width="wrap_content"

    android:layout_height="0dp"

    android:background="@drawable/ic_launcher_background"

    app:layout_constraintBottom_toBottomOf="parent"

    app:layout_constraintLeft_toLeftOf="@id/tv__id_item_layout"

    app:layout_constraintRight_toRightOf="parent"

    app:layout_constraintTop_toTopOf="@id/tv__id_item_layout">

    展开全文
  • 移动端特点、百分比布局以及flex布局

    一、移动端特点

    1、不同之处

    PC端:屏幕大,网页固定板心,但是浏览器繁多,更多考虑兼容性问题(布局:浮动+定位+标准流)

    移动端:移动端则进本不需要考虑兼容性问题,放心大胆的试用css新特性,但是手机屏幕小,网页宽度多数为100%,是适配手机屏幕宽度

    2、物理分辨率和逻辑分辨率

    ①物理分辨率:硬件所支持的,屏幕出厂就设定无法修改

    ②逻辑分辨率:软件可以达到的,我们开发中写的是逻辑分辨率

    3、 视口:视口就是浏览器显示页面内容的屏幕区域

    ①布局视口:iOS, Android基本都将这个视口分辨率设置为980p

    ②视觉视口:用户正在看到的网站的区域

    ③理想视口:设备有多宽,我们网页就显示有多宽

    4、视口标签

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

    一般我们的编程软件在快捷生成骨架时,都可以自动生成,所以这个了解即可

    width=device-width:视口宽度=设备宽度

    initial-scale=1.0:初始页面缩放倍数

    maximum-scale=1.0 最大缩放倍数

    user-scalable=0 不允许用户缩放页面(移动端) 或者为 no 如果为 yes 则允许用户缩放

    5、二倍图

    二倍图的存在就是为了让页面中的图片更加清晰

    其实实际开发中还有三倍图甚至四倍图等,多倍图,但是现在市场还是二倍图偏多

    网页美工的设计稿基本是 750px

    我们前端工程师拿到设计稿利用像素大厨选择 2X, 进行缩小一半,按照提示的单位开发即可

     二、百分比布局

    目标: 能够使用百分比布局开发网

    百分比布局, 也叫流式布局

    效果: 宽度自适应,高度固定

    写法:width:100%  宽度显示父盒子宽度的100%

    三、flex布局

    flex布局极大的提高了我们布局的效率,更简单、灵活

    display:flex 将父元素变成弹性容器,只能加在父元素上

    1、主轴对齐方式(主轴默认是x轴)

    flex-start      默认值,从起点开始排列

    flex-end        从终点开始排列

    center          沿主轴居中开始排列

    space-around    弹性盒子沿主轴均匀排列,空白间距平均分布在每一个弹性盒子的  左右两侧

    space-between   弹性盒子沿主轴均匀排列,空白间距平均分布在相邻盒  子之间(可以让元素水平居中)<使用次数较多>

    space-evenly    弹性盒子沿主轴均匀排列,弹性盒子于弹性容器之间的间距相等

    2、侧轴对齐方式(侧轴默认是y轴)

    flex-start      起点开始依次排列

    flex-end        终点开始依次排列

    center          沿侧轴居中排列(可以让元素垂直居中)<使用次数较多>

    strech          默认效果,弹性盒子沿着侧轴被拉伸至铺满容器 

     3、伸缩比

     把父盒子分为若干等分,每个盒子各站几份

     flex:数字; 一定要给给子元素加

    比如有一个父盒子里面有三个子盒子,每个子盒子写 flex:1;  此时每个子盒子各占三分之一

    4、圣杯布局

    左右两边大小固定不变,中间宽度自适应

    一般这种布局方式适用于各种移动端顶部搜索部分,这是最常见的,如京东手机版主页面顶部搜索

     核心思路:

                    两侧盒子写固定大小

                    中间盒子 flex: 1;  占满剩余空间

    小结:在flex眼中,标签不再分类

    1、简单来说就是没有块级元素、行内元素、行内块元素,任何元素都可以直接设置宽高,一行显示

    2、flex不存在脱标的情况,也就是说基本淘汰了浮动,更不用清除浮动

    3、当前也存在着兼容性的问题,如果不考虑兼容性,则可以大量使用,如果是移动端  则可以不用考虑直接flex

    4、用flex布局设置水平垂直居中更加方便快捷

                 display: flex;

                justify-content: center;

                align-items: center;

    添加到父元素上即可

    展开全文
  • #博学谷IT学习技术支持#一、百分比布局:能够使用百分比布局开发网页。百分比布局, 也叫流式布局 。效果: 宽度自适应,高度固定。二、Flex布局:能够使用Flex布局模型灵活、快速的开发网页Flex布局/弹性布局: 是...
  • 页面的百分比布局

    千次阅读 2020-08-15 14:39:31
    所以特定总结一个百分比的页面布局。 知识点: 基本的Html页面构成: //<!DOCTYPE> 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。 <!doctype html> <html>...
  • Android 百分比布局(支持AndroidX)

    千次阅读 2021-01-21 15:29:16
    Android 百分比布局添加依赖代码使用 添加依赖 implementation ‘com.android.support:percent:25.2.0’ 我的项目是AndroidX的,依然用这个依赖哦~ 代码使用 <androidx.percentlayout.widget.PercentFrameLayout...
  • 物理像素比二倍图背景缩放 background-size移动端技术解决方案CSS3盒子模型box-sizing移动端特殊样式设置移动端常见布局流程布局/百分比布局flex布局flex布局小练习需求1: 常见的上下结构需求2:背景渐变色需求3:10...
  • HTML CSS实现百分比布局

    千次阅读 2019-09-07 19:35:39
    HTML CSS实现百分比布局HTML代码CSS代码实现效果媒体查询...这种情况下,使用百分比布局无疑是一种很好的选择。 但是这种方式实现的是间隔固定、item宽度可变。有时候也会遇到item宽度固定,间距可变的情况,但是这...
  • 【android】通过父容器大小,子控件百分比布局 导入项目添加依赖,可以直接复制源码进项目; 1、在自己布局文件中,最外层容器添加引用 xmlns:badboy="http://schemas.android.com/apk/res-auto" badboy自己随意...
  • 百分比布局库函数

    2016-05-09 20:17:04
    百分比布局库函数
  • 流式布局(百分比布局) flex 弹性布局 less+rem+媒体查询布局 混合布局 响应式布局: 媒体查询 bootstarp 今天我们先来认识一下百分比布局和flex布局 1.流式布局: 流式布局,就是百分比布局,也称非固定像素...
  • 1、百分比布局 (1)子元素的宽高百分比设置: ①手动计算百分比 width:30% ②利用计算函数属性, width:calc(子元素宽 / 父宽 * 100% ) 运算符号前后空格,计算高同理 (2)版心的百分比布局设置 避免版心...
  • 一、流式布局(百分比布局) 概念:流式布局是一种等比例缩放布局方式,在CSS代码中使用百分比来设置宽度,所以也称百分比自适应布局。流式布局实现方法是,将CSS固定像素宽度换算为百分比宽度。 换算格式:目标...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,641
精华内容 23,856
热门标签
关键字:

百分比布局怎么写