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