响应式的实现

一、理解层面:

1、概念:响应式就是页面会根据不同屏幕分辨率的宽度,而改变自身的外貌。
2、实现过程:先有设计稿,一般是PC版、PAD版和移动端版本的一套设计稿,然后前端开发师才可以进行单位的换算,使用一套代码,多半是同样的标签组合,实现三版页面。

二、响应式实现方式

(1)最基本的重点:只要width不写为固定值,这个页面就可以认为是响应式的。实现效果就是随着页面大小缩放,元素位置也会有变化;
(2)设置最大宽度,当页面宽度小于最大宽度值时,页面宽度就会变成100%。最大不会操作最大宽度,小于就认定为100%
(3)当达到某一页面宽度值的时候,页面元素会自动分行,例如原来是3块一行,现在随之变成2块一行:使用媒体查询
  先写默认样式,然后再写媒体查询,当达到某一条件时,对应就变化样式设置:

<style>
.cards{
  list-style:none;
  margin:0 auto;
  padding:0;
  overflow:hidden;
  max-width:960px;
}
.cards li{
  width:33.333%;
  float:left;
  box-sizing:border-box;
  padding:10px;
}
@media (max-width:640px){
  .cards li{
    width:50%
  }
}
@media (max-width:320px){
  .cards li{
    width:100%;
  }
}
</style>

页面宽度大于640px时,li的宽度就是33.33%,一行三列
页面宽度小于等于640px时,li的宽度就会是50%,一行两列;
页面宽度小于等于320px时,li的宽度就会是100%,一行一列;

(4)实习标题文字类的换行:

<div class="banner">
  <h1 class="one-line">标题标题标题标题</h1>
  <h1 class="two-line">标题标题<br/>标题标题</h1>
</div>
.banner .two-line{
  display:none;
}
@media (max-width:320px){
  .banner .one-line{
    display:none;
  }
  .banner .two-line{
    display:block;
  }
}

依次例推,就是将两种页面宽度下的样式都实现(借助换行标签
等),然后通过媒体查询,控制两种样式的display样式的block/none的切换。

总结:

1、不要将width写为固定值px,而是转而使用百分比的方式;
2、使用max-width和min-width等这些最大最小高度、宽度的属性设置,需要时配合margin:0 auto;
3、使用媒体查询
4、写多个不同页面宽度下的预期样式,然后使用媒体查询进行切换。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,865评论 1 92
  • 因为有机会参与一个项目的早期设计,因此搭建的时候不可避免的遇到了如何满足响应式的问题。翻阅了《响应式Web设计:H...
    tangyefei阅读 6,500评论 2 90
  • 笔记参考自《响应式Web设计:HTML5和CSS3实践》,2013年出版内容说不上最新。如下是全书的章的目录:第 ...
    于晓鱼阅读 993评论 0 1
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,830评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,355评论 0 11