媒体查询结合rem实现移动端布局

第一步:先写好重置的样式。直接复制粘贴即可

    @media all and (max-width: 320px){
        html{
            font-size: 12px;
        }
    }
    @media all and (min-width: 321px) and (max-width: 375px){
        html{
            font-size: 14px;
        }
    }
    @media all and (min-width:376px){
        html{
            font-size: 16px;
        }
    }
@charset "utf-8";
html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img,input,figure,figcaption{margin:0;padding:0;}
section,article,aside,header,footer,main,nav,hgroup{display:block;}
a,u{text-decoration:none;}
em,i{font-style:normal;}
b,strong{font-weight:normal;}
ul,ol,li{list-style:none;}
h1,h2,h3,h4,h5,h6{font-size:16px;font-weight:normal;}
body{font-family: "微软雅黑"}
input{outline:none;}
img{border:0;display:block;}

写移动端另外加上的

*{box-sizing:border-box;}
body,html{height:100%;}
body{display: flex;flex-direction: column;}

在head里,style外需加上下面一句。

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

第二步:写头部

头部html

    <header>
            <span>热点</span>
            <span>关注</span>
    </header>

头部style

    header{
        height:3.67rem;
        background: #0dc441;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    header span{
        width: 5.04rem;
        height: 2.04rem;
        background: gray;
        color:#fff;
        text-align: center;
        line-height: 2.04rem;
    }

两个span的共同点写完了,接着分别微调不一样的地方

    header span:nth-child(1){
        border-radius: 1rem 0 0 1rem;
        background: #64d985;
    }
    header span:nth-child(2){
        border-radius: 0 1rem 1rem 0;
        background: #3dd067;
    }

第三部,写导航nav

导航html。这里的class类名是点击效果。因为还没涉及js,暂时就先写成这样

    <nav>
            <li class="active">足球生活</li>
            <li>足球生活</li>
            <li>足球生活</li>
    </nav>

导航style。因为每个li宽度一样,所以可以给nav定义成弹性盒,然后在主轴分散对齐,侧轴居中对齐。随后做了个点击后变化的效果

    nav{
        height: 2.96rem;
        display: flex;
        background: yellow;
        border-bottom: 1px solid #d9d9d9;
    }
    nav li{
        flex: 1;
        line-height: 2.96rem;
        text-align: center;
        color:#666666;
    }
    nav li:active{
        color: #0dc441;
        border-bottom: 2px solid #0dc441;
    }

第四部:写底部。因为中间板块的高度不可以固定,所以先写好底部。之后再给中间板块加上flex:1,将剩余空间全分配给它。

底部html

    <footer>
            <div>
                <span class="iconfont icon-wode"></span>
                <i>首页</i>
            </div>
            <div>
                <span class="iconfont icon-wode"></span>
                <i>首页</i>
            </div>
            <div>
                <img src="images/xiangji_03.png" >
            </div>
            <div>
                <span class="iconfont icon-wode"></span>
                <i>首页</i>
            </div>
            <div>
                <span class="iconfont icon-wode"></span>
                <i>首页</i>
            </div>
    </footer>
##底部style
    footer{
            height: 3.625rem;
            background: pink;
        }
    footer{
        display: flex;
        justify-content: space-around;
        border: 1px solid #cbd7cc;
    }
    footer div{
        height: 3.625rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;

    }
    footer div:nth-child(3){
        position: relative;
    }
    footer div:nth-child(3) img{
        position: absolute;
        bottom: 0;
    }

第五步:写主要内容板块。光给main分配剩余空间还不够,中间板块的内容还是会把头和底挤掉。需得给article也加弹性盒。当写好之后,发现中间板块没法滑动,需得在main那加上overflow:auto

    <main>
        <article>
                <figure>
                    <img src="images/03index_0_02.jpg" >
                    <figcaption>小丸子啊萌萌哒小丸...</figcaption>
                </figure>

        </article>
    </main>
main{
        flex: 1;
        overflow: auto;
    }

    main article{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    main figure{
        width: 49%;
        display: flex;
        flex-direction: column;
        margin-bottom: 0.4rem;

    }
    main figure img{
        width: 100%;
    }
    main figure figcaption{
        height: 2.5rem;
        border:1px solid #e5e5e5;
        line-height: 2.5rem;
    }

完!

原文地址:https://www.cnblogs.com/web-learning/p/10268630.html

时间: 2024-11-08 00:56:03

媒体查询结合rem实现移动端布局的相关文章

vw结合rem实现移动端布局

继上一篇<媒体查询结合rem实现移动端布局>的改进! 还是以昨天写的页面为例 上一回说到了媒体查询结合rem做移动端布局,步骤如下 首先设置媒体查询,确定html中font-size值的变化 @media all and (max-width:320px){ html{font-size:12px;} } @media all and (min-width:321px) and (max-width:375px){ html{font-size:14px;} } @media all and

rem与移动端布局

移动端布局痛点在:兼容各个分辨率的移动设备,同样是手机,iPhone4-iPhoneX分辨率范围就已经很广:如果使用px进行布局,显然会出现问题: 常见的像素单位px,em,rem中,em是相对于父元素font-size的单位,个人认为在使用中,em会比较混乱:rem相对的是根元素.HTML,便于根据屏幕分辨率进行布局: 目前移动端布局采用的方式:  “横向百分比 + 纵向rem”,同时使用flex布局,媒体查询: https://www.cnblogs.com/ysshuai/p/669433

Web移动前端开发-——rem+less+媒体查询,rem+flexble.js+媒体查询

实际开发搞搞起来!!!! rem适配方案 媒体查询+rem+less 基础知识铺垫 第一步,我们需要拿到设计稿,安装设计稿的要求来设置一个合适的html字体大小. 第二步,计算元素大小的取值 页面rem = 页面元素值(设计稿) / (屏幕的宽度/划分的份数) (屏幕的宽度/划分的份数) = html大小 这个算法你也不需要太纠结,按照这个来就是 最后终结一下: 首先我们选一套标准尺寸 750为准 我们用屏幕尺寸 除以 我们划分的份数 得到了 html 里面的文字大小 但是我们知道不同屏幕下得到

媒体查询 和rem布局

@media screen and (min-width: 320px) {html{font-size: 45.66px;}} @media screen and (min-width: 360px) {html{font-size:48px;}} @media screen and (min-width: 375px) {html{font-size:50px;}} @media screen and (min-width: 400px) {html{font-size:53.33px;}}

响应式布局和移动端布局

响应式布局就是响应式设计方案呈现的效果.具体就是页面的布局会根据不同设备的显示面积(主要是宽度)的不同而呈现不同的布局,这个效果是比弹性的布局更好的地方是样式会主动地根据用户的设备的显示面积呈现的布局更灵活,可读性更强.当然对研发的要求也更高(比如说如何更好地让图片,适配,UI动画自适应各种布局).响应式设计一般来说是一套设计方案解决所有的设备的自适应问题.对应的样式文件可能是多个,也可以只写一个(在一个css文件声明不同的media query就可以). 移动端布局就是传统的固定宽度或者弹性布

探讨移动端布局适配方案

一.前提知识 移动端的屏幕尺寸有多种,其中要知道几个知识 物理像素:即设计稿的尺寸 逻辑像素:实体机器的真正像素 下面是我们经常适配的屏幕尺寸 一.rem布局 rem是以根元素字体大小作为参照的布局方式 如下 //以750px设计稿为例,物理像素是375px.设置div宽度为整个容器宽度一半 html{font-size:12px} div{width:375/2/12 rem} 屏幕的尺寸是不同的,为了保证布局大小一致,我们需要做判断屏幕的宽度,如下例子: rem布局的缺点是要根据不同的屏幕大

rem 适配布局 + LESS + 媒体查询

1. rem 基础 rem 是一个相对单位,类似于 em ,em 是父元素字体大小. em 是相对于父元素  的字体大小来说的 rem 是相对于 html 元素 字体大小来说的 rem 优点 就是可以通过修改 html 里面的文字大小来改变页面中元素的大小可以整体控制 比如:根元素(html )设置的 font-size=12px:非根元素设置 width:2rem:则换成px 表示 24px(12px*2rem) 2. 媒体查询(@media) @media 可以针对不同的屏幕尺寸设置不同的样

媒体查询(pc端,移动端不同布局)

媒体查询语法: 1.内联写法:and之后必须有空格@media screen and (min-width:960px //判断浏览器大小条件){body{background:red} //常规的样式} 2.外联写法:当满足屏幕满足条件的时候连接href后的css文件<link='stylesheet' media='screen and (min-width:960)' href='xx.css'/><link='stylesheet' media='screen and (min-

移动端布局最佳实践(viewport+rem)

通过前几天写的两篇博客(浅谈移动端三大viewport和移动端em和rem区别),我们现在来总结一下如何实现一个最佳方案. 之前在第二篇博客中提到过我们可以使用媒体查询来针对不同设备及做适配,如下图 但是这个可能不会太精准,比如我的设备布局viewport可能是370px,这样只能使用320这一版本.而事实上,他们的viewport并不相同,所以他们的布局也得不一样.也就是说我们如果用css媒体查询只能说是可以用,但不是最佳实践.其实通过看某些牛逼的移动端网站,可以看到他们的共同点,他们都是使用