V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blackMountain
V2EX  ›  前端开发

h5 页面自适应,完美,弹

  •  
  •   blackMountain · 2017-06-14 17:00:46 +08:00 · 4796 次点击
    这是一个创建于 2748 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前知道的 h5 页的自适应方法有两种,但都不是很完美。

    一种是快被被淘汰的:

    <meta name="viewport" content="width=750,target-densitydpi=device-dpi,user-scalable=no"/>

    这个的好处是所有元素都可以用 px 来规定宽高,因为页面会随着设备的尺寸自动缩放。 但是这种方法很坑,因为写出来的页面是固定比例的,在不同设备下页面比例之外的部分都是一片白色,非常难看。

    第二种方法是现在最常用的:

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

    页面宽度等于设备宽度,高度 100%就好了。

    这种方法的缺点在于,因为页面宽高不确定,页面里元素只能用百分比来规定尺寸。有些情况百分比不是那么方便: 比如要让 div 中的字体垂直居中,但是 div 高度是用百分比写的没办法用 line-height。 又比如 iphone5 这种奇葩机型,按比例写出来的页面肯定会崩溃的。

    是不是我孤陋寡闻,其实还有一种完美解决自适应问题的方法呢。

    12 条回复    2017-06-15 15:41:00 +08:00
    horizon
        1
    horizon  
       2017-06-14 17:04:28 +08:00
    垂直居中用 flex 啊。。为啥还要用百分比。。
    blackMountain
        2
    blackMountain  
    OP
       2017-06-14 17:05:46 +08:00
    @horizon 不是阿,写了一个 div,然后让 div 中的文字垂直居中,这个怎么用 flex 阿
    est
        3
    est  
       2017-06-14 17:08:35 +08:00
    @blackMountain table 大法好
    xss
        4
    xss  
       2017-06-14 17:33:18 +08:00
    不是非常懂前端
    但是垂直居中这种需求我一般是
    display: table
    还是 table-cell 来着?
    horizon
        5
    horizon  
       2017-06-14 17:35:06 +08:00
    rabbbit
        6
    rabbbit  
       2017-06-14 17:49:34 +08:00
    .div {display: flex;align-items: center;}
    试试这个?
    Biwood
        7
    Biwood  
       2017-06-14 18:27:07 +08:00
    div {
    display: table-cell;
    vertical-align: middle;
    }

    或者

    div {
    display: flex;
    align-items: center;
    }

    都可以
    lupkcd
        8
    lupkcd  
       2017-06-14 19:09:30 +08:00
    来 大兄弟 试试这句代码 `<meta name="viewport" content="width=640,target-densitydpi=device-dpi,maximum-scale=1.0, user-scalable=no">`
    还有各种 rem 方案等
    chairuosen
        9
    chairuosen  
       2017-06-14 19:09:47 +08:00
    rem 方案啊
    dtw5t
        10
    dtw5t  
       2017-06-14 20:06:39 +08:00
    flex+rem
    blackMountain
        11
    blackMountain  
    OP
       2017-06-15 14:13:14 +08:00
    @rabbbit @Biwood 恩,谢谢,学到了一种新的垂直居中方法,以前都用 line-height 等于元素的高
    meepo3927
        12
    meepo3927  
       2017-06-15 15:41:00 +08:00
    有成熟方案的, 请搜 flexible.js
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1308 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:20 · PVG 01:20 · LAX 09:20 · JFK 12:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.