响应式设计
背景
Responsive Web Design by ETHAN MARCOTTE May 25, 2010中谈到,在Web端,我们的工作通常是“转瞬即逝”的,把东西移来移去,适应不同窗口的宽度,用户偏好设置。面对这么多特殊的问题,我们要思考的是,如何使设计更加地可适配。
方式
打好地基:flexible foundation 通过fluid grid,利用flexible image,网页可以比较弹性化。 其中,flexible image很有意思,给图片设置max-width:100%,图片在渲染的时候,如果外部容器不够大,它会相应的缩小,beautiful!虽然IE又烦人了,可以参考 兼容性方案。
筛选:media query 但是,这还远远不够,当屏幕特别小,桌面版的也是不能够完全适配到移动端的。 就像你曾经用过的media=“screen”,media=“print”,CSS3提出media query,可以探测不同屏幕尺寸,并加载相应的css文件,或者应用不同的CSS属性。
方法一: <link rel="stylesheet" type="text/css" media="screen and (max-device-width: 480px) and (resolution: 163dpi)" href="shetland.css" /> 方法二: @media screen and (max-device-width: 480px) { .column { float: none; } }
3.特殊处理
- display:none 在移动端,可以考虑不展示一些不必要的内容
mete标签 大多数移动浏览器将HTML页面放大为宽的视图(viewport)以符合屏幕分辨率。你可以使用视图的meta标签来进行重置。下面的视图标签告诉浏览器,使用设备的宽度作为视图宽度并禁止初始的缩放。在标签里加入这个meta标签。
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">- 宽度使用百分比,字体使用em
据说可以这样,没有试过 用::before和::after伪元素 +content 属性来动态显示一些内容或者做其它很酷的事情,在 CSS3 中,任何元素都可以使用 content 属性了,这个方法就是结合 css3 的 attr 属性和 HTML 自定义属性的功能:
HTML 结构:
<img src="image.jpg" data-src-600px="image-600px.jpg" data-src-800px="image-800px.jpg" alt="">CSS 控制:
@media (min-device-width:600px) { img[data-src-600px] { content: attr(data-src-600px, url); } } @media (min-device-width:800px) { img[data-src-800px] { content: attr(data-src-800px, url); } }
调试工具,万能的chrome
以上 是在做campus.meituan.com 移动端简单适配了解到的,还很浅,希望以后可以完善。