前言:PC端 电脑显示器的尺寸种类还是很多的,台式电脑和笔记本电脑尺寸相差就更明显,所以响应式布局还是很重要的,甚至是必须要考虑的。

   响应式的页面好不好,在后管平台上很明显。因为后管平台,一般是全屏显示。不像官网那样两边有一个安全尺寸。

     PC端的宽度相差太大,一般是常用响应式的布局(布局改变了,不仅仅尺寸变化);而不是像移动端那样,通过rem单位,只是改变了元素的尺寸。

一、栅格系统:(栅格系统是比较好的一种响应式布局,框架已经帮我们处理好了,只要配置下就可以自动实现响应式的布局)

  1、栅格系内的元素,宽度是不定的。根据不同的尺寸,宽度会改变。使用栅格系统,必须要保证这个元素宽度改变,元素内的结构不变。如下图,

     栅格系统设置的元素A,在屏幕变小时,A的宽度也会变小。A的宽度变小,可能会引起A内的结构发生变化(如换行、溢出),所以要确保元素A内的结构不变,或者A内元素的结构变化的临界尺寸要比栅格系统响应的尺寸更小。即,

    浏览器在不断变小,元素A的尺寸会不断变小,还没到A内结构变化的尺寸。栅格布局就先发生变化了,此时栅格系统变成,上面两个A,下面两个A。

2、栅格系统的元素,如上面的A的宽度是严格根据栅格系统分的尺寸来的。12栏栅格系统,那么上面的每个元素A就是3栏。元素A之间的距离是通过padding值撑出来的,元素A的width区域,才是内部我们需要放元素显示的结构。

  下面以 Ant Design 的  24 栅格系统进行说明。下面的Col标签宽度是Row标签的1/4宽度,并且4个Col标签是紧靠着的。如果给他们设置间距,其实是他们的width之间出现了间距。效果上就是我们需要的间距。

    <Row>
<Col span={6}>col-6</Col>
<Col span={6}>col-6</Col>
<Col span={6}>col-6</Col>
<Col span={6}>col-6</Col>
</Row>

感悟:在有栅格系统的框架,使用栅格布局开发,还是很快的。没有栅格系统的话,自己写一个栅格系统,也不麻烦。或者用下面的方法实现响应式布局。

二、flexd:弹性布局天生就是响应式的,子元素的宽度排不下就会自动换行的。    https://www.jianshu.com/p/a902816692a9  或  http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

  1、弹性布局中,子元素拥有的空间,和 子元素 本身的空间 是两个概念。就像 书 在盒子中,书可以盒子内的空间任意移动。

      父元素设置了弹性属性,根据设置的情况给每个子元素设置活动的空间(这个空间是透明的,无法看到)。子元素可以在这个空间中,自由移动(比如,排在顶部,或者底部)。

  2、这里比较难的,父元素分配给每个子元素的活动空间是 怎么 分配的。根据父元素的属性,和子元素自身的大小来定空间。

    a、flex-direction:决定主轴的方向

    b、flex-wrap:如果一条轴线排不下,如何换行。

      c、flex-flow:上面两个属性的简写。(可以完全不用管,就当没有这个属性)

   d、justify-content:项目在主轴上的对齐方式。

      e、align-items:项目在交叉轴上如何对齐。

      f、align-content:多根 交叉轴线的对齐方式(即 行与行之间对齐方式)。如果项目只有一根轴线,该属性不起作用。

  重点:上面的几个属性,设置的子元素的活动空间都是可以直观看到的。那看不到的活动空间是怎么分配的呢。这个看不到的空间,主要还是交叉轴上的空间。父元素一旦设置了,主轴上的空间已经定好了。就是项目在主轴上长度。

     但是,交叉轴的空间,可以在子元素设置属性。

  3、CSS3弹性布局实现的6只骰子(不同的角度,不同的实现方法):https://wow.techbrood.com/fiddle/8177 (6点骰子,分成两组,手动给它换行了) 或 https://www.jianshu.com/p/d4d5830061bd (6点骰子,每3点就会占满一行,自动换行。)

三、float

使用 <div> 元素的网页布局

使用 <table> 元素的网页布局(虽然我们可以使用HTML table标签来设计出漂亮的布局,但是table标签是不建议作为布局工具使用的 - 表格不是布局工具)

CSS 页面布局总结

 

一、瀑布流:

1、纯CSS实现瀑布流布局 : https://www.w3cplus.com/css/pure-css-create-masonry-layout.html

2、相等大小,顺序排列的瀑布流:

PC 端响应式布局的更多相关文章

  1. 探讨兼容IE低版本的PC端响应式布局

    http://www.jiangweishan.com/article/lowIeResposive.html 响应式布局,oh my god!!有点醉了,感觉是老生常谈的话题了.虽然已经谈过很多了, ...

  2. 移动端响应式布局--你不知道的CSS3.0媒体查询,解决rem部分情况下无法适配的场景

    媒体查询作为响应式布局的方法之一,实际项目中用途也很广.但是你真的知道怎么用吗? 例如,下面匹配 iphone6/7/8 屏幕 @media screen and (max-width: 375px) ...

  3. 【CSS-移动端响应式布局详解】

    背景 移动端响应式布局开发主要方案有: 基于rem开发 基于媒体查询 基于弹性盒 基础概念 在讨论响应式布局知识前,先了解下移动端常用基础概念. 逻辑像素(CSS pixels) 浏览器使用的抽象单位 ...

  4. 响应式布局rem、rem方法封装、移动端响应式布局

    相信大家在做移动端的时候都会做各个手机的适配这种适配就是响应式布局在之前做网站的响应式从pc到手机用的是媒体查询 @media screen and (max-width: 300px){} 最大宽度 ...

  5. 移动端响应式布局+rem+calc()

    1.媒体查询:@media only screen and (max-width: ) {},在最初做pc端时,使用各种媒体查询,因为pc的屏幕分辨率总共就几种,不嫌麻烦的重复使用类名.有很大的缺陷就 ...

  6. 移动端响应式布局,rem动态更新

    (function(){ var fontSizeMatchDeviceWidth = function(){ var deviceWidth = document.documentElement.c ...

  7. pc端响应式-媒体查询

    媒体查询(@media):能在不同的条件下使用不同的样式,使页面在不同在终端设备下达到不同的渲染效果 列举常用的pc屏幕宽度: 1024  1280  1366  1440  1680  1920  ...

  8. 移动端“响应式布局”’--rem

    使用目的:为了让移动设计稿在大部分的移动设备上看起来有一致的展示效果,我们使用rem的像素单位. 方法一: 1.在页面引入js,获取屏幕大小,更新rem基准. (function () { var c ...

  9. HTML5学习总结-番外05 响应式布局

    1. 响应式布局 响应式布局是2015年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的.其目的是为用户提欧共更加 ...

随机推荐

  1. python--前端之CSS

    CSS产生背景: 为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,CSS是 Cascading Style Sheets 的首字母缩写,意思是层叠样式表. 有了C ...

  2. 常用github命令

    常用github命令 git--版本控制软件 GitHub是一个基于Git的远程文件托管平台(同GitCafe.BitBucket和GitLab等). 在家里,开发完毕部分功能,推送到GitHub:  ...

  3. #include <utility>

    #include <utility>这个头文件是什么用法 utility头文件定义了一个pair类型,是标准库的一部分,其原型为:template<class _Ty1, class ...

  4. 使用Guzzle执行HTTP请求

    Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上.Guzzle提供了简单的接口,构建查询语句.POST请求.分流上传下载大文件.使用HTTP cookies ...

  5. 浅析Draw Call

    Draw Call是CPU对GPU的一种命令,仅仅指向一个需要被渲染的图元列表,在OpenGL和DirectX中分别体现为glDrawElements和DrawIndexedPrimitive图像编程 ...

  6. docker内的服务无法获取用户真实IP

    原文:blog.baohaipeng.top 背景:MySQL数据库和Redis运行在宿主机上(Linux),server运行在docker内,web运行在Nginx内(Nginx运行在docker内 ...

  7. Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...

  8. ant的安装和使用

    1.ant的安装 1.1 添加环境变量:ANT_HOME=D:\software\ant\apache-ant-1.10.1 在path中添加:%ANT_HOME%\bin 1.2 测试是否安装成功 ...

  9. jsp页面通过ajax取值/展示数据及分页显示

    jsp页面通过ajax从后台获取数据,在页面展示,并实现分页效果代码: [JavaScript部分代码] 1 <script> function getComposition(pageno ...

  10. RLO文件名欺骗

    windows下面,支持一种特殊的unicode字符RLO,一个字符串中如果有这个字符的话,那么在windows下显示时,就会把RLO右侧的字符串逆序显示出来,原始字符串:abcd[RLO]efgh, ...