专栏首页AlbertYang的编程之路HTML+CSS实现响应式布局页面,响应式布局入门教程

HTML+CSS实现响应式布局页面,响应式布局入门教程

1 什么是响应式布局?

响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。在移动互联网高度发达的今天,我们在桌面浏览器上开发的网页已经无法满足在移动设备上查看的需求。传统的开发方式是PC端开发一套页面,手机端再开发一套页面。但是这样做非常麻烦,随着不同的终端越来越多,你需要开发多个不同版本的页面。而使用响应式布局只要开发一套就够了。EthanMarcotte在2010年5月份提出了响应式布局的概念,简而言之,就是一个网站能够兼容多个终端。

开发方式

移动web开发+PC开发

响应式开发

应用场景

一般在已经有PC端的网站,开发移动站的时候,只需单独开发移动端。

针对新建站的一些网站,现在要求适配移动端,所以就一套页面兼容各种终端,灵活。

开发

针对性强,开发效率高。

兼容各种终端,效率低,

适配

只适配 移动设备,pad上体验相对较差。

可以适配各种终端

效率

代码简洁,加载快。

代码相对复杂,加载慢。

响应式开发与移动端与PC端分别开发的区别:响应式开发只编写一套界面,通过检测视口分辨率,针对不同客户端在客户端做代码处理,来展现不同的布局和内容。移动端与PC端分别开发,通过检测视口分辨率,来判断当前访问的设备是pc端、平板、手机, 从而请求服务器,返回不同的页面。

2 响应式开发的原理?

响应式开发的原理是使用CSS3中的Media Query(媒体查询)针对不同宽度的设备设置不同的布局和样式,从而适配不同的设备。

CSS3 @media 查询定义和使用:

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

例如屏幕宽度小于 500 像素则修改背景颜色(background-color)为红色。

@media screen and (max-width: 300px) {
    body {
        background-color: red;
    }
}

设备的划分情况为:

  • 小于768的为超小屏幕(手机)
  • 768~992之间的为小屏设备(平板)
  • 992~1200的中等屏幕(桌面显示器)
  • 大于1200的宽屏设备(大桌面显示器)

但是我们也可以根据实际情况自己定义划分情况。

3 响应式页面开发

3.1 视频

3.2 HTML

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>响应式页面入门教程:Albert Yang</title>
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
        integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
</head>

<body>
    <header>
        <a href="#" class="logo">AlbertYang</a>
        <ul class="navigation">
            <li><a href="#">首页</a></li>
            <li><a href="#">博客</a></li>
            <li><a href="#">联系我</a></li>
            <li><a href="#">留言板</a></li>
            <li><a href="#">关于我</a></li>
            <li><a href="#">照片墙</a></li>
        </ul>
        <div class="search">
            <input type="text" placeholder="Search">
            <i class="fa fa-search" aria-hidden="true"></i>
        </div>
    </header>
    <div class="banner">
        <div class="content">
            <h2>响应式布局</h2>
            <p>
                响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局。
                传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就够了。
                响应式设计与自适应设计的区别:响应式开发一套界面,
                通过检测视口分辨率,针对不同客户端在客户端做代码处理,
                来展现不同的布局和内容;自适应需要开发多套界面,
                通过检测视口分辨率,来判断当前访问的设备是pc端、平板、手机,
                从而请求服务层,返回不同的页面。CSS3媒体查询可以让我们针对不同的媒体类型定义不同的样式,
                当重置浏览器窗口大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。
            </p>
            <a href="#">阅读全文</a>
        </div>
        
        <img src="1.jpg" class="image">
    </div>
</body>

</html>

3.3 CSS

/* 清除浏览器默认边距,
使边框和内边距的值包含在元素的width和height内 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
header {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 100px;
    z-index: 10;
    background: #5b639c;
}
header .logo {
    position: relative;
    font-size: 1.5em;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
}
header .navigation {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin: 10px 0;
}
header .navigation li {
    list-style: none;
    margin: 0 20px;
}
header .navigation li a {
    text-decoration: none;
    color: #fff;
    font-weight: 600;
    letter-spacing: 1px;
}
header .navigation li a:hover{
    color: #ffed3b;
}
header .search {
    position: relative;
    width: 300px;
    height: 40px;
}
header .search input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #fff;
    background: transparent;
    outline: none;
    border: 1px solid #fff;
    border-radius: 5px;
    padding: 0 10px 0 45px;
}
header .search input::placeholder {
    color: #fff;
}
header .search .fa-search {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 10px;
    color: #fff;
    border-right: 1px solid #fff;
    padding-right: 10px;
}
.banner {
    background: #eee;
    padding: 200px 100px 100px;
    min-height: 100vh;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.banner .content {
    max-width: 1000px;
}
.banner .content h2 {
    font-size: 2.5em;
    color: #333;
    margin-bottom: 20px;
}
.banner .content p {
    font-size: 1em;
    color: #333;
}
.banner .content a {
    display: inline-block;
    background: #434978;
    color: #fff;
    padding: 10px 20px;
    text-decoration: none;
    font-weight: 600;
    margin-top: 20px;
}
.banner .image {
    max-width: 500px;
    margin-left: 50px;
}
/*屏幕宽度小于991px,改变布局和样式*/
@media screen and (max-width:991px) {
    header {
        padding: 10px 20px;
        flex-direction: column;
    }
    .banner {
        padding: 150px 20px 50px;
        flex-direction: column-reverse;
    }
    .banner .image {
        max-width: 80%;
        margin-left: 0;
    }
    .banner .content h2 {
        font-size: 2em;
    }
}
/*屏幕宽度小于600px,改变布局和样式*/
@media screen and (max-width:600px) {
    header .search {
        width: 100%;
    }
    .banner .image {
        margin-top: 30px;
    }
}

今天的学习就到这里了,视频已经同步到B站,大家可以点击底部的阅读原文直达。如果想继续学习提高,欢迎关注我,每天进步一点点,就是领先的开始,加油。如果觉得本文对你有帮助的话,欢迎转发,在看,点赞!!!

本文分享自微信公众号 - AlbertYang(AlbertYang666),作者:Albert

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 响应式布局入门

    最近研究响应式设计框架的时候,发现网上很多相关的属性介绍,却很少有系统的入门级使用的文章,我自己整理了一篇入门知识,并没有什么高深的理论,也不牵扯到框架。 目前...

    练小习
  • 响应式布局的实现

    响应式布局指的是同一页面在不同屏幕尺寸或者在不同的设备下有不同的布局,能够在大屏设备以及小屏设备获得更好的浏览体验,简单来说就是页面适应终端而无需为每个终端制作...

    WindrunnerMax
  • 前端入门24-响应式布局(BootStrap)声明正文-响应式布局(BootStrap)

    BootStrap 目前已经出了 4 个版本,每个版本都有对应的官网教程,先来看看不同版本里的宣传语:

    请叫我大苏
  • html+css学习笔记019-H5响应式布局0自适应布局

    Mr. 柳上原
  • CSS&HTML面经专题——(四)移动端响应式布局

    在移动端viewport视口(pc端没有这个概念)就是浏览器显示页面内容的屏幕区域。

    玖柒的小窝
  • CSS 全解析实战(四)-CSS 布局1 布局简介2 布局方式(表格)3 一些布局属性4 flexbox现代布局方式(弹性盒子)5 float布局6 inline-block布局7 响应式布局(1)8

    content: 文字内容区 padding: 内容区到边框的留白区 border: 边框 margin: 离别的东西的距离

    JavaEdge
  • 前端文章收藏

    前端GoGoGo
  • 12个最佳的响应式网页设计教程,轻松带你入门!

    如何让你的网站在其出现的任何设备和屏幕尺寸上能够完美的呈现?响应式设计完美的解决了这一难题,作为现在的网页设计师都应该了解响应式网页设计的原则。而对于刚步入网页...

    奔跑的小鹿
  • Web前端开发推荐阅读书籍、学习课程下载

    学校里没有前端的课程,那如何学习JavaScript,又如何使自己成为一个合格的前端工程师呢?

    慕白
  • 前端练级攻略(第一部分)

    我记得我刚开始学习前端开发的时候。我看到了很多文章及资料,被学习的资料压得喘不过气来,甚至不知道从哪里开始。

    前端小智@大迁世界
  • 前端开发,从草根到英雄(第一部分)

    我还记得当我刚开始学习前端开发时,我被大量的技术文章淹没,当时让我非常困惑的是:我究竟需要学多少知识才算足够,我甚至不知道从哪里开始。 这篇指南会告诉你学习前端...

    用户1667431
  • 月入35k大佬总结:web前端必须学习的内容(附全套前端教程)

    优秀的WEB前端工程师具备编写任何一个互联网系统的前端页面、交互代码的能力。根据对100家互联网名企对Web开发工程师的招聘要求分析,企业要求主要有两部分,一个...

    用户5827212
  • 快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力

    为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和C...

    奔跑的小鹿
  • 快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力

    为了寻找一个优质的网页模板,网页设计师和开发者往往可能会花上大半天的时间。不过幸运的是,现在的网页设计师和开发人员已经开始共享HTML5,Bootstrap和C...

    奔跑的小鹿
  • Web-第五天 BootStrap学习

    将使用Bootstrap重写首页,整个案例中将使用到Bootstrap各种模块,为了方便编程,将采用拆分的原则,各个模块单独编写,最后组合。

    Java帮帮
  • 提名推荐!15个2019年最佳CSS框架

    开发网站或web应用时,网页开发工程师往往都需要编写CSS,如果每个项目都是从0开始,将会花费大量的时间和精力,并且还会处理很多重复性工作。

    奔跑的小鹿
  • 全响应式web前端开发

    本文作者:IMWeb Terrance 原文出处:IMWeb社区 未经同意,禁止转载 ? Responsive web design (RWD) i...

    IMWeb前端团队
  • 全响应式web前端开发

    结一老师之前有写过一篇从css角度去实现响应式的文章(下手响应式及断点设置分析),不过真正设计并实现一个全响应式网页(RWD),还需要从一开始的布局设计开始,并...

    IMWeb前端团队
  • 静态布局、自适应布局、流式布局、响应式布局、弹性布局等的概念和区别

    1、布局特点:不管浏览器尺寸具体是多少,网页布局始终按照最初写代码时的布局来显示。常规的pc的网站都是静态(定宽度)布局的,也就是设置了min-width,这样...

    何处锦绣不灰堆

扫码关注云+社区

领取腾讯云代金券