折腾响应式布局设计

2023-10-30

看到这个标题是不是很头大呢?不错,我这一周就折腾了这个既是要求瀑布流,又是响应式布局的货。

而且还是在bootstrap框架上折腾的,所以对于响应式布局呢?咱们可以忽略了吗?当然是不行的。

响应式布局概念

Responsive design,意在实现不同屏幕分辨率的终端上浏览网页的不同展示方式。通过响应式设计能使网站在手机和平板电脑上有更好的浏览阅读体验。

折腾响应式布局设计

经过不停地学习和实践,如今总结响应式设计的方法和注意点。其实很简单。

响应式设计的步骤

1. 设置 Meta 标签

大多数移动浏览器将html页面放大为宽的视图(viewport)以符合屏幕分辨率。你可以使用视图的meta标签来进行重置。下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。在<head>标签里加入这个meta标签。

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

[1]user-scalable = no 属性能够解决 iPad 切换横屏之后触摸才能回到具体尺寸的问题。 

3. 通过媒介查询来设置样式 Media Queries

Media Queries 是响应式设计的核心。

它根据条件告诉浏览器如何为指定视图宽度渲染页面。假如一个终端的分辨率小于 980px,那么可以这样写:

@media screen and (max-width: 980px) {
  #head { … }
  #content { … }
  #footer { … }
}

这里的样式就会覆盖上面已经定义好的样式。

4. 设置多种试图宽度

假如我们要设定兼容 iPad 和 iphone 的视图,那么可以这样设置:

/** iPad **/
@media only screen and (min-width: 768px) and (max-width: 1024px) {}
/** iPhone **/
@media only screen and (min-width: 320px) and (max-width: 767px) {}

恩,差不多就这样的一个原理。

一些注意的

1. 宽度需要使用百分比

例如这样:

#head { width: 100% }
#content { width: 50%; }
2. 处理图片缩放的方法
  • 简单的解决方法可以使用百分比,但这样不友好,会放大或者缩小图片。那么可以尝试给图片指定的最大宽度为百分比。假如图片超过了,就缩小。假如图片小了,就原尺寸输出。
img { width: auto; max-width: 100%; }
  • ::before::after伪元素 +content 属性来动态显示一些内容或者做其它很酷的事情,在 css3 中,任何元素都可以使用 content 属性了,这个方法就是结合 css3 的 attr 属性和 HTML 自定义属性的功能: HTML 结构:
<img src="image.jpg" alt="折腾响应式布局设计"
     data-src-600px="image-600px.jpg"
     data-src-800px="image-800px.jpg"
     alt="">

CSS 控制:

@media (min-device-width:600px) {
    img[data-src-600px] {
        content: attr(data-src-600px, url);
    }
}

@media (min-device-width:800px) {
    img[data-src-800px] {
        content: attr(data-src-800px, url);
    }
}
3. 其他属性

例如 pre ,iframevideo 等,都需要和img一样控制好宽度。对于table,建议不要增加 padding 属性,低分辨率下使用内容居中:

table th, table td { padding: 0 0; text-align: center; }

以上内容和代码来自:掌心,感谢,欢迎查看我之前做过的响应式设计:查看演示

更多资源

Morten Hjerde和他的同事们对2005至2008年市场中的400余种移动设备进行了统计(查看报告),下图展示了大致的统计结果:

折腾响应式布局设计

打造布局结构

我们可以监测页面布局随着不同的浏览环境而产生的变化,如果它们变的过窄过短或是过宽过长,则通过一个子级样式表来继承主样式表的设定,并专门针对某些布局结构进行样式覆写。我们来看下代码示例:

/* Default styles that will carry to the child style sheet */
html,body{
   background...
   font...
   color...
}
h1,h2,h3{}
p, blockquote, pre, code, ol, ul{}
/* Structural elements */
#wrapper{
    width: 80%;
    margin: 0 auto;
    background: #fff;
    padding: 20px;
}
#content{
    width: 54%;
    float: left;
    margin-right: 3%;
}
#sidebar-left{
    width: 20%;
    float: left;
    margin-right: 3%;
}
#sidebar-right{
    width: 20%;
    float: left;
}
下面的代码可以放在子级样式表 Mobile.css中,专门针对移动设备进行样式覆写:
#wrapper{
    width: 90%;
}
#content{
    width: 100%;
}
#sidebar-left{
    width: 100%;
    clear: both;
    /* Additional styling for our new layout */
    border-top: 1px solid #ccc;
    margin-top: 20px;
}
#sidebar-right{
    width: 100%;
    clear: both;
    /* Additional styling for our new layout */
    border-top: 1px solid #ccc;
    margin-top: 20px;
}
大致的视觉效果如下图所示:

折腾响应式布局设计

图中上半部分是大屏幕设备所显示的完整页面,下面的则是该页面在小屏幕设备的呈现方式。页面HTML代码如下:

Media Queries

Ethan的文章中的“Meet the media query”部分有更多的范例及解释。更有效率的做法是,将多个media queries整合在一个样式表文件中

/* Smartphones (portrait and landscape) ----------- */
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* Styles */
}
/* Smartphones (landscape) ----------- */
@media only screen
and (min-width : 321px) {
/* Styles */
}
/* Smartphones (portrait) ----------- */
@media only screen
and (max-width : 320px) {
/* Styles */
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

折腾响应式布局设计 的相关文章

  • @font-face 加载字体引用字体之后不起作用

    如题 最近在学习css的时候遇到如下情况 使用 font face加载多种字体不起作用 反思 是我搞错了 字体加载可能就是要一条一条的写 文件结构目录 代码如下
  • 推荐一个无缝背景花纹资源站-AVA7 PATTERNS

    随着用户显示器分辨率的逐渐增大 网站的背景设计也越来越重要了 如果你的网站背景还在使用单调的白色作为背景 那你也许忽视了那些使用大分辨率的用户 他们看到的是网站内容和一大片白色 今天暴风彬彬要向大家推荐一个背景花纹资源站 AVA7 PATT
  • element-ui走马灯实现图片自适应

    elementUI走马灯实现图片自适应 等比缩放 使得图片缩小不挤压 放大不拉伸变形 解决方法的原理 监听屏幕视口大小如果 resize 发生改变了 就获取图片的高度height 然后渲染到页面 ElementUI 地址 https ele
  • H5 Canvas与SVG的比较

    转载 https www w3school com cn html5 html 5 canvas vs svg asp 两者都能够在在浏览器中绘图 但两者之间还是不一样的 Canvas 通过Javascript来绘制2D图形 是逐像素进行渲
  • css3实现hover颜色,背景色,宽度等平滑变动(transition)

  • Spring Boot中使用WebSocket [第三部分]

    使用消息队列实现分布式WebSocket 在上一篇文章 https www zifangsky cn 1359 html 中我介绍了服务端如何给指定用户的客户端发送消息 并如何处理对方不在线的情况 在这篇文章中我们继续思考另外一个重要的问题
  • HTML+CSS项目案例

    文章目录 1 表格练习 2 文本样式练习 3 图片标签练习 4 盒子模型练习一 5 盒子模型练习二 6 盒子模型练习三 7 浮动练习 8 边框练习一 9 边框练习二 10 图文混排 11 列表练习 1 表格练习 案例演示 table tr
  • 五种方案实现CSS三栏布局

    方案一 浮动布局float
  • CSS实现文字描边效果

    一 介绍 最近在一个项目的宣传页中 设计师使用了文字描边效果 之前我确实没有实现过文字的描边效果 然后我在查阅资料后 知道了实现方法 文字描边分为两种 内外双描边和单外描边 也就是指在给文字加上描边效果后 描边的方向是向内外同时占用文字空间
  • CSS设置字间距、行间距、首行缩进

    CSS设置字间距 行间距 首行缩进 ps 本人亲测 阿里云2核4G5M的服务器性价比很高 新用户一块多一天 老用户三块多一天 最高可以买三年 感兴趣的可以戳一下 阿里云折扣服务器 字间距 1 text indent设置抬头距离css缩进 即
  • href 属性 和 target属性

  • 清除浮动之after伪元素

  • JavaScript的三大组成部分(收藏)

    JavaScript是一种属于网络的脚本语言 已经被广泛用于Web应用开发 常用来为网页添加各式各样的动态功能 为用户提供更流畅美观的浏览效果 通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的 各位小伙伴在进阶的时候总会
  • CSS3——@keyframe动画的基本用法,常见错误及解决方案

    文章目录 一 基本用法 1 关键帧 keyframes 2 示例 二 常见错误及解决方案 1 keyframes 不能实现突变的状态变化 display替代方案 1 占据空间 visiblity 2 不想占据空间 绝对定位 visiblit
  • HTML---表格合并(详解)

    例子详解 关键字解释 border 1 表格标签默认是无边框的 所以这里加上border 1 是为了更好的进行样式展示 colspan 2 表示的是进行单元格列合并 在该行中 先是th表头占据了一个单元格 之后遇到th 用colspan 2
  • React+Ant.Design 从零开始搭建个人博客实战教程01 —— 起步

    简介 刚入手一个服务器 打算搭个个站 平时工作都是用vue 为了扩展自己的实战能力 来从头开始实战用用react吧 结合ant design一起开发 然后后台nodejs来写 编写我的第一个教程文章 从头到尾记录整个过程 因为是实战项目 部
  • 【HTML+CSS兼容性】 li中插入img元素之间存在空隙BUG问题+解决方案 前端零基础必须知道的事情!

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 场景问题描述 环境测试 Chrome Edge Opera FireFox 举个栗子
  • 解决width: 100%;再设置margin问题

    最近在做前端 遇到了这么个小问题 就是当我们把一个 div 的 width 设置为 100 之后 再设置 margin 的时候 这个div 莫名其妙的超出了屏幕 情景如下图 这就很难受了啊 不过办法总比困难多 下面 我将讲两种解决方法 方法
  • 如何将li的前面那个圆点去掉

    只需要将 css样式 的 list style type 属性设置为none即可 代码如下 list style type none span style font size 18px span 下面的代码位于标签内 span style
  • css实现响应式布局

    一 什么是响应式布局 响应式布局指的是同一页面在不同屏幕尺寸下有不同的布局 传统的开发方式是PC端开发一套 手机端再开发一套 而使用响应式布局只要开发一套就够了 响应式设计与自适应设计的区别 响应式开发一套界面 通过检测视口分辨率 针对不同

随机推荐

  • [每周知识碎片] 2

    使用DistributedDataParallel 在Ctrl C 退出后留下许多僵尸进程 kill之后显卡掉了 类似情况1 2 解决方法 使用 ps aux grep python 查看python进程 然后按照顺序执行 kill 9 P
  • pycharm问题一(No module named 'selenium')

    pycharm上搭建python selenium自动化测试环境 背景 小白刚尝试摸门 明明安装了selenium pycharm中还是报No module named selenium 1 首先 竟然报没有selenium 就安装呗 cm
  • 期货开户金融市场非常残酷

    大多数交易者喜欢从零基础开始他们的交易旅程 毕竟 对于它们来说 点击鼠标确认交易真的非常简单 这个数字时代使我们易于交易 交易过程看起来非常简单 但是金融市场却非常残酷 在交易市场当中 所谓的 聪明 根本没有用 市场会一次又一次地给予你教训
  • 计算机vcruntime140.dll丢失的解决方法,重新安装教程

    vcruntime140 dll是Microsoft Visual C Redistributable文件中的一个动态链接库 DLL 这个文件是由Microsoft开发的 用于支持C 编程语言的运行环境 vcruntime140 dll是W
  • Linux的设置地区

    2023年7月21日 周五上午 本来想试试把这篇文章设置成VIP可见的 因为我挺好奇设置了VIP可见后会发生什么 但后来想想觉得这有违自己写博客的初心 于是就放弃了 我写博客的初心就是传递其他人写博客的那种无私的分享精神 为社会 中文社区和
  • python同一文件内class类的调用

    class 类名 def init self self a None self b None def 函数 self x y self x x self y y A 类名 B 类名 A 函数 10 20 print B x B y 将会输出
  • python实现二分查找的四种变体

    本文用python3实现了二分查找的四种变体 一 查找第一个值等于给定值的元素 二 查找最后一个值等于给定值的元素 三 查找第一个大于等于给定值的元素 四 查找最后一个小于等于给定值的元素 python3 一 查找第一个值等于给定值的元素
  • git rebase

    目录 一 开发分支落后于主干分支 个人修复用的分支落后于被修复分支 模拟环境 开始rebase操作 二 本地分支落后于远程分支 多人共用一个分支的情况下其他人有提交 在本地模拟环境 熟悉的可以跳过 比较啰嗦 详细步骤 开始模拟情景 解决 u
  • 【Java学习笔记(一百零七)】之字节码执行引擎,栈帧结构

    本文章由公号 开发小鸽 发布 欢迎关注 老规矩 妹妹镇楼 一 字节码执行引擎 一 概述 物理机和虚拟机都有代码执行能力 物理机的执行引擎建立在处理器 缓存机 指令集和操作系统之上 而虚拟机的执行引擎则是由软件实现的 不会受到物理条件制约地定
  • 稀疏数组(尚硅谷课程的笔记)

    2 稀疏数组 文章来自于听了尚硅谷的课自己所敲 https www bilibili com video BV1E4411H73v p 10 2 1 稀疏数组 我们来看一个实际问题 此时就需要稀疏数组来压缩 稀疏数组基本介绍 当一个数组中大
  • pycharm配置解释器

    因为没有系统学习过pycharm的使用 所以在换了新电脑之后重新配置pycharm一头雾水 查了很多资料 此文用来自己记录 1 解释器选择 virtual Enviroment 第一个是虚拟解释器 我的理解是 直接从pycharm里下载一个
  • 安徽旅游可视化

    安徽旅游可视化 此系统有详细的录屏 下面只是部分截图 需要看完整录屏联系博主 系统开发语言python 框架为django 数据库mysql 分为爬虫和可视化分析
  • 没看错!selenium自动化集成REST api实践!

    01 问题 当我们描述一个 好的自动化测试用例 时 经常出现标准是 精确 自动化测试用例应该测试一件事 只有一件事 与测试用例无关的应用程序的某个部分中的错误不应导致测试用例失败 独立 自动化测试用例不应该受测试套件中任何其他测试用例影响
  • 计算机视觉 相机标定

    目录 一 相机标定原理 1 相机标定简介 2 求解原理 2 1 针孔相机模型 2 2 畸变现象 2 3 像主点偏移 2 4 单应性矩阵H 二 相机标定策略 2 1 相关策略 2 2 棋盘格标定 三 实验内容 1 实验数据 2 实验代码 3
  • Tinyhttpd项目学习及httpd学习

    在参考网络有关Tinyhttpd的内容后 我打算写下自己的学习过程与自己的理解 我会在结尾附上参考的链接 我把代码放在了gitee Tinyhttpd学习 1 Tinyhttpd是一个轻量级的HTTP服务器 2 学习该项目可以学习web服务
  • Java面向对象(4) ——多态

    目录 多态的概念 对象上下转型 多态应用之打印机 多态的概念 多态是指同一个操作作用于某一类对象 可以有不同的解释 产生不同的执行结果 比如 猫吃鱼 狗吃肉 人吃米饭 多态存在的三个必要条件 需要存在继承 extends 或实现 接口 关系
  • 自学经典5个月的python学习历程,很多老司机都不知道的奥秘

    人生苦短 我用Python 下面分享pyhton的一些基础知识 学习中可以帮助快速入门 三元条件判断的3种实现方法 C语言中有三元条件表达式 如 a gt b a b Python中没有三目运算符 但Python有它自己的方式来实现类似的功
  • xilinx开发过程中的ip核配置总结

    1 XILINX的FIFO 不同带宽输入输出 输出时 默认是先输出高位 再输出低位 这个能不能设置 先输出低位再到高位 答 在写入的时候 切换下位置就行了 2 zynq7020 fpga启动了 但是ps没反应 ps灯不闪烁 程序直接ram运
  • Anaconda > Windows+Anaconda迁移到另一个硬盘

    Anaconda轻松迁移到另一个硬盘 so easy 环境 目标 移动Anaconda目录 环境调整 结果 环境 Win10 Windows10 正常运行的Anaconda 安装目录和环境变量都是 C Anaconda3 30 GB 目标
  • 折腾响应式布局设计

    看到这个标题是不是很头大呢 不错 我这一周就折腾了这个既是要求瀑布流 又是响应式布局的货 而且还是在bootstrap框架上折腾的 所以对于响应式布局呢 咱们可以忽略了吗 当然是不行的 响应式布局概念 Responsive design 意