响应式布局实例

响应式布局

响应式布局是为了让设计的东西,兼容各种设备终端,是Ethan Marcotte在2010年5月提出的一个概念。传统的设计思路时,手机端一套,pc端一套,还有根据pc端屏幕大小而分出好几套。

1.媒体布局

Meta标签定义

使用 viewport meta 标签在手机浏览器上控制布局

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

通过快捷方式打开时全屏显示

<meta name="apple-mobile-web-app-capable" content="yes" />

隐藏状态栏

<meta name="apple-mobile-web-app-status-bar-style" content="blank" />

iPhone会将看起来像电话号码的数字添加电话连接,应当关闭

<meta name="format-detection" content="telephone=no" />
使用Media Queries适配对应样式

常用于布局的CSS Media Queries有以下几种:
设备类型(media type):
all所有设备;
  screen 电脑显示器;
  print打印用纸或打印预览视图;
  handheld便携设备;
  tv电视机类型的设备;
  speech语意和音频盒成器;
  braille盲人用点字法触觉回馈设备;
  embossed盲文打印机;
  projection各种投影设备;
  tty使用固定密度字母栅格的媒介,比如电传打字机和终端。

设备特性(media feature):
width浏览器宽度;
  height浏览器高度;
  device-width设备屏幕分辨率的宽度值;
  device-height设备屏幕分辨率的高度值;
  orientation浏览器窗口的方向纵向还是横向,当窗口的高度值大于等于宽度时该特性值为portrait,否则为landscape;
  aspect-ratio比例值,浏览器的纵横比;
  device-aspect-ratio比例值,屏幕的纵横比。

案例:随着屏幕大小,分别显示一列,两列,三列

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title></title>
   <style type="text/css">
       /* 小屏幕(平板,大于等于 768px)
       @media (min-width: 768px){  */
       @media (min-width: 200px){
           .divleft {
               margin-top:10px;
           }
           .divleft1 {
               margin-top:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px;border-bottom:0px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               margin-top:10px;
           }
           .divcenter1 {
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px;
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px;border-top:0px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               margin-top:10px;
               clear:both;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
       /* 中等屏幕(桌面显示器,大于等于 992px) */
       @media (min-width: 992px){
           .divleft {
               position:absolute;
               color:green;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divleft1 {
               position:absolute;
               color:green;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px;border-right:0px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               float:right;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divcenter1 {
               float:right;
               width:50%;
               margin-top:10px;
               margin-bottom:10px;
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px; 
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px;border-left:0px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               clear:both;
               width:50%;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
       /* 大屏幕(大桌面显示器,大于等于 1200px) */
       @media (min-width: 1200){
           .divleft {
               position:absolute;
               color:green;
               width:33%;
               margin-top:10px;
           }.divleft1 {
               position:absolute;
               color:green;
               width:33%;
               margin-top:10px;
           }
           .divleft2 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divleft2_1 {border:2px solid #EBEBEB; border-radius:5px; margin-right:10px;
               background-color:white;
               min-height:200px;
           }
           .divcenter {
               float:left;
               width:34%;
               margin-top:10px;
           }
           .divcenter1 {
               float:left;
               width:34%;
               margin-top:10px;
           }
           .divcenter2{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px;
               background-color:white;
               min-height:200px;
           }
           .divcenter2_1{border:2px solid #EBEBEB; border-radius:5px; margin-left:10px;
               background-color:white;
               min-height:200px;
           }
           .divright {
               float:right;
               width:33%;
               margin-top:10px;
           }
           .divright2 {border:2px solid #EBEBEB; border-radius:5px; 
               background-color:white;
               min-height:200px;
           }
       }
   </style>
</head>
<body style="background-color:#F3F3F3;">
   <form id="form1" runat="server">
   <div style="min-width:210px;">
       <div class="box">    
   	    <div class="divleft">
               <div class="divleft2">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter">
               <div class="divcenter2">
                   c2
               </div>
   	    </div>
   	    <div class="divright">
               <div class="divright2">
                   c3
               </div>
   	    </div>
   	</div>
       <div class="box" style="clear:both;">    
   	    <div class="divleft1">
               <div class="divleft2_1">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter1">
               <div class="divcenter2_1">
                   c2
               </div>
   	    </div>
   	</div>
       <div class="box" style="clear:both;">    
   	    <div class="divleft">
               <div class="divleft2">
                   c1
               </div>
   	    </div>    
   	    <div class="divcenter">
               <div class="divcenter2">
                   c2
               </div>
   	    </div>
   	    <div class="divright">
               <div class="divright2">
                   c3
               </div>
   	    </div>
   	</div>
   </div>
   </form>
</body>
</html>

2.百分百设计

设计宽高的百分比,可以让标签随屏幕大小,而自动适应。

实例:

<!DOCTYPE html>
<html>
<head>
 <title></title>
 <style>
     body{margin:0;padding:0;}
     #left{width: 150px;height: 100px;background-color: red;float: left}
     #right{width: 150px;height: 100px;background-color: green;float: right}
     #center{height: 100px;background-color: blue;}
 </style>
</head>
<body>
<div id="left">left</div>
<div id="right">right</div>
<div id="center">center</div>
</body>
</html>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Vue2中,使用Echarts实现响应式布局可以通过以下步骤进行操作。 1. 首先,需要手动调用Echarts实例的resize方法来解决页面尺寸变化时图表重新渲染排布的问题。可以在组件的mounted生命周期钩子中绑定resize事件处理函数,代码如下: ```javascript resize() { this.chart.resize(); } mounted() { window.addEventListener("resize", this.resize); } ``` 2. 其次,可以通过设置组件或系列的orient或layout配置项为'horizontal'或'vertical'来实现横纵向布局的设置。这可以在组件或系列的配置中进行设置,示例代码如下: ```javascript { // 组件或系列的其他配置项 orient: "horizontal", // 或者 "vertical" // 其他配置项 } ``` 3. 此外,还可以使用Media Query来设置响应式布局。可以根据页面的尺寸或其它条件,动态调整图表的配置。下面是一个具体的例子,示例代码如下: ```javascript { baseOption: { // 基础配置项 legend: { // 图例配置项 orient: "horizontal", // 其他配置项 }, series: [ { // 系列配置项 center: ["50%", "56%"], // 其他配置项 } ] }, media: [ { query: { minAspectRatio: 1, minWidth: 400 }, option: { legend: { orient: "vertical" }, series: [ { center: ["50%", "50%"] } ] } } ] } ``` 通过上述步骤和配置,可以实现Vue2中Echarts的响应式布局。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [在 VUE 项目中,设置 echarts 图表为响应式布局](https://blog.csdn.net/qq_36291747/article/details/106992514)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcLeigh

万水千山总是情,打赏两块行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值