发布网友 发布时间:2023-10-30 06:13
共1个回答
热心网友 时间:2023-11-14 18:34
如何设计响应式布局?
说到响应式布局,就不得不提到CSS3中的MediaQuery(媒体查询)。是个好东西,好用,功能强大,速度快...媒体查询是做出回应式布局的利器。使用这个工具,我们可以非常方便快捷地制作出各种丰富实用的界面。让我们仔细看看媒体查询。当浏览器的分辨率小于1024px时,通过媒体查询的预置样式表将页面的宽度设置为百分比显示,这样页面的结构元素就会根据浏览器的大小进行调整。同样,当浏览器的可视区域变化到一定值(比如说650px)时,页面的结构元素会根据媒体查询预设的级联样式表进行调整。看一下我们的例子:
/*当浏览器的可视区域小于980像素时*/
@媒体屏幕和(最大宽度:980像素){
#wrap{宽度:90%;边距:0自动;}
#内容{宽度:60%;填充:5%;}
#侧边栏{宽度:30%;}
#页脚{填充:8%5%;边距-底部:10px}}
/*当浏览器的可视区域小于650像素时*/
@mediascreenand(max-width:650px){#header{height:auto;}
#searchform{position:absolute;top:5px;右:0;}
#content{width:auto;浮动:无;边距:20px0;}
#侧边栏{宽度:100%;浮动:无;边距:0;}}
通过以上,我们可以监控浏览器可视区域的变化,我们的页面结构元素也会随之变化。当然,你可以多设置几个监控级联样式表,这样你就可以根据不同尺寸的设备做出响应式的布局。为了更好地显示,我们经常需要格式化一些CSS属性的初始值:
/*停用iPhone中Safari的自动字体大小调整*/
html{-WebKit-text-size-adjust:none;}
/*将HTML5元素设置为块*/
文章、旁白、详细信息、图片标题、图表、页脚、页眉、组、菜单、导航、部分{display:block;}
/*设置图片和视频等自适应调整*/
img{最大宽度:100%;高度:自动;宽度:自动9;/*ie8*/}
。视频嵌入,。视频对象,。视频iframe{宽度:100%;高度:自动;}
最后要注意的是,在页面的顶部
初始比例=1.0el-col:span=24>pclass=grid-contentbg-purple-dark>/p>/el-col>
/el-row>
2.分栏间隔
通过Row组件的:gutter属性来调整布局之间的宽度
1
2
3
4
el-row:gutter=20>
el-col:span=6>pclass=grid-contentbg-purple>/p>/el-col>
el-col:span=6>pclass=grid-contentbg-purple>/p>/el-col>
/el-row>
3.分栏漂移
通过Col组件的:offset属性调整栅格的偏移位置(每次1格/24格)。
1
2
3
4
el-row:gutter=20>
el-col:span=6:offset=6>pclass=grid-contentbg-purple>/p>/el-col>
el-col:span=6:offset=6>pclass=grid-contentbg-purple>/p>/el-col>
/el-row>
4.对齐方式
通过Row组件的type=flex启动flex布局,再通过Row组件的justify属性调整排版方式,属性值分别有
start居前(默认)
center居中
end居后
space-between分布自适应(两边_中间,两边没有空隙)
around(中间_两边,两边会有空隙)
1
2
3
4
el-rowtype=flexclass=row-bgjustify=center>
el-col:span=6>pclass=grid-contentbg-purple>/p>/el-col>
el-col:span=6>pclass=grid-contentbg-purple-light>/p>/el-col>
/el-row>
5.响应式布局
参考bootstrap的响应式,预设四个尺寸
xs768px
sm≥768px
md≥992
lg≥1200
1
2
3
4
5
6
el-row:gutter=10>
el-col:xs=8:sm=6:md=4:lg=3>pclass=grid-contentbg-purple>/p>/el-col>
el-col:xs=4:sm=6:md=8:lg=9>pclass=grid-contentbg-purple-light>/p>/el-col>
el-col:xs=4:sm=6:md=8:lg=9>pclass=grid-contentbg-purple>/p>/el-col>
el-col:xs=8:sm=6:md=4:lg=3>pclass=grid-contentbg-purple-light>/p>/el-col>
/el-row>
ICON图标
今后可以使用i>来做图标,给其class添加el-icon-iconName即可。
可以在button>上添加icon属性。
响应式布局和自适应布局有什么样的区别?
响应式布局是为了适配不同的终端而生,移动端布局是针对于智能手机为主,也就是现在行内常说的H5站(m站)。简单说一下他们的不同之处:
1、适配的群体不同,响应式适配各种终端,而移端大部分为智能手机为主2、响应式布局能根据不同的终端设备实现不同的页面布局,而移动端布局大部分是单列布局3、响应式布局有可能造成冗余的代码较多(传统式响应式布局,仅依赖于媒体查询,控制不同的页面布局),移动端布局冗余代码较少,对针对性较强相同之处:
1、在智能手机上,响应式看到的页面效果能和移动端的一样效果(其他忽略,仅从效果上而言)
2、两者都要面对适配的问题(这也是较为蛋疼的问题)
网站就必须用响应式布局吗?
你好不一定的,静态布局(StaticLayout)
即传统Web设计,对于PC设计一个Layout,在屏幕宽高有调整时,使用横向和竖向的滚动条来查阅被遮掩部分;
对于移动设备,单独设计一个布局,使用不同的域名如wap.或m.。
自适应布局(AdaptiveLayout)
自适应布局(Adaptive)的特点是分别为不同的屏幕分辨率定义布局。布局切换时页面元素发生改变,但在每个布局中,页面元素不随窗口大小的调整发生变化。
你可以把自适应布局看作是静态布局的一个系列。
流式布局(LiquidLayout)
流式布局(Liquid)的特点(也叫"Fluid")是页面元素的宽度按照屏幕进行适配调整,主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示。
响应式布局(ResponsiveLayout)
分别为不同的屏幕分辨率定义布局,同时,在每个布局中,应用流式布局的理念,即页面元素宽度随着窗口调整而自动适配。
可以把响应式布局看作是流式布局和自适应布局设计理念的融合。
恩恩大概就是这样。
解释响应式布局,怎么实现的?有几种方法实现?
1.原生代码实现。
在国内目前设计网页的时候,一般会分成PC端和移动端两套页面,但在一定的情况下,必须满足只设计一个页面的情况下,满足不同端口都能正常使用,
因此会用用到自适应的方法。
用原生代码实现的根本在于媒体查询@media的设置。
@mediascreen可以查询当前浏览器的尺寸,因此可采用该方法对同一个页面设置不同的CSS样式,来满足不同分辨率要求。
2.采用bootstrap框架布局
bootstrap框架布局完成的页面,是自动对应的自适应效果。
但是在书写的时候,应该严格按照bootstrap的书写规范,才不会出现怪异性问题。
写法举例:
说明:最后的数字对应该p所占栅栏的列数。
col-md-6代表在PC端上显示在一行的6个栅栏,也就是一半。
col-sm-6代表在平板上也显示p占当前行的一半。
col-xs-12代表在手机端显示为当前行的百分之百填充。
3.还有其他方式,如JQuery和专门做响应式的JS文件,比如nicebox均能实现自适应效果,实现响应式布局。